public void createPaceMakerStateStorage(HBServerMessageType messageType, HBMessageData messageData) throws Exception { HBMessage response = new HBMessage(messageType, messageData); when(clientMock.send(any())).thenReturn(response); clientPoolProxy = new PacemakerClientPoolProxy(); stateStorage = new PaceMakerStateStorage(clientPoolProxy, null); }
@Test(expected = RuntimeException.class) public void testDeleteWorkerHbResponseType() throws Exception { createPaceMakerStateStorage(HBServerMessageType.DELETE_PATH, null); stateStorage.delete_worker_hb("/foo/bar"); }
@Test(expected = RuntimeException.class) public void testGetWorkerHbBadResponse() throws Exception { createPaceMakerStateStorage(HBServerMessageType.GET_PULSE, null); stateStorage.get_worker_hb("/foo", false); }
@Test(expected = RuntimeException.class) public void testSetWorkerHbResponseType() throws Exception { createPaceMakerStateStorage(HBServerMessageType.SEND_PULSE, null); stateStorage.set_worker_hb("/foo", "data".getBytes("UTF-8"), null); }
@Test(expected = RuntimeException.class) public void testGetWorkerHbChildrenBadData() throws Exception { createPaceMakerStateStorage(HBServerMessageType.GET_ALL_NODES_FOR_PATH_RESPONSE, null); stateStorage.get_worker_hb_children("/foo", false); }
@Test public void testSetWorkerHb() throws Exception { createPaceMakerStateStorage(HBServerMessageType.SEND_PULSE_RESPONSE, null); stateStorage.set_worker_hb("/foo", "data".getBytes("UTF-8"), null); verify(clientMock).send(hbMessageCaptor.capture()); HBMessage sent = hbMessageCaptor.getValue(); HBPulse pulse = sent.get_data().get_pulse(); Assert.assertEquals(HBServerMessageType.SEND_PULSE, sent.get_type()); Assert.assertEquals("/foo", pulse.get_id()); Assert.assertEquals("data", new String(pulse.get_details(), "UTF-8")); }
@Test public void testGetWorkerHbChildren() throws Exception { createPaceMakerStateStorage(HBServerMessageType.GET_ALL_NODES_FOR_PATH_RESPONSE, HBMessageData.nodes(new HBNodes())); stateStorage.get_worker_hb_children("/foo", false); verify(clientMock).send(hbMessageCaptor.capture()); HBMessage sent = hbMessageCaptor.getValue(); Assert.assertEquals(HBServerMessageType.GET_ALL_NODES_FOR_PATH, sent.get_type()); Assert.assertEquals("/foo", sent.get_data().get_path()); }
@Override public IStateStorage mkStore(Map<String, Object> config, Map<String, Object> auth_conf, ClusterStateContext context) { try { ZKStateStorageFactory zkfact = new ZKStateStorageFactory(); IStateStorage zkState = zkfact.mkStore(config, auth_conf, context); return new PaceMakerStateStorage(new PacemakerClientPool(config), zkState); } catch (Exception e) { throw Utils.wrapInRuntime(e); } } }
@Test(expected = RuntimeException.class) public void testGetWorkerHbBadData() throws Exception { createPaceMakerStateStorage(HBServerMessageType.GET_PULSE_RESPONSE, null); stateStorage.get_worker_hb("/foo", false); }
@Test public void testDeleteWorkerHb() throws Exception { createPaceMakerStateStorage(HBServerMessageType.DELETE_PATH_RESPONSE, null); stateStorage.delete_worker_hb("/foo/bar"); verify(clientMock).send(hbMessageCaptor.capture()); HBMessage sent = hbMessageCaptor.getValue(); Assert.assertEquals(HBServerMessageType.DELETE_PATH, sent.get_type()); Assert.assertEquals("/foo/bar", sent.get_data().get_path()); }
@Test public void testGetWorkerHb() throws Exception { HBPulse hbPulse = new HBPulse(); hbPulse.set_id("/foo"); ClusterWorkerHeartbeat cwh = new ClusterWorkerHeartbeat("some-storm-id", new HashMap(), 1, 1); hbPulse.set_details(Utils.serialize(cwh)); createPaceMakerStateStorage(HBServerMessageType.GET_PULSE_RESPONSE, HBMessageData.pulse(hbPulse)); stateStorage.get_worker_hb("/foo", false); verify(clientMock).send(hbMessageCaptor.capture()); HBMessage sent = hbMessageCaptor.getValue(); Assert.assertEquals(HBServerMessageType.GET_PULSE, sent.get_type()); Assert.assertEquals("/foo", sent.get_data().get_path()); }