ZooKeeperServiceRegistry implements ServiceRegistry { @Override public void register(ServiceEndPoint endPoint) { register(endPoint, true); } ZooKeeperServiceRegistry(CuratorFramework curator, MetricRegistry metrics); @VisibleForTesting  ZooKeeperServiceRegistry(NodeFactory nodeFactory, MetricRegistry metrics); @Override void register(ServiceEndPoint endPoint); @Override void unregister(ServiceEndPoint endPoint); @Override synchronized void close(); static String makeServicePath(String serviceName);  }
@Test(expected = NullPointerException.class) public void testRegisterNullService() throws Exception { _registry.register(null); }
@Test(expected = IllegalStateException.class) public void testLargePayloadSize() { int padding = ServiceEndPointJsonCodec.toJson(FOO).getBytes(Charsets.UTF_8).length; String payload = Strings.repeat("x", MAX_DATA_SIZE - padding); _registry.register(newEndPoint(FOO.getServiceName(), FOO.getId(), payload), false); }
@Test public void testMediumPayloadSize() { int padding = ServiceEndPointJsonCodec.toJson(FOO).getBytes(Charsets.UTF_8).length; String payload = Strings.repeat("x", MAX_DATA_SIZE - padding - 1); _registry.register(newEndPoint(FOO.getServiceName(), FOO.getId(), payload), false); }
@Test public void testEmptyPayload() { _registry.register(newEndPoint(FOO.getServiceName(), FOO.getId(), ""), false); }
@Test public void testRegister() throws Exception { PersistentEphemeralNode node = mock(PersistentEphemeralNode.class); when(_nodeFactory.create(anyString(), any(byte[].class))).thenReturn(node); _registry.register(FOO); ArgumentCaptor<byte[]> dataCaptor = ArgumentCaptor.forClass(byte[].class); verify(_nodeFactory).create(eq(FOO_PATH), dataCaptor.capture()); assertEquals(FOO, ServiceEndPointJsonCodec.fromJson(new String(dataCaptor.getValue()))); verify(node, never()).close(anyLong(), any(TimeUnit.class)); }