213 lines
6.5 KiB
Java
213 lines
6.5 KiB
Java
package jmri.jmrit.roster;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
|
|
|
|
/**
|
|
* Tests for the jmrit.roster.RosterEntryPane class.
|
|
*
|
|
* @author Bob Jacobsen Copyright (C) 2001, 2002
|
|
*/
|
|
public class RosterEntryPaneTest {
|
|
|
|
// statics for test objects
|
|
org.jdom2.Element eOld = null;
|
|
org.jdom2.Element eNew = null;
|
|
RosterEntry rOld = null;
|
|
RosterEntry rNew = null;
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.resetProfileManager();
|
|
JUnitUtil.initRosterConfigManager();
|
|
// create Element
|
|
eOld = new org.jdom2.Element("locomotive")
|
|
.setAttribute("id", "id info")
|
|
.setAttribute("fileName", "file here")
|
|
.setAttribute("roadNumber", "431")
|
|
.setAttribute("roadName", "SP")
|
|
.setAttribute("mfg", "Athearn")
|
|
.setAttribute("dccAddress", "1234")
|
|
.addContent(new org.jdom2.Element("decoder")
|
|
.setAttribute("family", "91")
|
|
.setAttribute("model", "33")
|
|
)
|
|
.addContent(new org.jdom2.Element("locoaddress")
|
|
.addContent(new org.jdom2.Element("number").addContent("1234"))
|
|
//As there is no throttle manager available all protocols default to dcc short
|
|
.addContent(new org.jdom2.Element("protocol").addContent("dcc_short"))
|
|
);
|
|
|
|
rOld = new RosterEntry(eOld) {
|
|
@Override
|
|
protected void warnShortLong(String s) {
|
|
}
|
|
};
|
|
|
|
eNew = new org.jdom2.Element("locomotive")
|
|
.setAttribute("id", "id info")
|
|
.setAttribute("fileName", "file here")
|
|
.setAttribute("roadNumber", "431")
|
|
.setAttribute("roadName", "SP")
|
|
.setAttribute("mfg", "Athearn")
|
|
.addContent(new org.jdom2.Element("decoder")
|
|
.setAttribute("family", "91")
|
|
.setAttribute("model", "33")
|
|
); // end create element
|
|
|
|
rNew = new RosterEntry(eNew) {
|
|
@Override
|
|
protected void warnShortLong(String s) {
|
|
}
|
|
};
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
@Test
|
|
public void testCreate() {
|
|
RosterEntryPane p = new RosterEntryPane(rOld);
|
|
|
|
// copy to a new entry
|
|
RosterEntry n = new RosterEntry() {
|
|
@Override
|
|
protected void warnShortLong(String s) {
|
|
}
|
|
};
|
|
p.update(n);
|
|
|
|
// check for field text contents
|
|
Assert.assertEquals("file name returned", null, n.getFileName());
|
|
Assert.assertEquals("DCC Address ", "1234", n.getDccAddress());
|
|
Assert.assertEquals("road name ", "SP", n.getRoadName());
|
|
Assert.assertEquals("road number ", "431", n.getRoadNumber());
|
|
Assert.assertEquals("manufacturer ", "Athearn", n.getMfg());
|
|
Assert.assertEquals("model ", "33", n.getDecoderModel());
|
|
Assert.assertEquals("family ", "91", n.getDecoderFamily());
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGuiChanged1() {
|
|
RosterEntryPane p = new RosterEntryPane(rOld);
|
|
|
|
// copy to a new entry
|
|
// check for unchanged
|
|
Assert.assertTrue("initially unchanged", !p.guiChanged(rOld));
|
|
|
|
// change the roster road name entry and check
|
|
rOld.setRoadName("changed value");
|
|
Assert.assertTrue("detects change", p.guiChanged(rOld));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGuiChanged2() {
|
|
RosterEntryPane p = new RosterEntryPane(rOld);
|
|
|
|
// copy to a new entry
|
|
// check for unchanged
|
|
Assert.assertTrue("initially unchanged", !p.guiChanged(rOld));
|
|
|
|
// change the roster road name entry and check
|
|
rOld.setDccAddress("4321");
|
|
Assert.assertTrue("detects change", p.guiChanged(rOld));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGuiChanged3() {
|
|
|
|
RosterEntryPane p = new RosterEntryPane(rNew);
|
|
// copy to a new entry
|
|
|
|
// check for unchanged
|
|
Assert.assertTrue("initially unchanged", !p.guiChanged(rNew));
|
|
|
|
// change the roster address type entry and check
|
|
rNew.setDccAddress("1234");
|
|
Assert.assertTrue("detects change", p.guiChanged(rNew));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGuiChanged4() {
|
|
RosterEntryPane p = new RosterEntryPane(rNew);
|
|
// copy to a new entry
|
|
|
|
// check for unchanged
|
|
Assert.assertTrue("initially unchanged", !p.guiChanged(rNew));
|
|
|
|
// change the roster address type entry and check
|
|
rNew.setDccAddress("4321");
|
|
Assert.assertTrue("detects change", p.guiChanged(rNew));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGuiChanged5() {
|
|
RosterEntryPane p = new RosterEntryPane(rNew);
|
|
// copy to a new entry
|
|
|
|
// check for unchanged
|
|
Assert.assertTrue("initially unchanged", !p.guiChanged(rNew));
|
|
|
|
// change the roster address type entry and check
|
|
rNew.setDccAddress("12");
|
|
p.setDccAddressLong(false);
|
|
Assert.assertTrue("detects change", p.guiChanged(rNew));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testNotDuplicate() {
|
|
RosterEntryPane p = new RosterEntryPane(rNew);
|
|
// reset Roster
|
|
InstanceManager.reset(Roster.class);
|
|
InstanceManager.setDefault(Roster.class, new Roster(null));
|
|
Assert.assertTrue(!p.checkDuplicate());
|
|
}
|
|
|
|
@Test
|
|
public void testIsDuplicate() {
|
|
RosterEntryPane p = new RosterEntryPane(rNew);
|
|
// reset Roster
|
|
InstanceManager.reset(Roster.class);
|
|
InstanceManager.setDefault(Roster.class, new Roster(null));
|
|
Roster.getDefault().addEntry(rNew);
|
|
|
|
Assert.assertTrue(!p.checkDuplicate());
|
|
}
|
|
|
|
@Test
|
|
public void testRenamedDuplicate() {
|
|
RosterEntryPane p = new RosterEntryPane(rOld);
|
|
// reset Roster
|
|
InstanceManager.reset(Roster.class);
|
|
InstanceManager.setDefault(Roster.class, new Roster(null));
|
|
Roster.getDefault().addEntry(rNew);
|
|
|
|
// reset entry
|
|
p.id.setText("new id");
|
|
p.update(rNew);
|
|
|
|
Assert.assertTrue(p.checkDuplicate());
|
|
}
|
|
|
|
@DisabledIfSystemProperty(named = "java.awt.headless", matches = "true")
|
|
@Test
|
|
public void testAccessibleContent() {
|
|
RosterEntryPane p = new RosterEntryPane(rOld);
|
|
jmri.util.AccessibilityChecks.check(p);
|
|
}
|
|
|
|
}
|