private void privateSet(String path, Optional<byte[]> data) throws Exception { final long start = System.currentTimeMillis(); try { SetDataBuilder setDataBuilder = curator.setData(); if (data.isPresent()) { setDataBuilder.forPath(path, data.get()); } else { setDataBuilder.forPath(path); } } finally { log(OperationType.WRITE, Optional.<Integer> absent(), Optional.<Integer> of(data.or(EMPTY_BYTES).length), start, path); } }
@Test public void testDataIsUpdatedWithAtlasServerAddress() throws Exception { when(configuration.getString(HAConfiguration.ATLAS_SERVER_ADDRESS_PREFIX +"id1")).thenReturn(HOST_PORT); when(configuration.getString( HAConfiguration.ATLAS_SERVER_HA_ZK_ROOT_KEY, HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT)). thenReturn(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT); when(curatorFactory.clientInstance()).thenReturn(curatorFramework); ExistsBuilder existsBuilder = mock(ExistsBuilder.class); when(curatorFramework.checkExists()).thenReturn(existsBuilder); when(existsBuilder.forPath(getPath())).thenReturn(new Stat()); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(curatorFramework.setData()).thenReturn(setDataBuilder); ActiveInstanceState activeInstanceState = new ActiveInstanceState(configuration, curatorFactory); activeInstanceState.update("id1"); verify(setDataBuilder).forPath( getPath(), SERVER_ADDRESS.getBytes(Charset.forName("UTF-8"))); }
@Test public void testSharedPathIsCreatedIfNotExists() throws Exception { when(configuration.getString(HAConfiguration.ATLAS_SERVER_ADDRESS_PREFIX +"id1")).thenReturn(HOST_PORT); when(configuration.getString( HAConfiguration.ATLAS_SERVER_HA_ZK_ROOT_KEY, HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT)). thenReturn(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT); when(curatorFactory.clientInstance()).thenReturn(curatorFramework); ExistsBuilder existsBuilder = mock(ExistsBuilder.class); when(curatorFramework.checkExists()).thenReturn(existsBuilder); when(existsBuilder.forPath(getPath())).thenReturn(null); CreateBuilder createBuilder = mock(CreateBuilder.class); when(curatorFramework.create()).thenReturn(createBuilder); when(createBuilder.withMode(CreateMode.EPHEMERAL)).thenReturn(createBuilder); when(createBuilder.withACL(ZooDefs.Ids.OPEN_ACL_UNSAFE)).thenReturn(createBuilder); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(curatorFramework.setData()).thenReturn(setDataBuilder); ActiveInstanceState activeInstanceState = new ActiveInstanceState(configuration, curatorFactory); activeInstanceState.update("id1"); verify(createBuilder).forPath(getPath()); }
@Test public void saveShouldWrapExceptionInRestException() throws Exception { exception.expect(RestException.class); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.INDEXING.getZookeeperRoot() + "/bro", broJson.getBytes())).thenThrow(Exception.class); when(curatorFramework.setData()).thenReturn(setDataBuilder); sensorIndexingConfigService.save("bro", new HashMap<>()); }
@Test public void saveShouldReturnSameConfigThatIsPassedOnSuccessfulSave() throws Exception { final Map<String, Object> sensorIndexingConfig = getTestSensorIndexingConfig(); when(objectMapper.writeValueAsString(sensorIndexingConfig)).thenReturn(broJson); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.INDEXING.getZookeeperRoot() + "/bro", broJson.getBytes())).thenReturn(new Stat()); when(curatorFramework.setData()).thenReturn(setDataBuilder); assertEquals(sensorIndexingConfig, sensorIndexingConfigService.save("bro", sensorIndexingConfig)); verify(setDataBuilder).forPath(eq(ConfigurationType.INDEXING.getZookeeperRoot() + "/bro"), eq(broJson.getBytes())); }
@Test public void saveShouldWrapExceptionInRestException() throws Exception { exception.expect(RestException.class); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.GLOBAL.getZookeeperRoot(), "{ }".getBytes())).thenThrow(Exception.class); when(curatorFramework.setData()).thenReturn(setDataBuilder); globalConfigService.save(new HashMap<>()); }
@Test public void saveShouldReturnSameConfigThatIsPassedOnSuccessfulSave() throws Exception { SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.GLOBAL.getZookeeperRoot(), "{ }".getBytes())).thenReturn(new Stat()); when(curatorFramework.setData()).thenReturn(setDataBuilder); assertEquals(new HashMap<>(), globalConfigService.save(new HashMap<>())); verify(setDataBuilder).forPath(eq(ConfigurationType.GLOBAL.getZookeeperRoot()), eq("{ }".getBytes())); }
@Test public void saveShouldWrapExceptionInRestException() throws Exception { exception.expect(RestException.class); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.PARSER.getZookeeperRoot() + "/bro", broJson.getBytes())).thenThrow(Exception.class); when(curatorFramework.setData()).thenReturn(setDataBuilder); final SensorParserConfig sensorParserConfig = new SensorParserConfig(); sensorParserConfig.setSensorTopic("bro"); sensorParserConfigService.save("bro", sensorParserConfig); }
@Test public void saveShouldReturnSameConfigThatIsPassedOnSuccessfulSave() throws Exception { final SensorParserConfig sensorParserConfig = getTestBroSensorParserConfig(); when(objectMapper.writeValueAsString(sensorParserConfig)).thenReturn(broJson); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.PARSER.getZookeeperRoot() + "/bro", broJson.getBytes())).thenReturn(new Stat()); when(curatorFramework.setData()).thenReturn(setDataBuilder); assertEquals(getTestBroSensorParserConfig(), sensorParserConfigService.save("bro", sensorParserConfig)); verify(setDataBuilder).forPath(eq(ConfigurationType.PARSER.getZookeeperRoot() + "/bro"), eq(broJson.getBytes())); }
@Test public void saveShouldWrapExceptionInRestException() throws Exception { exception.expect(RestException.class); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.ENRICHMENT.getZookeeperRoot() + "/bro", broJson.getBytes())).thenThrow(Exception.class); when(curatorFramework.setData()).thenReturn(setDataBuilder); sensorEnrichmentConfigService.save("bro", new SensorEnrichmentConfig()); }
@Test public void saveShouldReturnSameConfigThatIsPassedOnSuccessfulSave() throws Exception { final SensorEnrichmentConfig sensorEnrichmentConfig = getTestSensorEnrichmentConfig(); when(objectMapper.writeValueAsString(sensorEnrichmentConfig)).thenReturn(broJson); SetDataBuilder setDataBuilder = mock(SetDataBuilder.class); when(setDataBuilder.forPath(ConfigurationType.ENRICHMENT.getZookeeperRoot() + "/bro", broJson.getBytes())).thenReturn(new Stat()); when(curatorFramework.setData()).thenReturn(setDataBuilder); assertEquals(sensorEnrichmentConfig, sensorEnrichmentConfigService.save("bro", sensorEnrichmentConfig)); verify(setDataBuilder).forPath(eq(ConfigurationType.ENRICHMENT.getZookeeperRoot() + "/bro"), eq(broJson.getBytes())); }
private void privateSet(String path, Optional<byte[]> data) throws Exception { final long start = System.currentTimeMillis(); try { SetDataBuilder setDataBuilder = curator.setData(); if (data.isPresent()) { setDataBuilder.forPath(path, data.get()); } else { setDataBuilder.forPath(path); } } finally { log(OperationType.WRITE, Optional.<Integer>absent(), Optional.<Integer>of(data.or(EMPTY_BYTES).length), start, path); } }
@Override public SetDataBuilder setData() { return new MockSetDataBuilder(); }
@Override public SetDataBuilder setData() { return namespaceDelegate().setData(); }