/** * {@inheritDoc} */ @Override protected Void performRemoteCall(IAgentStorageService remoteObject) { remoteObject.addDataObjects(dataObjects); return null; }
@Test public void sendData() throws Exception { when(client.isConnected()).thenReturn(true); List<DefaultData> measurements = new ArrayList<DefaultData>(); measurements.add(new TimerData()); connection.sendDataObjects(measurements); verify(agentStorageService, times(1)).addDataObjects(measurements); verifyNoMoreInteractions(agentStorageService); }
@Test(expectedExceptions = { ServerUnavailableException.class }) public void timeout() throws Exception { when(client.isConnected()).thenReturn(true); doThrow(TimeoutException.class).when(agentStorageService).addDataObjects(Matchers.<List<? extends DefaultData>> any()); List<DefaultData> measurements = new ArrayList<DefaultData>(); measurements.add(new TimerData()); try { connection.sendDataObjects(measurements); } catch (ServerUnavailableException e) { assertThat(e.isServerTimeout(), is(true)); throw e; } finally { verify(agentStorageService, times(1)).addDataObjects(measurements); verifyNoMoreInteractions(agentStorageService); } }
@Test(expectedExceptions = { ServerUnavailableException.class }) public void remoteException() throws Exception { when(client.isConnected()).thenReturn(true); doThrow(RuntimeException.class).when(agentStorageService).addDataObjects(Matchers.<List<? extends DefaultData>> any()); List<DefaultData> measurements = new ArrayList<DefaultData>(); measurements.add(new TimerData()); try { connection.sendDataObjects(measurements); } catch (ServerUnavailableException e) { assertThat(e.isServerTimeout(), is(false)); throw e; } finally { // call depends on the retry strategy verify(agentStorageService, times(RetryStrategy.DEFAULT_NUMBER_OF_RETRIES)).addDataObjects(measurements); verifyNoMoreInteractions(agentStorageService); verify(client).close(); } }