/** Test if a record is registered when the controller is temporarily down. */ @Test public void testControllerDownRegistration() { System.out.println("testControllerDownRegistration"); List<String> hosts = new ArrayList(); hosts.add("uva.nl"); instance.doInBackground(hosts); sleepMillis(120); instance.stopTemporarily(); sleepMillis(1_500); assertFalse(instance.isBusyCheckingConnections()); instance.restart(hosts); sleepMillis(1_500); assertTrue( "The controller is NOT checking connections now", instance.isBusyCheckingConnections()); OutageListItem lastOutage = instance.getLastOutage(); assertTrue("No outages were registered", null != lastOutage); assertTrue( "The actual last outage is " + lastOutage, lastOutage.getOutageCause() == CONTROLLERDOWN); instance.exit(); sleepMillis(1_500); if (instance.getSessionData().saveData()) { LOGGER.info("Session data is saved at exiting the application."); } else { LOGGER.error("Session data is NOT saved at exiting the application."); } LOGGER.info("Load data"); instance.initWithPreviousSessionData(); assertTrue( "The actual last outage is " + lastOutage, lastOutage.getOutageCause() == CONTROLLERDOWN); }
@Before public void setUp() { System.out.println("setUp"); instance = new ISPController(); LOGGER.info("New Controller instance instantiated."); setSessionsDataFileNameForTest(); // copy a test file to the test directory (will be overwritten) File resourcesDirectory = new File("src/test/resources"); File source = new File(resourcesDirectory, "MonitorISPData.bin"); Path sourcePath = source.toPath(); // copy the test file to the test directory with the same name as the source try { Files.copy(sourcePath, getTestHomeDir().resolve(source.getName()), REPLACE_EXISTING); LOGGER.info("Fresh test session data copied"); } catch (IOException ex) { LOGGER.error("File copy failed with exception {}", ex); } // Must load the session data explicit as Homepage is not doing it. if (instance.initWithPreviousSessionData()) { LOGGER.info("Preset previous session test data are used for initialization."); } else { LOGGER.info("Preset previous session test data could not be read, defaults are set"); } }