156 lines
5.3 KiB
Java
156 lines
5.3 KiB
Java
package jmri.jmrit.vsdecoder;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
|
import static org.junit.jupiter.api.Assertions.assertSame;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
import static org.junit.jupiter.api.Assertions.fail;
|
|
|
|
import java.beans.PropertyChangeEvent;
|
|
|
|
import org.jdom2.Element;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* Tests for the NotchTrigger class
|
|
*
|
|
* @author Mark Underwood Copyright (C) 2011
|
|
*/
|
|
public class NotchTriggerTest {
|
|
|
|
@Test
|
|
@Disabled("Test requires further development")
|
|
public void testStateConstants() {
|
|
// Maybe check the enums here?
|
|
}
|
|
|
|
// Note: Trigger is abstract. Using NotchTrigger as test vehicle.
|
|
@Test
|
|
public void testCreateSimple() {
|
|
NotchTrigger uut = new NotchTrigger("unitUnderTest");
|
|
assertEquals("unitUnderTest", uut.getName(), "trigger name");
|
|
assertEquals("", uut.getEventName(), "event name");
|
|
assertNull(uut.getTarget(), "target");
|
|
assertEquals(Trigger.TargetAction.NOTHING,
|
|
uut.getTargetAction(), "target action");
|
|
assertEquals(Trigger.TriggerType.NOTCH,
|
|
uut.getTriggerType(), "trigger type");
|
|
assertEquals(0, uut.getNotch(), "notch value");
|
|
}
|
|
|
|
@Test
|
|
public void testCreateFull() {
|
|
NotchTrigger uut = new NotchTrigger("unitUnderTest", 2, 3);
|
|
assertEquals("unitUnderTest", uut.getName(), "trigger name");
|
|
assertEquals("", uut.getEventName(), "event name");
|
|
assertNull(uut.getTarget(), "target");
|
|
assertEquals(Trigger.TargetAction.NOTHING,
|
|
uut.getTargetAction(), "target action");
|
|
assertEquals(Trigger.TriggerType.NOTCH,
|
|
uut.getTriggerType(), "trigger type");
|
|
assertEquals(3, uut.getNotch(), "notch value");
|
|
}
|
|
|
|
@Test
|
|
public void testSetGet() {
|
|
VSDSound target;
|
|
NotchTrigger uut = new NotchTrigger("unitUnderTest", 3, 4);
|
|
uut.setName("new name");
|
|
assertEquals("new name", uut.getName(), "set name");
|
|
uut.setEventName("event name");
|
|
assertEquals("event name", uut.getEventName(), "set event name");
|
|
target = new ConfigurableSound("target");
|
|
uut.setTarget(target);
|
|
assertSame(target, uut.getTarget(), "set target");
|
|
uut.setTargetName("target name");
|
|
assertEquals("target name", uut.getTargetName(), "set target name");
|
|
uut.setTargetAction(Trigger.TargetAction.PLAY);
|
|
assertEquals(Trigger.TargetAction.PLAY,
|
|
uut.getTargetAction(), "set target action");
|
|
uut.setTriggerType(Trigger.TriggerType.NOTCH);
|
|
assertEquals(Trigger.TriggerType.NOTCH,
|
|
uut.getTriggerType(), "set trigger type");
|
|
TriggerListener tl = new TriggerListener() {
|
|
@Override
|
|
public void takeAction() {
|
|
}
|
|
|
|
@Override
|
|
public void takeAction(int i) {
|
|
}
|
|
|
|
@Override
|
|
public void takeAction(float f) {
|
|
}
|
|
};
|
|
uut.setCallback(tl);
|
|
assertSame(tl, uut.getCallback(), "set callback");
|
|
uut.setNotch(3);
|
|
assertEquals(3, uut.getNotch(), "match value");
|
|
}
|
|
|
|
@Test
|
|
public void testPropertyChange() {
|
|
NotchTrigger uut = new NotchTrigger("unitUnderTest", 4, 5);
|
|
uut.setEventName("test event");
|
|
uut.setCallback(new TriggerListener() {
|
|
@Override
|
|
public void takeAction() {
|
|
fail("wrong callback called");
|
|
}
|
|
|
|
@Override
|
|
public void takeAction(int i) {
|
|
assertTrue(true, "callback called");
|
|
}
|
|
|
|
@Override
|
|
public void takeAction(float f) {
|
|
fail("wrong callback called");
|
|
}
|
|
});
|
|
uut.setNotch(2); // 2/8 = 0.25
|
|
PropertyChangeEvent e = new PropertyChangeEvent(this, "test event",
|
|
0.2f, 0.3f);
|
|
uut.propertyChange(e);
|
|
|
|
e = new PropertyChangeEvent(this, "test event", 0.3, 0.2);
|
|
uut.propertyChange(e);
|
|
}
|
|
|
|
private Element buildTestXML() {
|
|
Element e = new Element("Trigger");
|
|
e.setAttribute("name", "test_trigger");
|
|
e.setAttribute("type", "NOTCH");
|
|
e.addContent(new Element("event-name").addContent("test_event"));
|
|
e.addContent(new Element("target-name").addContent("test_target"));
|
|
e.addContent(new Element("match").addContent("2"));
|
|
e.addContent(new Element("action").addContent("PLAY"));
|
|
return e;
|
|
}
|
|
|
|
@Test
|
|
public void testSetXML() {
|
|
NotchTrigger uut = new NotchTrigger("unitUnderTest", 3, 4);
|
|
Element e = buildTestXML();
|
|
uut.setXml(e);
|
|
assertEquals("test_trigger", uut.getName(), "xml name");
|
|
assertEquals(Trigger.TriggerType.NOTCH, uut.getTriggerType(), "xml type");
|
|
assertEquals("test_event", uut.getEventName(), "xml event name");
|
|
assertEquals("test_target", uut.getTargetName(), "xml target name");
|
|
assertEquals(Trigger.TargetAction.PLAY, uut.getTargetAction(), "xml action");
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
jmri.util.JUnitUtil.setUp();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
jmri.util.JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|