Files
JIMRI/java/test/jmri/jmrit/beantable/light/LightIntensityPaneTest.java
2026-06-17 14:00:51 +02:00

159 lines
4.4 KiB
Java

package jmri.jmrit.beantable.light;
import java.util.Locale;
import javax.swing.JFrame;
import jmri.InstanceManager;
import jmri.Light;
import jmri.LightManager;
import jmri.VariableLight;
import jmri.util.JUnitUtil;
import jmri.util.ThreadingUtil;
import org.junit.jupiter.api.*;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2021, 2025
*/
@jmri.util.junit.annotations.DisabledIfHeadless
public class LightIntensityPaneTest {
@Test
public void testCTor() {
LightIntensityPane t = new LightIntensityPane(true);
assertNotNull(t);
}
@Test
public void testGetSetIntensityEnglish() {
Locale existing = Locale.getDefault();
try {
Locale.setDefault(Locale.US);
LightIntensityPane t = new LightIntensityPane(false);
assertNotNull(t);
LightManager mgr = InstanceManager.getDefault(LightManager.class);
Light li = mgr.provideLight("I1LIPTL1");
assertNotNull(li);
assertInstanceOf(VariableLight.class, li);
VariableLight l = (VariableLight)li;
l.setMinIntensity(0.22d);
l.setMaxIntensity(0.81d);
l.setTransitionTime(1.23d);
t.setToLight(l);
JFrame f = new JFrame("Test LightIntensityPane");
f.getContentPane().add(t);
ThreadingUtil.runOnGUI( () -> {
f.pack();
f.setVisible(true);
});
JFrameOperator jfo = new JFrameOperator(f.getTitle());
assertNotNull(jfo);
JTextFieldOperator tfo = new JTextFieldOperator(jfo, 0);
assertEquals("22 %", tfo.getText());
tfo.clearText();
tfo.typeText("33 %");
tfo = new JTextFieldOperator(jfo, 1);
assertEquals("81 %", tfo.getText());
tfo.setText("66 %");
tfo = new JTextFieldOperator(jfo, 2);
assertEquals("1.23", tfo.getText());
tfo.setText("7.89");
t.setLightFromPane(l);
// JUnitUtil.waitFor(30000);
assertEquals(0.33d, l.getMinIntensity());
assertEquals(0.66d, l.getMaxIntensity());
assertEquals(7.89d, l.getTransitionTime());
JUnitUtil.dispose(f);
jfo.waitClosed();
} finally {
Locale.setDefault(existing);
}
}
@Test
public void testGetSetIntensityItalian() {
Locale existing = Locale.getDefault();
try {
Locale.setDefault(Locale.ITALY);
LightIntensityPane t = new LightIntensityPane(false);
assertNotNull(t);
LightManager mgr = InstanceManager.getDefault(LightManager.class);
Light li = mgr.provideLight("I1LIPTL2");
assertNotNull(li);
assertInstanceOf(VariableLight.class, li);
VariableLight l = (VariableLight)li;
l.setMinIntensity(0.22d);
l.setMaxIntensity(0.81d);
l.setTransitionTime(1.23d);
t.setToLight(l);
JFrame f = new JFrame("Test LightIntensityPane It");
f.getContentPane().add(t);
ThreadingUtil.runOnGUI( () -> {
f.pack();
f.setVisible(true);
});
JFrameOperator jfo = new JFrameOperator(f.getTitle());
assertNotNull(jfo);
JTextFieldOperator tfo = new JTextFieldOperator(jfo, 0);
assertEquals("22 %", tfo.getText());
tfo.clearText();
tfo.typeText("33 %");
tfo = new JTextFieldOperator(jfo, 1);
assertEquals("81 %", tfo.getText());
tfo.setText("66 %");
tfo = new JTextFieldOperator(jfo, 2);
assertEquals("1,23", tfo.getText());
tfo.setText("7,89");
t.setLightFromPane(l);
assertEquals(0.33d, l.getMinIntensity());
assertEquals(0.66d, l.getMaxIntensity());
assertEquals(7.89d, l.getTransitionTime());
JUnitUtil.dispose(f);
jfo.waitClosed();
} finally {
Locale.setDefault(existing);
}
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
}