1717import static com .microsoft .applicationinsights .smoketest .EnvironmentValue .WILDFLY_13_JAVA_8 ;
1818import static com .microsoft .applicationinsights .smoketest .EnvironmentValue .WILDFLY_13_JAVA_8_OPENJ9 ;
1919import static org .assertj .core .api .Assertions .assertThat ;
20+ import static org .awaitility .Awaitility .await ;
2021import static org .junit .jupiter .api .Assertions .assertTrue ;
2122
2223import com .azure .json .JsonProviders ;
3031import java .io .IOException ;
3132import java .time .Duration ;
3233import java .util .List ;
33- import org .awaitility .Awaitility ;
3434import org .junit .jupiter .api .Test ;
3535import org .junit .jupiter .api .extension .RegisterExtension ;
3636
@@ -42,22 +42,16 @@ abstract class LiveMetricsTest {
4242 @ Test
4343 @ TargetUri ("/test" )
4444 void testTelemetryDataFlow () {
45- Awaitility . await ()
45+ await ()
4646 .atMost (Duration .ofSeconds (60 ))
4747 .until (() -> testing .mockedIngestion .getCountForType ("RequestData" ) == 1 );
4848
4949 assertThat (testing .mockedIngestion .isPingReceived ()).isTrue ();
5050
51- // Wait for all telemetry to be available in LiveMetrics post bodies
52- // Need to wait because some but not all the telemetry may be available in the first post body
53- Awaitility .await ()
54- .atMost (Duration .ofSeconds (30 ))
51+ await ()
5552 .untilAsserted (() -> {
56- List <String > postBodies = testing .mockedIngestion .getPostBodies ();
57- assertThat (postBodies ).isNotEmpty ();
58-
5953 PostBodyVerifier verifier = new PostBodyVerifier ();
60- for (String postBody : postBodies ) {
54+ for (String postBody : testing . mockedIngestion . getPostBodies () ) {
6155 verifier .searchPostBody (postBody );
6256 }
6357
@@ -145,7 +139,10 @@ private boolean hasDependency(List<MetricPoint> metrics) {
145139 String name = metric .getName ();
146140 double value = metric .getValue ();
147141 if (name .equals ("\\ ApplicationInsights\\ Dependency Calls/Sec" )) {
148- return value == 1 ;
142+ // TODO wait for the live metrics from health check to be emitted
143+ // before calling MockedQuickPulseServlet.resetData()
144+ // then we can assert that the value is exactly == 1
145+ return value >= 1 ;
149146 }
150147 }
151148 return false ;
@@ -156,7 +153,10 @@ private boolean hasRequest(List<MetricPoint> metrics) {
156153 String name = metric .getName ();
157154 double value = metric .getValue ();
158155 if (name .equals ("\\ ApplicationInsights\\ Requests/Sec" )) {
159- return value == 1 ;
156+ // TODO wait for the live metrics from health check to be emitted
157+ // before calling MockedQuickPulseServlet.resetData()
158+ // then we can assert that the value is exactly == 1
159+ return value >= 1 ;
160160 }
161161 }
162162 return false ;
0 commit comments