diff --git a/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/InterceptorUserDataMapDstu2Test.java b/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/InterceptorUserDataMapDstu2Test.java index 67421628084..ea23065073f 100644 --- a/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/InterceptorUserDataMapDstu2Test.java +++ b/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/InterceptorUserDataMapDstu2Test.java @@ -92,7 +92,7 @@ public class InterceptorUserDataMapDstu2Test { IOUtils.closeQuietly(status.getEntity().getContent()); ourLog.info(myMapCheckMethods.toString()); - assertThat(myMapCheckMethods, containsInAnyOrder("incomingRequestPostProcessed", "incomingRequestPreHandled", "preProcessOutgoingException", "handleException")); + assertThat(myMapCheckMethods, contains("incomingRequestPostProcessed", "incomingRequestPreHandled", "preProcessOutgoingException", "handleException")); } @Test @@ -106,6 +106,12 @@ public class InterceptorUserDataMapDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); + for (int i = 0; i < 10; i++) { + if (!myMapCheckMethods.contains("processingCompletedNormally")) { + Thread.sleep(100); + } + } + ourLog.info(myMapCheckMethods.toString()); assertThat(myMapCheckMethods.toString(), myMapCheckMethods, contains("incomingRequestPostProcessed", "incomingRequestPreHandled", "outgoingResponse", "processingCompletedNormally")); } diff --git a/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/LoggingInterceptorDstu2Test.java b/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/LoggingInterceptorDstu2Test.java index 96d9dedf8d7..96e4f3bec1c 100644 --- a/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/LoggingInterceptorDstu2Test.java +++ b/hapi-fhir-structures-dstu2/src/test/java/ca/uhn/fhir/rest/server/interceptor/LoggingInterceptorDstu2Test.java @@ -4,7 +4,9 @@ import static org.hamcrest.Matchers.matchesPattern; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.after; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -97,10 +99,8 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); - ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertThat(captor.getAllValues().get(0), StringContains.containsString("ERROR - GET http://localhost:" + ourPort + "/Patient/EX")); } @@ -117,10 +117,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertThat(captor.getValue(), StringContains.containsString("metadata - ")); } @@ -138,18 +138,13 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertEquals("extended-operation-instance - $everything - Patient/123", captor.getValue()); } - private void avoidRaceCondition() throws InterruptedException { - // The server finishes the response and closes the connection, then runs the final interceptor so technically - // we could get here before the interceptor has fired - Thread.sleep(100); - } @Test public void testRequestBodyRead() throws Exception { @@ -167,7 +162,7 @@ public class LoggingInterceptorDstu2Test { IOUtils.closeQuietly(status.getEntity().getContent()); ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertEquals("read - - Patient/1 - ", captor.getValue()); } @@ -187,10 +182,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertThat(captor.getValue(), matchesPattern("[0-9]{3}")); } @@ -211,7 +206,7 @@ public class LoggingInterceptorDstu2Test { IOUtils.closeQuietly(status.getEntity().getContent()); ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertEquals("read - - Patient/1 - ", captor.getValue()); } @@ -235,10 +230,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpPost); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertEquals("create - - Patient - ", captor.getValue()); } @@ -265,10 +260,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpPost); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertEquals("ERROR - create - - Patient - ", captor.getValue()); } @@ -286,10 +281,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertEquals("extended-operation-server - $everything - ", captor.getValue()); } @@ -307,10 +302,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertEquals("extended-operation-type - $everything - Patient", captor.getValue()); } @@ -327,10 +322,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertThat(captor.getValue(), StringContains.containsString("read - Patient/1")); } @@ -348,10 +343,10 @@ public class LoggingInterceptorDstu2Test { HttpResponse status = ourClient.execute(httpGet); IOUtils.closeQuietly(status.getEntity().getContent()); - avoidRaceCondition(); + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(logger, times(1)).info(captor.capture()); + verify(logger, timeout(1000).times(1)).info(captor.capture()); assertThat(captor.getValue(), StringContains.containsString("search-type - Patient - ?_id=1")); }