Files
JIMRI/java/test/jmri/jmrit/logixng/implementation/LogixNGPreferencesTest.java
T
2026-06-17 14:00:51 +02:00

171 lines
6.0 KiB
Java

package jmri.jmrit.logixng.implementation;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
import java.io.IOException;
import jmri.jmrit.logixng.actions.IfThenElse;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
/**
* Test LogixNGPreferences
*
* @author Daniel Bergqvist 2020
*/
public class LogixNGPreferencesTest {
@Test
public void testCompareValuesDifferent() {
DefaultLogixNGPreferences prefsA = new DefaultLogixNGPreferences();
DefaultLogixNGPreferences prefsB = new DefaultLogixNGPreferences();
assertFalse( prefsA.compareValuesDifferent(prefsB), "prefs are equal");
assertFalse( prefsB.compareValuesDifferent(prefsA), "prefs are equal");
prefsA.setInstallDebugger(false);
prefsB.setInstallDebugger(true);
assertTrue( prefsA.compareValuesDifferent(prefsB), "prefs are not equal");
assertTrue( prefsB.compareValuesDifferent(prefsA), "prefs are not equal");
prefsB.setInstallDebugger(false);
prefsA.setStartLogixNGOnStartup(false);
prefsB.setStartLogixNGOnStartup(true);
assertTrue( prefsA.compareValuesDifferent(prefsB), "prefs are not equal");
assertTrue( prefsB.compareValuesDifferent(prefsA), "prefs are not equal");
prefsB.setStartLogixNGOnStartup(false);
}
@Test
public void testSetAndGet() {
DefaultLogixNGPreferences prefs = new DefaultLogixNGPreferences();
prefs.setStartLogixNGOnStartup(true);
assertTrue(prefs.getStartLogixNGOnStartup());
prefs.setStartLogixNGOnStartup(false);
assertFalse(prefs.getStartLogixNGOnStartup());
prefs.setInstallDebugger(true);
assertTrue(prefs.getInstallDebugger());
prefs.setInstallDebugger(false);
assertFalse(prefs.getInstallDebugger());
}
@Test
public void testApply() {
DefaultLogixNGPreferences prefsA = new DefaultLogixNGPreferences();
DefaultLogixNGPreferences prefsB = new DefaultLogixNGPreferences();
prefsA.setStartLogixNGOnStartup(false);
prefsB.setStartLogixNGOnStartup(true);
assertFalse(prefsA.getStartLogixNGOnStartup());
assertTrue(prefsB.getStartLogixNGOnStartup());
prefsA.apply(prefsB);
assertTrue(prefsA.getStartLogixNGOnStartup());
prefsA.setStartLogixNGOnStartup(true);
prefsB.setStartLogixNGOnStartup(false);
assertTrue(prefsA.getStartLogixNGOnStartup());
assertFalse(prefsB.getStartLogixNGOnStartup());
prefsA.apply(prefsB);
assertFalse(prefsA.getStartLogixNGOnStartup());
prefsA.setInstallDebugger(false);
prefsB.setInstallDebugger(true);
assertFalse(prefsA.getInstallDebugger());
assertTrue(prefsB.getInstallDebugger());
prefsA.apply(prefsB);
assertTrue(prefsA.getInstallDebugger());
prefsA.setInstallDebugger(true);
prefsB.setInstallDebugger(false);
assertTrue(prefsA.getInstallDebugger());
assertFalse(prefsB.getInstallDebugger());
prefsA.apply(prefsB);
assertFalse(prefsA.getInstallDebugger());
}
@Test
public void testSave() {
DefaultLogixNGPreferences prefsA = new DefaultLogixNGPreferences();
DefaultLogixNGPreferences prefsB;
prefsA.setStartLogixNGOnStartup(false);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertFalse(prefsB.getStartLogixNGOnStartup());
prefsA.setStartLogixNGOnStartup(true);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertTrue(prefsB.getStartLogixNGOnStartup());
prefsA.setInstallDebugger(false);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertFalse(prefsB.getInstallDebugger());
prefsA.setInstallDebugger(true);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertTrue(prefsB.getInstallDebugger());
prefsA.setStrictTypingGlobalVariables(false);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertFalse(prefsB.getStrictTypingGlobalVariables());
prefsA.setStrictTypingGlobalVariables(true);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertTrue(prefsB.getStrictTypingGlobalVariables());
prefsA.setStrictTypingLocalVariables(false);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertFalse(prefsB.getStrictTypingLocalVariables());
prefsA.setStrictTypingLocalVariables(true);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertTrue(prefsB.getStrictTypingLocalVariables());
prefsA.setIfThenElseExecuteTypeDefault(IfThenElse.ExecuteType.AlwaysExecute);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertEquals(IfThenElse.ExecuteType.AlwaysExecute, prefsB.getIfThenElseExecuteTypeDefault());
prefsA.setIfThenElseExecuteTypeDefault(IfThenElse.ExecuteType.ExecuteOnChange);
prefsA.save();
prefsB = new DefaultLogixNGPreferences();
assertEquals(IfThenElse.ExecuteType.ExecuteOnChange, prefsB.getIfThenElseExecuteTypeDefault());
}
@BeforeEach
public void setUp(@TempDir File tempDir) throws IOException {
JUnitUtil.setUp();
JUnitUtil.resetInstanceManager();
JUnitUtil.resetProfileManager(new jmri.profile.NullProfile(tempDir));
JUnitUtil.initConfigureManager();
JUnitUtil.initInternalSensorManager();
JUnitUtil.initInternalTurnoutManager();
JUnitUtil.initLogixNGManager();
}
@AfterEach
public void tearDown() {
jmri.jmrit.logixng.util.LogixNG_Thread.stopAllLogixNGThreads();
JUnitUtil.deregisterBlockManagerShutdownTask();
JUnitUtil.tearDown();
}
}