Files
JIMRI/java/test/jmri/util/NamedBeanExpectedValueTest.java
2026-06-17 14:00:51 +02:00

112 lines
4.2 KiB
Java

package jmri.util;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import jmri.InstanceManager;
import jmri.Memory;
import jmri.MemoryManager;
import jmri.Sensor;
import jmri.SensorManager;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
*
* @author Randall Wood Copyright 2018
*/
public class NamedBeanExpectedValueTest {
/**
* Test of getExpectedState method, of class NamedBeanExpectedValue.
*/
@Test
public void testGetExpectedState() {
MemoryManager mm = InstanceManager.getDefault(MemoryManager.class);
SensorManager sm = InstanceManager.getDefault(SensorManager.class);
NamedBeanExpectedValue<Memory, Sensor> instance = new NamedBeanExpectedValue<>(mm.provideMemory("IMTEST"), sm.provideSensor("IS12"));
assertEquals(sm.getSensor("IS12"), instance.getExpectedState());
}
/**
* Test of setExpectedState method, of class NamedBeanExpectedValue.
*/
@Test
public void testSetExpectedState() {
MemoryManager mm = InstanceManager.getDefault(MemoryManager.class);
SensorManager sm = InstanceManager.getDefault(SensorManager.class);
NamedBeanExpectedValue<Memory, Sensor> instance = new NamedBeanExpectedValue<>(mm.provideMemory("IMTEST"), sm.provideSensor("IS12"));
assertEquals(sm.getSensor("IS12"), instance.getExpectedState());
instance.setExpectedState(sm.provideSensor("IS99"));
assertEquals(sm.provideSensor("IS99"), instance.getExpectedState());
assertNotEquals(sm.getSensor("IS12"), instance.getExpectedState());
instance.setExpectedState(sm.provideSensor("IS21"));
assertEquals(sm.getSensor("IS21"), instance.getExpectedState());
}
/**
* Test of getObject method, of class NamedBeanExpectedValue.
*/
@Test
public void testGetObject() {
MemoryManager mm = InstanceManager.getDefault(MemoryManager.class);
SensorManager sm = InstanceManager.getDefault(SensorManager.class);
NamedBeanExpectedValue<Memory, Sensor> instance = new NamedBeanExpectedValue<>(mm.provideMemory("IMTEST"), sm.provideSensor("IS12"));
assertEquals(mm.getMemory("IMTEST"), instance.getObject());
}
/**
* Test of getName method, of class NamedBeanExpectedValue.
*/
@Test
public void testGetName() {
MemoryManager mm = InstanceManager.getDefault(MemoryManager.class);
SensorManager sm = InstanceManager.getDefault(SensorManager.class);
NamedBeanExpectedValue<Memory, Sensor> instance = new NamedBeanExpectedValue<>(mm.provideMemory("IMTEST"), sm.provideSensor("IS12"));
assertEquals(mm.provideMemory("IMTEST").getDisplayName(), instance.getName());
}
/**
* Test that NamedBeanExpectedValue throws NPE if passed a null NamedBean
*/
@Test
public void testNullNamedBean() {
// JUnit 5 Assert.throwsException() would be nice...
MemoryManager mm = InstanceManager.getDefault(MemoryManager.class);
SensorManager sm = InstanceManager.getDefault(SensorManager.class);
Exception exc = assertThrows(NullPointerException.class, () -> {
cTorNpeNullBean(sm);
});
assertNotNull(exc, "NPE thrown for null bean");
assertDoesNotThrow(() -> {
assertNotNull(new NamedBeanExpectedValue<>(mm.provideMemory("IMTEST"), null));
},"NPE should not be thrown here for a null value");
}
@SuppressFBWarnings( value = "NP_NONNULL_PARAM_VIOLATION",
justification = "testing passing null to create exception ")
private void cTorNpeNullBean(SensorManager sm) {
assertNotNull(new NamedBeanExpectedValue<>(null, sm.provideSensor("IS12")));
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.initMemoryManager();
JUnitUtil.initInternalSensorManager();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
}