Files
2026-06-17 14:00:51 +02:00

111 lines
3.2 KiB
Java

package jmri.jmrit.swing.meter;
import java.awt.GraphicsEnvironment;
import jmri.InstanceManager;
import jmri.JmriException;
import jmri.Meter;
import jmri.MeterManager;
import jmri.implementation.DefaultMeter;
import jmri.implementation.MeterUpdateTask;
import jmri.util.JUnitUtil;
import jmri.util.ThreadingUtil;
import org.junit.Assume;
import org.junit.jupiter.api.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Andrew Crosland Copyright (C) 2020
* @author Daniel Bergqvist Copyright (C) 2020
*/
public class MeterFrameTest extends jmri.util.JmriJFrameTestBase {
@Test
public void testVoltageChange1Digit() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
runOnLayout(() -> {
frame.initComponents();
jmri.InstanceManager.getDefault(jmri.MeterManager.class)
.getNamedBeanSet().first()
.setCommandedAnalogValue(2.1f);
});
}
@Test
public void testVoltageChange2Digit() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
runOnLayout(() -> {
frame.initComponents();
jmri.InstanceManager.getDefault(jmri.MeterManager.class)
.getNamedBeanSet().first()
.setCommandedAnalogValue(32.1f);
});
}
@Test
public void testVoltageChange3Digit() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
runOnLayout(() -> {
frame.initComponents();
jmri.InstanceManager.getDefault(jmri.MeterManager.class)
.getNamedBeanSet().first()
.setCommandedAnalogValue(432.1f);
});
}
@Test
public void testVoltageChange4Digit() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
runOnLayout(() -> {
frame.initComponents();
jmri.InstanceManager.getDefault(jmri.MeterManager.class)
.getNamedBeanSet().first()
.setCommandedAnalogValue(5432.1f);
});
}
@BeforeEach
@Override
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.resetProfileManager();
Meter voltageMeter = new DefaultMeter.DefaultVoltageMeter("IVVoltageMeter", Meter.Unit.Milli, 0.0, 1000.0, 1.0, new MeterUpdateTask(-1) {
@Override
public void requestUpdateFromLayout() {
// Do nothing
}
});
InstanceManager.getDefault(MeterManager.class).register(voltageMeter);
if (!GraphicsEnvironment.isHeadless()) {
frame = new MeterFrame();
}
}
@AfterEach
@Override
public void tearDown() {
super.tearDown();
}
private void runOnLayout(RunnableWithException r) {
ThreadingUtil.runOnLayout(() -> {
try {
r.run();
} catch (JmriException e) {
throw new RuntimeException(e);
}
});
}
private interface RunnableWithException {
public void run() throws JmriException;
}
// private static final Logger log = LoggerFactory.getLogger(AmpMeterFrameTest.class);
}