From d5dcc315ac86d1b290fad63333da9874b9623b11 Mon Sep 17 00:00:00 2001 From: Marcus Rockwell Date: Thu, 3 Oct 2024 12:09:34 -0400 Subject: [PATCH] Implemented the skeleton of the DataRecording test suite --- trick_source/java/pom.xml | 1 - .../src/test/java/trick/common/TestUtils.java | 19 +++++ .../java/trick/dre/DreApplicationTest.java | 73 +++++-------------- .../java/trick/dre/MockDreApplication.java | 26 +++++++ .../java/trick/dre/WaitForDreApplication.java | 54 -------------- .../trick/dre/fixtures/DreFixture.java.off | 29 ++++++++ .../dre/fixtures/DreFixtureExtension.java.off | 16 ++++ 7 files changed, 109 insertions(+), 109 deletions(-) create mode 100644 trick_source/java/src/test/java/trick/common/TestUtils.java create mode 100644 trick_source/java/src/test/java/trick/dre/MockDreApplication.java delete mode 100644 trick_source/java/src/test/java/trick/dre/WaitForDreApplication.java create mode 100644 trick_source/java/src/test/java/trick/dre/fixtures/DreFixture.java.off create mode 100644 trick_source/java/src/test/java/trick/dre/fixtures/DreFixtureExtension.java.off diff --git a/trick_source/java/pom.xml b/trick_source/java/pom.xml index 78315ade..0e1718b7 100644 --- a/trick_source/java/pom.xml +++ b/trick_source/java/pom.xml @@ -325,7 +325,6 @@ **/TrickDPApplicationTest.java **/TrickQPApplicationTest.java - **/DreApplicationTest.java **/MonteMonitorApplicationTest.java **/MtvApplicationTest.java **/SieApplicationTest.java diff --git a/trick_source/java/src/test/java/trick/common/TestUtils.java b/trick_source/java/src/test/java/trick/common/TestUtils.java new file mode 100644 index 00000000..53c508c2 --- /dev/null +++ b/trick_source/java/src/test/java/trick/common/TestUtils.java @@ -0,0 +1,19 @@ +package trick.common; + +import trick.common.SimulationInterface; + +public class TestUtils { + public static String getTrickHome() { + String cwd = System.getProperty("user.dir"); + int trick_index = cwd.indexOf("/trick/trick_source/java"); + + return cwd.substring(0, trick_index + 6); + } + + public static boolean compileTestSim(String sim_name) { + String sim_path = getTrickHome() + "/test/" + sim_name; + + SimulationInterface.cleanSim(sim_path); + return SimulationInterface.compileSim(sim_path); + } +} diff --git a/trick_source/java/src/test/java/trick/dre/DreApplicationTest.java b/trick_source/java/src/test/java/trick/dre/DreApplicationTest.java index 5d47324d..862daa69 100644 --- a/trick_source/java/src/test/java/trick/dre/DreApplicationTest.java +++ b/trick_source/java/src/test/java/trick/dre/DreApplicationTest.java @@ -1,5 +1,7 @@ package trick.dre; +import static org.assertj.swing.launcher.ApplicationLauncher.application; + import static org.junit.Assert.assertTrue; import org.jdesktop.application.Application; @@ -9,7 +11,11 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import trick.common.ApplicationTest; import trick.common.CheckApplicationProperties; +import trick.dre.MockDreApplication; + +import static org.assertj.core.api.Assertions.assertThat; /** * @@ -19,63 +25,22 @@ import trick.common.CheckApplicationProperties; * @intern mrockwell2 * */ -public class DreApplicationTest { - - @BeforeClass - public static void setUpBeforeClass() throws Exception { - WaitForDreApplication.launchAndWait(WaitForDreApplication.class); - } +public class DreApplicationTest extends ApplicationTest { - @AfterClass - public static void tearDownAfterClass() throws Exception { - } + @BeforeClass + public static void onSetUpBeforeClass() { - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testReady() { - assertTrue("DreApplicationTest is not ready yet!", application().isReady()); - } - - /** - * Verify that all implemented actions exist as well as their text, shortDescription properties. - */ - @Test - public void testDefinedActions() { - String[] actionNames = {"openDR", "saveDR", "selectDRBinary", "selectDRAscii", "selectDRHDF5", - "selectDRAlways", "selectDRChanges", "selectDRStepChanges", "toggleSinglePrecision", - "selectDRBuffer", "selectDRNoBuffer", "selectDRRingBuffer", "selectDRThreadBuffer", - "addVariables", "removeSelected", "removeAll"}; - String[] actionTexts = {"Open...", "Save...", "DR Binary", "DR Ascii", "DR HDF5", "DR Always", "DR Changes", - "DR Step Changes", "Single Precision", "DR Buffer", "DR No Buffer", "DR Ring Buffer", - "DR Thread Buffer", "Add", "Remove Selected", "Remove All"}; - - for (int i = 0; i < actionNames.length; i++) { - CheckApplicationProperties.checkAction(application().actionMap, actionNames[i]); - CheckApplicationProperties.checkActionText(application().actionMap, actionNames[i], actionTexts[i]); - } } - - @Test - public void testDefinedKeyText() { - CheckApplicationProperties.checkKeyText(application().resourceMap, "fileMenu.text", "&File"); - CheckApplicationProperties.checkKeyText(application().resourceMap, "optionsMenu.text", "&Options"); + + @Override + protected void onSetUp() { + application(MockDreApplication.class).start(); } - - @Test - public void testExit() { - application().removeExitListener(application().exitListener); - application().exit(); - assertTrue(application().isEnded); - } - - private static WaitForDreApplication application() { - return Application.getInstance(WaitForDreApplication.class); + + @Test + public void testGeneric() { + boolean bool = true; + sleep(5000); + assertThat(bool).isTrue(); } } \ No newline at end of file diff --git a/trick_source/java/src/test/java/trick/dre/MockDreApplication.java b/trick_source/java/src/test/java/trick/dre/MockDreApplication.java new file mode 100644 index 00000000..347e38b5 --- /dev/null +++ b/trick_source/java/src/test/java/trick/dre/MockDreApplication.java @@ -0,0 +1,26 @@ +package trick.dre; + + +import java.io.File; + +import org.jdesktop.application.Application; + +import trick.common.ApplicationTest; +import trick.common.TestUtils; + + +public class MockDreApplication extends DreApplication { + + public static void main(String[] args) { + File sie; + + sieResourcePath = TestUtils.getTrickHome() + "/test/SIM_test_dr/S_sie.resource"; + sie = new File(sieResourcePath); + + if (!sie.exists()) { + boolean success = TestUtils.compileTestSim("SIM_test_dr"); + } + + Application.launch(MockDreApplication.class, args); + } +} \ No newline at end of file diff --git a/trick_source/java/src/test/java/trick/dre/WaitForDreApplication.java b/trick_source/java/src/test/java/trick/dre/WaitForDreApplication.java deleted file mode 100644 index 6e5d8641..00000000 --- a/trick_source/java/src/test/java/trick/dre/WaitForDreApplication.java +++ /dev/null @@ -1,54 +0,0 @@ -package trick.dre; - - -import org.jdesktop.application.Application; - - -public class WaitForDreApplication extends DreApplication { - static Object lock = new Object(); - - boolean isEnded; - - @Override - protected void end() { - isEnded = true; - } - - @Override - protected void ready() { - super.ready(); - synchronized(lock) { - lock.notifyAll(); - } - } - - - /** - * Launch the specified subclsas of DreApplication and block - * (wait) until it's startup() method has run. - */ - public static void launchAndWait(Class applicationClass) { - synchronized(lock) { - // Set path to S_sie.resource (src/test/resources/S_sie.resource) - final String sep = java.io.File.separator; - sieResourcePath = String.format("src%1$stest%1$sresources%1$sS_sie.resource", sep); - - Application.launch(applicationClass, new String[]{}); - while(true) { - try { - lock.wait(); - } - catch (InterruptedException e) { - System.err.println("launchAndWait interrupted!"); - break; - } - Application app = Application.getInstance(WaitForDreApplication.class); - if (app instanceof WaitForDreApplication) { - if (((WaitForDreApplication)app).isReady()) { - break; - } - } - } - } - } -} \ No newline at end of file diff --git a/trick_source/java/src/test/java/trick/dre/fixtures/DreFixture.java.off b/trick_source/java/src/test/java/trick/dre/fixtures/DreFixture.java.off new file mode 100644 index 00000000..0b736578 --- /dev/null +++ b/trick_source/java/src/test/java/trick/dre/fixtures/DreFixture.java.off @@ -0,0 +1,29 @@ +package trick.simcontrol.fixtures; + +import java.awt.Font; +import java.awt.GraphicsEnvironment; + +import org.assertj.swing.core.Robot; +import org.assertj.swing.fixture.ComponentContainerFixture; +import org.assertj.swing.fixture.DialogFixture; +import org.assertj.swing.fixture.FrameFixture; +import org.assertj.swing.fixture.JCheckBoxFixture; +import org.assertj.swing.fixture.JLabelFixture; +import org.assertj.swing.fixture.JListFixture; +import org.assertj.swing.fixture.JPanelFixture; + +import trick.dre.fixtures.DreFixtureExtension; +import trick.dre.DreApplication; +import trick.common.ui.components.FontChooser; + +public class DreFixture extends FrameFixture { + + public DreFixture(Robot robot, DreApplication target) { + super(robot, target.getMainFrame()); + } + + public static DreFixtureExtension getExtension() { + return new DreFixtureExtension(); + } + +} \ No newline at end of file diff --git a/trick_source/java/src/test/java/trick/dre/fixtures/DreFixtureExtension.java.off b/trick_source/java/src/test/java/trick/dre/fixtures/DreFixtureExtension.java.off new file mode 100644 index 00000000..774bad0a --- /dev/null +++ b/trick_source/java/src/test/java/trick/dre/fixtures/DreFixtureExtension.java.off @@ -0,0 +1,16 @@ +package trick.dre.fixtures; + +import java.awt.Container; + +import org.assertj.swing.core.Robot; +import org.assertj.swing.fixture.ComponentFixtureExtension; + +import trick.simcontrol.fixtures.DreFixture; + +public class DreFixtureExtension extends ComponentFixtureExtension { + @Override + public DreFixture createFixture(Robot robot, Container root) { + DreApplication dreFrame = robot.finder().findByType(root, DreApplication.class, true); + return new DreFixture(robot, dreFrame); + } +}