@Test void testShutDown() { reportTransaction(reportingEventHandler); sendShutdownEvent(); reportSpan(); reportingEventHandler.flush(); final List<JsonNode> ndJsonNodes = getNdJsonNodes(); assertThat(ndJsonNodes).hasSize(2); assertThat(ndJsonNodes.get(0).get("metadata")).isNotNull(); assertThat(ndJsonNodes.get(1).get("transaction")).isNotNull(); }
@Test void testReport() { reportTransaction(reportingEventHandler); reportSpan(); reportError(); assertThat(reportingEventHandler.getBufferSize()).isGreaterThan(0); reportingEventHandler.flush(); assertThat(reportingEventHandler.getBufferSize()).isEqualTo(0); final List<JsonNode> ndJsonNodes = getNdJsonNodes(); assertThat(ndJsonNodes).hasSize(4); assertThat(ndJsonNodes.get(0).get("metadata")).isNotNull(); assertThat(ndJsonNodes.get(1).get("transaction")).isNotNull(); assertThat(ndJsonNodes.get(2).get("span")).isNotNull(); assertThat(ndJsonNodes.get(3).get("error")).isNotNull(); }
@Test void testNoopWhenNotConnected() { reportTransaction(nonConnectedReportingEventHandler); assertThat(nonConnectedReportingEventHandler.getBufferSize()).isEqualTo(0); }
@Test void testReportRoundRobinOnServerError() { mockApmServer1.stubFor(post(INTAKE_V2_URL).willReturn(serviceUnavailable())); reportTransaction(reportingEventHandler); reportingEventHandler.flush(); mockApmServer1.verify(postRequestedFor(urlEqualTo(INTAKE_V2_URL))); mockApmServer2.verify(0, postRequestedFor(urlEqualTo(INTAKE_V2_URL))); mockApmServer1.resetRequests(); mockApmServer2.resetRequests(); reportTransaction(reportingEventHandler); reportingEventHandler.flush(); mockApmServer1.verify(0, postRequestedFor(urlEqualTo(INTAKE_V2_URL))); mockApmServer2.verify(postRequestedFor(urlEqualTo(APM_SERVER_PATH + INTAKE_V2_URL))); }