Files
JIMRI/java/test/jmri/jmrit/logixng/expressions/swing/AnalogExpressionConstantSwingTest.java
2026-06-17 14:00:51 +02:00

121 lines
3.1 KiB
Java

package jmri.jmrit.logixng.expressions.swing;
import java.util.ArrayList;
import java.util.Locale;
import javax.swing.JFrame;
import javax.swing.JPanel;
import jmri.jmrit.logixng.expressions.AnalogExpressionConstant;
import jmri.util.JUnitUtil;
import jmri.util.ThreadingUtil;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
/**
* Tests for AnalogExpressionConstantSwing.
* @author Steve Young Copyright (C) 2025
*/
@jmri.util.junit.annotations.DisabledIfHeadless
public class AnalogExpressionConstantSwingTest {
@Test
void testDecimalEnglish() {
AnalogExpressionConstantSwing t = new AnalogExpressionConstantSwing();
Assertions.assertNotNull(t);
JPanel buttonPanel = new JPanel();
ArrayList<String> list = new ArrayList<>();
AnalogExpressionConstant aec = new AnalogExpressionConstant("IQAE915",null);
aec.setValue(1.23d);
t.createPanel(aec, buttonPanel);
JPanel p = t.getConfigPanel(aec, buttonPanel);
JFrame f = new JFrame("AECST");
f.getContentPane().add(p);
f.pack();
ThreadingUtil.runOnGUI( () -> f.setVisible(true));
JFrameOperator jfo = new JFrameOperator(f);
JTextFieldOperator jtfo = new JTextFieldOperator(jfo);
assertEquals( 1.23d, aec.getValue());
jtfo.setText("");
assertTrue(t.validate(list));
t.updateObject(aec);
assertEquals( 0d, aec.getValue());
jtfo.setText("Not A Number");
assertFalse(t.validate(list));
jtfo.setText("1.23");
assertTrue(t.validate(list));
t.updateObject(aec);
assertEquals( 1.23d, aec.getValue());
JUnitUtil.dispose(f);
}
@Test
void testDecimalItalian() {
AnalogExpressionConstantSwing t = new AnalogExpressionConstantSwing();
assertNotNull(t);
JPanel buttonPanel = new JPanel();
ArrayList<String> list = new ArrayList<>();
AnalogExpressionConstant aec = new AnalogExpressionConstant("IQAE444",null);
aec.setValue(4.44);
Locale existing = Locale.getDefault();
try {
Locale.setDefault(Locale.ITALIAN);
t.createPanel(aec, buttonPanel);
JPanel p = t.getConfigPanel(aec, buttonPanel);
JFrame f = new JFrame("AECST444");
f.getContentPane().add(p);
f.pack();
ThreadingUtil.runOnGUI( () -> f.setVisible(true));
JFrameOperator jfo = new JFrameOperator(f);
JTextFieldOperator jtfo = new JTextFieldOperator(jfo);
assertEquals("4,44", jtfo.getText());
jtfo.setText("7,89");
assertTrue(t.validate(list));
t.updateObject(aec);
assertEquals( 7.89d, aec.getValue());
JUnitUtil.dispose(f);
} finally {
Locale.setDefault(existing);
}
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
}