Files
JIMRI/java/test/jmri/jmrit/ctc/configurexml/ImportExternalDataTest.java
T
2026-06-17 14:00:51 +02:00

85 lines
3.1 KiB
Java

package jmri.jmrit.ctc.configurexml;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import jmri.InstanceManager;
import jmri.JmriException;
import jmri.jmrit.ctc.CTCFiles;
import jmri.profile.NullProfile;
import jmri.util.JUnitUtil;
import jmri.util.junit.annotations.DisabledIfHeadless;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.io.TempDir;
/**
* Test the external file import process
* @author Dave Sand Copyright (C) 2020
*/
public class ImportExternalDataTest {
@Test
@DisabledIfHeadless
public void testExternalDataImport() throws JmriException {
// Load the test panel and initialize Logix and advanced block routing
java.io.File f = new java.io.File("java/test/jmri/jmrit/ctc/configurexml/setup/CTC_Test_Import.xml"); // NOI18N
Assertions.assertTrue(InstanceManager.getDefault(jmri.ConfigureManager.class).load(f));
InstanceManager.getDefault(jmri.LogixManager.class).activateAllLogixs();
InstanceManager.getDefault(jmri.jmrit.display.layoutEditor.LayoutBlockManager.class).initializeLayoutBlockPaths();
JUnitUtil.waitFor(5000); // Wait for block routing and SML initialization
createTestFiles();
ImportExternalData.loadExternalData();
}
public void createTestFiles() {
// Copy ProgramProperties
final File source = new File("java/test/jmri/jmrit/ctc/configurexml/setup/");
final String props = "ProgramProperties.xml";
final String system = "CTCSystem.xml";
File propsFile = new File(source, props);
File systemFile = new File(source, system);
try {
log.debug("Copying from {} to {}", propsFile, CTCFiles.getFile(props));
Files.copy(propsFile.toPath(), CTCFiles.getFile(props).toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ex) {
log.error("Copy CTC Properties demo file failed", ex); // NOI18N
}
try {
log.debug("Copying from {} to {}", systemFile, CTCFiles.getFile(system));
Files.copy(systemFile.toPath(), CTCFiles.getFile(system).toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ex) {
log.error("Copy CTC System demo file failed", ex); // NOI18N
}
}
@BeforeEach
public void setUp(@TempDir File folder) throws IOException {
JUnitUtil.setUp();
JUnitUtil.resetProfileManager(new NullProfile(folder));
JUnitUtil.resetInstanceManager();
JUnitUtil.initConfigureManager();
JUnitUtil.initInternalSensorManager();
JUnitUtil.initInternalTurnoutManager();
JUnitUtil.initRouteManager();
JUnitUtil.initDefaultSignalMastManager();
JUnitUtil.initSignalMastLogicManager();
JUnitUtil.initLayoutBlockManager();
}
@AfterEach
public void tearDown() {
JUnitUtil.resetWindows(false,false);
JUnitUtil.deregisterBlockManagerShutdownTask();
JUnitUtil.tearDown();
}
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ImportExternalDataTest.class);
}