1717import static com .microsoft .applicationinsights .smoketest .EnvironmentValue .WILDFLY_13_JAVA_8_OPENJ9 ;
1818import static org .assertj .core .api .Assertions .assertThat ;
1919
20- import com .microsoft .applicationinsights .smoketest .schemav2 .Data ;
21- import com .microsoft .applicationinsights .smoketest .schemav2 .Envelope ;
22- import com .microsoft .applicationinsights .smoketest .schemav2 .ExceptionData ;
23- import com .microsoft .applicationinsights .smoketest .schemav2 .MessageData ;
24- import com .microsoft .applicationinsights .smoketest .schemav2 .RequestData ;
2520import com .microsoft .applicationinsights .smoketest .schemav2 .SeverityLevel ;
26- import java .util .Comparator ;
27- import java .util .List ;
2821import org .junit .jupiter .api .Test ;
2922import org .junit .jupiter .api .extension .RegisterExtension ;
3023
@@ -43,119 +36,116 @@ boolean isWildflyServer() {
4336 @ Test
4437 @ TargetUri ("/test" )
4538 void test () throws Exception {
46- List <Envelope > rdList = testing .mockedIngestion .waitForItems ("RequestData" , 1 );
47-
48- Envelope rdEnvelope = rdList .get (0 );
49- String operationId = rdEnvelope .getTags ().get ("ai.operation.id" );
50- List <Envelope > mdList = testing .mockedIngestion .waitForMessageItemsInRequest (3 , operationId );
51-
52- Envelope mdEnvelope1 = mdList .get (0 );
53- Envelope mdEnvelope2 = mdList .get (1 );
54-
55- assertThat (rdEnvelope .getSampleRate ()).isNull ();
56- assertThat (mdEnvelope1 .getSampleRate ()).isNull ();
57- assertThat (mdEnvelope2 .getSampleRate ()).isNull ();
58-
59- RequestData rd = (RequestData ) ((Data <?>) rdEnvelope .getData ()).getBaseData ();
60-
61- List <MessageData > logs = testing .mockedIngestion .getMessageDataInRequest (3 );
62- logs .sort (Comparator .comparing (MessageData ::getSeverityLevel ));
63-
64- MessageData md1 = logs .get (0 );
65- MessageData md2 = logs .get (1 );
66- MessageData md3 = logs .get (2 );
67-
68- assertThat (md1 .getMessage ()).isEqualTo ("This is logback warn." );
69- assertThat (md1 .getSeverityLevel ()).isEqualTo (SeverityLevel .WARNING );
70- assertThat (md1 .getProperties ())
71- .containsEntry ("SourceType" , "Logger" )
72- .containsEntry ("LoggerName" , "smoketestapp" )
73- .containsKey ("ThreadName" )
74- .containsEntry ("MDC key" , "MDC value" );
75-
76- if (!isWildflyServer ()) {
77- assertThat (md1 .getProperties ())
78- .containsEntry ("FileName" , "LogbackServlet.java" )
79- .containsEntry (
80- "ClassName" , "com.microsoft.applicationinsights.smoketestapp.LogbackServlet" )
81- .containsEntry ("MethodName" , "doGet" )
82- .containsEntry ("LineNumber" , "26" )
83- .hasSize (8 );
84- } else {
85- assertThat (md1 .getProperties ()).hasSize (4 );
86- }
87-
88- assertThat (md2 .getMessage ()).isEqualTo ("This is logback error." );
89- assertThat (md2 .getSeverityLevel ()).isEqualTo (SeverityLevel .ERROR );
90- assertThat (md2 .getProperties ())
91- .containsEntry ("SourceType" , "Logger" )
92- .containsEntry ("LoggerName" , "smoketestapp" )
93- .containsKey ("ThreadName" );
39+ testing .waitAndAssertTrace (
40+ trace ->
41+ trace
42+ .hasRequestSatisying (
43+ request ->
44+ request
45+ .hasName ("GET /Logback/test" )
46+ .hasNoSampleRate ()
47+ .hasTag ("ai.operation.name" , "GET /Logback/test" )
48+ .hasNoParent ())
49+ .hasMessageCount (3 )
50+ .hasMessageSatisying (
51+ message ->
52+ message
53+ .hasMessage ("This is logback warn." )
54+ .hasSeverityLevel (SeverityLevel .WARNING )
55+ .hasProperty ("SourceType" , "Logger" )
56+ .hasProperty ("LoggerName" , "smoketestapp" )
57+ .containsProperty ("ThreadName" )
58+ .hasProperty ("MDC key" , "MDC value" )
59+ .hasParent (trace .getRequestId (0 ))
60+ .hasNoSampleRate ()
61+ .hasTag ("ai.operation.name" , "GET /Logback/test" )
62+ .hasPropertiesSize (isWildflyServer () ? 4 : 8 ))
63+ .hasMessageSatisying (
64+ message ->
65+ message
66+ .hasMessage ("This is logback error." )
67+ .hasSeverityLevel (SeverityLevel .ERROR )
68+ .hasProperty ("SourceType" , "Logger" )
69+ .hasProperty ("LoggerName" , "smoketestapp" )
70+ .containsProperty ("ThreadName" )
71+ .hasParent (trace .getRequestId (0 ))
72+ .hasNoSampleRate ()
73+ .hasTag ("ai.operation.name" , "GET /Logback/test" )
74+ .hasPropertiesSize (isWildflyServer () ? 3 : 7 )));
9475
9576 if (!isWildflyServer ()) {
96- assertThat (md2 .getProperties ())
97- .containsEntry ("FileName" , "LogbackServlet.java" )
98- .containsEntry (
99- "ClassName" , "com.microsoft.applicationinsights.smoketestapp.LogbackServlet" )
100- .containsEntry ("MethodName" , "doGet" )
101- .containsEntry ("LineNumber" , "28" )
102- .hasSize (7 );
103- } else {
104- assertThat (md2 .getProperties ()).hasSize (3 );
77+ testing .waitAndAssertTrace (
78+ trace ->
79+ trace
80+ .hasMessageSatisying (
81+ message ->
82+ message
83+ .hasMessage ("This is logback warn." )
84+ .hasProperty ("FileName" , "LogbackServlet.java" )
85+ .hasProperty (
86+ "ClassName" ,
87+ "com.microsoft.applicationinsights.smoketestapp.LogbackServlet" )
88+ .hasProperty ("MethodName" , "doGet" )
89+ .hasProperty ("LineNumber" , "26" ))
90+ .hasMessageSatisying (
91+ message ->
92+ message
93+ .hasMessage ("This is logback error." )
94+ .hasProperty ("FileName" , "LogbackServlet.java" )
95+ .hasProperty (
96+ "ClassName" ,
97+ "com.microsoft.applicationinsights.smoketestapp.LogbackServlet" )
98+ .hasProperty ("MethodName" , "doGet" )
99+ .hasProperty ("LineNumber" , "28" ))
100+ .hasMessageSatisying (message -> message .hasProperty ("Marker" , "aMarker" )));
105101 }
106-
107- if (!isWildflyServer ()) {
108- assertThat (md3 .getProperties ()).containsEntry ("Marker" , "aMarker" );
109- }
110-
111- SmokeTestExtension .assertParentChild (rd , rdEnvelope , mdEnvelope1 , "GET /Logback/test" );
112- SmokeTestExtension .assertParentChild (rd , rdEnvelope , mdEnvelope2 , "GET /Logback/test" );
113102 }
114103
115104 @ Test
116105 @ TargetUri ("/testWithException" )
117106 void testWithException () throws Exception {
118- List <Envelope > rdList = testing .mockedIngestion .waitForItems ("RequestData" , 1 );
107+ testing .waitAndAssertTrace (
108+ trace ->
109+ trace
110+ .hasRequestSatisying (
111+ request ->
112+ request
113+ .hasName ("GET /Logback/testWithException" )
114+ .hasNoSampleRate ()
115+ .hasTag ("ai.operation.name" , "GET /Logback/testWithException" )
116+ .hasNoParent ())
117+ .hasExceptionCount (1 )
118+ .hasExceptionSatisying (
119+ exception ->
120+ exception
121+ .hasExceptionTypeName ("java.lang.Exception" )
122+ .hasExceptionMessage ("Fake Exception" )
123+ .hasSeverityLevel (SeverityLevel .ERROR )
124+ .hasProperty ("Logger Message" , "This is an exception!" )
125+ .hasProperty ("SourceType" , "Logger" )
126+ .hasProperty ("LoggerName" , "smoketestapp" )
127+ .containsProperty ("ThreadName" )
128+ .hasProperty ("MDC key" , "MDC value" )
129+ .hasParent (trace .getRequestId (0 ))
130+ .hasNoSampleRate ()
131+ .hasTag ("ai.operation.name" , "GET /Logback/testWithException" )
132+ .hasPropertiesSize (isWildflyServer () ? 5 : 9 )));
119133
120- Envelope rdEnvelope = rdList .get (0 );
121- String operationId = rdEnvelope .getTags ().get ("ai.operation.id" );
122- List <Envelope > edList =
123- testing .mockedIngestion .waitForItemsInOperation ("ExceptionData" , 1 , operationId );
124134 assertThat (testing .mockedIngestion .getCountForType ("EventData" )).isZero ();
125135
126- Envelope edEnvelope = edList .get (0 );
127-
128- assertThat (rdEnvelope .getSampleRate ()).isNull ();
129- assertThat (edEnvelope .getSampleRate ()).isNull ();
130-
131- RequestData rd = (RequestData ) ((Data <?>) rdEnvelope .getData ()).getBaseData ();
132- ExceptionData ed = (ExceptionData ) ((Data <?>) edEnvelope .getData ()).getBaseData ();
133-
134- assertThat (ed .getExceptions ().get (0 ).getTypeName ()).isEqualTo ("java.lang.Exception" );
135- assertThat (ed .getExceptions ().get (0 ).getMessage ()).isEqualTo ("Fake Exception" );
136- assertThat (ed .getSeverityLevel ()).isEqualTo (SeverityLevel .ERROR );
137- assertThat (ed .getProperties ())
138- .containsEntry ("Logger Message" , "This is an exception!" )
139- .containsEntry ("SourceType" , "Logger" )
140- .containsEntry ("LoggerName" , "smoketestapp" )
141- .containsKey ("ThreadName" )
142- .containsEntry ("MDC key" , "MDC value" );
143-
144136 if (!isWildflyServer ()) {
145- assertThat (ed .getProperties ())
146- .containsEntry ("FileName" , "LogbackWithExceptionServlet.java" )
147- .containsEntry (
148- "ClassName" ,
149- "com.microsoft.applicationinsights.smoketestapp.LogbackWithExceptionServlet" )
150- .containsEntry ("MethodName" , "doGet" )
151- .containsEntry ("LineNumber" , "21" )
152- .hasSize (9 );
153- } else {
154- assertThat (ed .getProperties ()).hasSize (5 );
137+ testing .waitAndAssertTrace (
138+ trace ->
139+ trace .hasExceptionSatisying (
140+ exception ->
141+ exception
142+ .hasProperty ("FileName" , "LogbackWithExceptionServlet.java" )
143+ .hasProperty (
144+ "ClassName" ,
145+ "com.microsoft.applicationinsights.smoketestapp.LogbackWithExceptionServlet" )
146+ .hasProperty ("MethodName" , "doGet" )
147+ .hasProperty ("LineNumber" , "21" )));
155148 }
156-
157- SmokeTestExtension .assertParentChild (
158- rd , rdEnvelope , edEnvelope , "GET /Logback/testWithException" );
159149 }
160150
161151 @ Environment (TOMCAT_8_JAVA_8 )
0 commit comments