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

116 lines
4.8 KiB
Java

package jmri.jmrit.symbolicprog.tabbedframe;
import java.awt.event.WindowEvent;
import jmri.jmrit.decoderdefn.DecoderFile;
import jmri.jmrit.roster.RosterEntry;
import jmri.util.JUnitUtil;
import jmri.util.junit.annotations.DisabledIfHeadless;
import org.jdom2.DocType;
import org.jdom2.Document;
import org.jdom2.Element;
import org.junit.jupiter.api.*;
/**
*
* @author Paul Bender Copyright (C) 2017
*/
public class PaneServiceProgFrameTest {
@Test
@DisabledIfHeadless
public void testCTor() {
jmri.Programmer p = jmri.InstanceManager.getDefault(jmri.GlobalProgrammerManager.class).getGlobalProgrammer();
DecoderFile df = new DecoderFile("NMRA", "", "NMRA standard CV definitions", "0", "255",
"NMRA standard CV definitions", "0NMRA.xml", 16, 3, root);
RosterEntry re = new RosterEntry();
PaneServiceProgFrame t = new PaneServiceProgFrame(df, re, "test frame", "programmers/Basic.xml", p);
Assertions.assertNotNull( t, "exists");
JUnitUtil.waitFor(()->{return t.threadCount.get() == 0;}, "PaneProgFrame threads done");
t.dispatchEvent(new WindowEvent(t, WindowEvent.WINDOW_CLOSING));
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.resetProfileManager();
JUnitUtil.initRosterConfigManager();
JUnitUtil.initDebugProgrammerManager();
setupDoc();
}
@AfterEach
public void tearDown() {
JUnitUtil.clearShutDownManager();
JUnitUtil.resetWindows(false, false); // Detachable frame : "Comments : test frame"
JUnitUtil.tearDown();
}
// variables for the test XML structures
private Element root = null;
private Document doc = null;
// provide a test document in the above static variables
void setupDoc() {
// create a JDOM tree with just some elements
root = new Element("decoderIndex-config");
doc = new Document(root);
doc.setDocType(new DocType("decoderIndex-config", "decoderIndex-config.dtd"));
// add some elements
root.addContent(new Element("decoderIndex")
.addContent(new Element("mfgList")
.addContent(new Element("manufacturer")
.setAttribute("mfg", "NMRA")
)
.addContent(new Element("manufacturer")
.setAttribute("mfg", "Digitrax")
.setAttribute("mfgID", "129")
)
)
.addContent(new Element("familyList")
.addContent(new Element("family")
.setAttribute("mfg", "NMRA")
.setAttribute("name", "NMRA S&RP definitions")
.setAttribute("file", "NMRA.xml")
.addContent(new Element("model")
.setAttribute("model", "full set")
.setAttribute("comment", "all CVs in RP 9.2.1")
)
.addContent(new Element("model")
.setAttribute("model", "required set")
.setAttribute("comment", "required CVs in RP 9.2.1")
)
)
.addContent(new Element("family")
.setAttribute("mfg", "Digitrax")
.setAttribute("name", "FX2 family")
.setAttribute("file", "DH142.xml")
.addContent(new Element("model")
.setAttribute("model", "DH142")
.setAttribute("numFns", "4")
.setAttribute("numOuts", "2")
.setAttribute("lowVersionID", "21")
)
.addContent(new Element("model")
.setAttribute("model", "DN142")
.setAttribute("numFns", "5")
.setAttribute("numOuts", "1")
.addContent(new Element("versionCV")
.setAttribute("lowVersionID", "22")
.setAttribute("highVersionID", "24")
)
)
)
)
); // end of adding contents
}
// private static final Logger log = LoggerFactory.getLogger(PaneServiceProgFrameTest.class.getName());
}