@Test public void assertGetRegistryCenterTime() { when(coordinatorRegistryCenter.getRegistryCenterTime("/testJob/systemTime/current")) .thenReturn(0L); assertThat(jobNodeStorage.getRegistryCenterTime(), is(0L)); verify(coordinatorRegistryCenter).getRegistryCenterTime("/testJob/systemTime/current"); }
@Test public void assertFillJobNodeIfNull() { when(coordinatorRegistryCenter.isExisted("/testJob/config/cron")).thenReturn(false); jobNodeStorage.fillJobNodeIfNullOrOverwrite("config/cron", "0/2 * * * * ?"); verify(coordinatorRegistryCenter).isExisted("/testJob/config/cron"); verify(coordinatorRegistryCenter).persist("/testJob/config/cron", "0/2 * * * * ?"); }
@Test(expected = RuntimeException.class) public void assertExecuteInTransactionFailure() throws Exception { CuratorFramework client = mock(CuratorFramework.class); CuratorTransaction curatorTransaction = mock(CuratorTransaction.class); TransactionCheckBuilder transactionCheckBuilder = mock(TransactionCheckBuilder.class); CuratorTransactionBridge curatorTransactionBridge = mock(CuratorTransactionBridge.class); CuratorTransactionFinal curatorTransactionFinal = mock(CuratorTransactionFinal.class); when(coordinatorRegistryCenter.getRawClient()).thenReturn(client); when(client.inTransaction()).thenReturn(curatorTransaction); when(curatorTransaction.check()).thenReturn(transactionCheckBuilder); when(transactionCheckBuilder.forPath("/")).thenReturn(curatorTransactionBridge); when(curatorTransactionBridge.and()).thenReturn(curatorTransactionFinal); TransactionCreateBuilder transactionCreateBuilder = mock(TransactionCreateBuilder.class); when(curatorTransactionFinal.create()).thenReturn(transactionCreateBuilder); when(transactionCreateBuilder.forPath("/test_transaction")) .thenReturn(curatorTransactionBridge); when(curatorTransactionBridge.and()).thenThrow(new RuntimeException()); jobNodeStorage.executeInTransaction( new TransactionExecutionCallback() { @Override public void execute(final CuratorTransactionFinal curatorTransactionFinal) throws Exception { curatorTransactionFinal.create().forPath("/test_transaction").and(); } }); verify(coordinatorRegistryCenter).getRawClient(); verify(client).inTransaction(); verify(curatorTransaction).check(); verify(transactionCheckBuilder).forPath("/"); verify(curatorTransactionBridge, times(2)).and(); verify(curatorTransactionFinal).create(); verify(transactionCreateBuilder).forPath("/test_transaction"); verify(curatorTransactionFinal, times(0)).commit(); }
@Test public void assertFillJobNodeIfNotNullAndOverwriteDisabled() { when(coordinatorRegistryCenter.isExisted("/testJob/config/cron")).thenReturn(true); jobNodeStorage.fillJobNodeIfNullOrOverwrite("config/cron", "0/1 * * * * ?"); verify(coordinatorRegistryCenter).isExisted("/testJob/config/cron"); verify(coordinatorRegistryCenter, times(0)).persist("/testJob/config/cron", "0/1 * * * * ?"); }
@Test public void assertRemoveJobNodeIfNotNeeded() { when(coordinatorRegistryCenter.isExisted("/testJob/config")).thenReturn(false); jobNodeStorage.removeJobNodeIfExisted("config"); verify(coordinatorRegistryCenter).isExisted("/testJob/config"); verify(coordinatorRegistryCenter, times(0)).remove("/testJob/config"); }
@Test public void assertGetJobNodeChildrenKeys() { when(coordinatorRegistryCenter.getChildrenKeys("/testJob/servers")) .thenReturn(Arrays.asList("host0", "host1")); assertThat( jobNodeStorage.getJobNodeChildrenKeys("servers"), is(Arrays.asList("host0", "host1"))); verify(coordinatorRegistryCenter).getChildrenKeys("/testJob/servers"); }
@Test public void assertCreateJobNodeIfNotNeeded() { when(coordinatorRegistryCenter.isExisted("/testJob")).thenReturn(true); when(coordinatorRegistryCenter.isExisted("/testJob/config")).thenReturn(true); jobNodeStorage.createJobNodeIfNeeded("config"); verify(coordinatorRegistryCenter).isExisted("/testJob"); verify(coordinatorRegistryCenter).isExisted("/testJob/config"); verify(coordinatorRegistryCenter, times(0)).persist("/testJob/config", ""); }
@Test public void assertAddDataListener() { TreeCache treeCache = mock(TreeCache.class); @SuppressWarnings("unchecked") Listenable<TreeCacheListener> listeners = mock(Listenable.class); TreeCacheListener listener = mock(TreeCacheListener.class); when(treeCache.getListenable()).thenReturn(listeners); when(coordinatorRegistryCenter.getRawCache("/testJob")).thenReturn(treeCache); jobNodeStorage.addDataListener(listener); verify(listeners).addListener(listener); }
@Test public void assertAddConnectionStateListener() { CuratorFramework client = mock(CuratorFramework.class); @SuppressWarnings("unchecked") Listenable<ConnectionStateListener> listeners = mock(Listenable.class); ConnectionStateListener listener = mock(ConnectionStateListener.class); when(client.getConnectionStateListenable()).thenReturn(listeners); when(coordinatorRegistryCenter.getRawClient()).thenReturn(client); jobNodeStorage.addConnectionStateListener(listener); verify(listeners).addListener(listener); }
@Test public void assertFillJobNodeIfNotNullAndOverwriteEnabledAndValueDifferent() throws NoSuchFieldException { when(coordinatorRegistryCenter.isExisted("/testJob/config/cron")).thenReturn(true); when(coordinatorRegistryCenter.getDirectly("/testJob/config/cron")).thenReturn("0/1 * * * * ?"); JobConfigurationFieldUtil.setSuperFieldValue(jobConfig, "overwrite", true); jobNodeStorage.fillJobNodeIfNullOrOverwrite("config/cron", "0/2 * * * * ?"); verify(coordinatorRegistryCenter).isExisted("/testJob/config/cron"); verify(coordinatorRegistryCenter).getDirectly("/testJob/config/cron"); verify(coordinatorRegistryCenter).persist("/testJob/config/cron", "0/2 * * * * ?"); }
@Test public void assertGetJobNodeDataDirectly() { when(coordinatorRegistryCenter.getDirectly("/testJob/config/cron")).thenReturn("0/1 * * * * ?"); assertThat(jobNodeStorage.getJobNodeDataDirectly("config/cron"), is("0/1 * * * * ?")); verify(coordinatorRegistryCenter).getDirectly("/testJob/config/cron"); }
@Test public void assertIsJobNodeExisted() { when(coordinatorRegistryCenter.isExisted("/testJob/config")).thenReturn(true); assertTrue(jobNodeStorage.isJobNodeExisted("config")); verify(coordinatorRegistryCenter).isExisted("/testJob/config"); }
@Test public void assertGetJobConfiguration() { assertThat(jobNodeStorage.getJobConfiguration(), is((JobConfiguration) jobConfig)); }
@Test public void assertReplaceJobNode() { jobNodeStorage.replaceJobNode("config/cron", "0/1 * * * * ?"); verify(coordinatorRegistryCenter).persist("/testJob/config/cron", "0/1 * * * * ?"); }
@Test public void assertUpdateJobNode() { jobNodeStorage.updateJobNode("config/cron", "0/1 * * * * ?"); verify(coordinatorRegistryCenter).update("/testJob/config/cron", "0/1 * * * * ?"); }
@Test public void assertFillEphemeralJobNode() { jobNodeStorage.fillEphemeralJobNode("config/cron", "0/1 * * * * ?"); verify(coordinatorRegistryCenter).persistEphemeral("/testJob/config/cron", "0/1 * * * * ?"); }