@Test public void testInitHappyPath() throws Exception { String initialLimit = "9000"; String applicationConf = createApplicationConf(); modifyIncludeConf(initialLimit); ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1); ConfigReloader<TrivialConfig> reloader = new ConfigReloader<>(executor, TrivialConfig::new); TrivialConfig config = reloader.init(applicationConf); assertEquals(Integer.parseInt(initialLimit), config.limit); }
private String modifyIncludeConf(String param) throws FileNotFoundException { String value = "{ limit = " + param + " }"; return rawCreateConf(value, includeConf); }
String applicationConf = createApplicationConf(); String includeFilePath = modifyIncludeConf(initialLimit); File includedFile = new File(includeFilePath); assertEquals(Integer.parseInt(initialLimit), config.limit); Thread.sleep(5000); assertEquals(Integer.parseInt(initialLimit), state.config.limit); assertFalse(fireUpdatedCalled.get()); executor.shutdown();
@Test(expected = IllegalStateException.class) public void testInitBadValue() throws Exception { String initialLimit = "badvalue"; String applicationConf = createApplicationConf(); modifyIncludeConf(initialLimit); ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1); ConfigReloader<TrivialConfig> reloader = new ConfigReloader<>(executor, TrivialConfig::new); TrivialConfig config = reloader.init(applicationConf); }
@Before public void before() throws Exception { addPath(temporaryFolder.getRoot().toString()); }
@Test(expected = NullPointerException.class) public void testStartWithoutInit() throws Exception { ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1); BiConsumer<TrivialConfig, TrivialConfig> updater = (oldValue, newValue) -> { assertTrue(true); }; ConfigReloader<TrivialConfig> reloader = new ConfigReloader<>(executor, TrivialConfig::new); reloader.start(updater); }
String applicationConf = createApplicationConf(); String includeFilePath = modifyIncludeConf(initialLimit); File includedFile = new File(includeFilePath); assertEquals(Integer.parseInt(initialLimit), config.limit); modifyIncludeConf(updatedLimit); Thread.sleep(5000); assertEquals(Integer.parseInt(initialLimit), state.config.limit); assertFalse(fireUpdatedCalled.get()); executor.shutdown();
@Test public void testStartHappyPath() throws Exception { final ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1); BiConsumer<TrivialConfig, TrivialConfig> updater = (oldValue, newValue) -> {}; ConfigReloader<TrivialConfig> reloader = new ConfigReloader<TrivialConfig>(executor, TrivialConfig::new) { @Override public void checkForUpdates() { executor.shutdown(); } }; String applicationConf = createApplicationConf(); modifyIncludeConf("10"); reloader.init(applicationConf); reloader.start(updater); Thread.sleep(5000); executor.shutdown(); } }
String applicationConf = createApplicationConf(); String includeFilePath = modifyIncludeConf(initialLimit); File includedFile = new File(includeFilePath); assertEquals(Integer.parseInt(initialLimit), config.limit); modifyIncludeConf(updatedLimit); assertEquals(Integer.parseInt(updatedLimit), state.config.limit);
private String createApplicationConf() throws FileNotFoundException { String value = "trivial { include \"" + includeConf + "\" }"; return rawCreateConf(value, applicationConf); }
String applicationConf = createApplicationConf(); String includedFilePath = modifyIncludeConf(initialLimit); File includedFile = new File(includedFilePath); assertEquals(Integer.parseInt(initialLimit), config.limit); Thread.sleep(5000); modifyIncludeConf(updatedLimit); Thread.sleep(5000); assertEquals(Integer.parseInt(initialLimit), config.limit);