@@ -46,30 +46,30 @@ public class VisualRegressionTrackerTest {
46
46
private final static String CI_BUILD_ID = "123456789" ;
47
47
private final static String NAME = "Test name" ;
48
48
private final static String IMAGE_BASE_64 = "image" ;
49
- private final static int HTTP_TIMOUT = 1 ;
49
+ private final static int HTTP_TIMEOUT = 1 ;
50
50
51
51
private final Gson gson = new Gson ();
52
52
53
53
private VisualRegressionTrackerConfig config ;
54
- private MockWebServer server ;
54
+ private MockWebServer mockWebServer ;
55
55
private VisualRegressionTracker vrt ;
56
56
private VisualRegressionTracker vrtMocked ;
57
57
58
58
@ SneakyThrows
59
59
@ BeforeMethod
60
60
public void setup () {
61
- server = new MockWebServer ();
62
- server .start ();
61
+ mockWebServer = new MockWebServer ();
62
+ mockWebServer .start ();
63
63
64
64
// target to mock server
65
65
config = new VisualRegressionTrackerConfig (
66
- server .url ("/" ).toString (),
66
+ mockWebServer .url ("/" ).toString (),
67
67
"733c148e-ef70-4e6d-9ae5-ab22263697cc" ,
68
68
"XHGDZDFD3GMJDNM87JKEMP0JS1G5" ,
69
69
"develop" ,
70
70
false ,
71
71
CI_BUILD_ID ,
72
- HTTP_TIMOUT );
72
+ HTTP_TIMEOUT );
73
73
vrt = new VisualRegressionTracker (config );
74
74
vrtMocked = mock (VisualRegressionTracker .class );
75
75
vrtMocked .paths = new PathProvider ("baseApiUrl" );
@@ -78,7 +78,7 @@ public void setup() {
78
78
@ SneakyThrows
79
79
@ AfterMethod
80
80
public void tearDown () {
81
- server .shutdown ();
81
+ mockWebServer .shutdown ();
82
82
reset (vrtMocked );
83
83
}
84
84
@@ -94,13 +94,13 @@ public void shouldStartBuild() throws IOException, InterruptedException {
94
94
.projectId (PROJECT_ID )
95
95
.ciBuildId (CI_BUILD_ID )
96
96
.build ();
97
- server .enqueue (new MockResponse ()
97
+ mockWebServer .enqueue (new MockResponse ()
98
98
.setResponseCode (200 )
99
99
.setBody (gson .toJson (buildResponse )));
100
100
101
101
BuildResponse result = vrt .start ();
102
102
103
- RecordedRequest recordedRequest = server .takeRequest ();
103
+ RecordedRequest recordedRequest = mockWebServer .takeRequest ();
104
104
assertThat (recordedRequest .getHeader (VisualRegressionTracker .API_KEY_HEADER ), is (config .getApiKey ()));
105
105
assertThat (recordedRequest .getBody ().readUtf8 (), is (gson .toJson (buildRequest )));
106
106
assertThat (vrt .buildId , is (BUILD_ID ));
@@ -116,17 +116,25 @@ public void shouldStopBuild() throws IOException, InterruptedException {
116
116
vrt .projectId = PROJECT_ID ;
117
117
BuildResponse buildResponse = BuildResponse .builder ()
118
118
.id (BUILD_ID )
119
+ .passedCount (1 )
120
+ .unresolvedCount (2 )
121
+ .isRunning (false )
122
+ .status ("unresolved" )
119
123
.build ();
120
- server .enqueue (new MockResponse ()
124
+ mockWebServer .enqueue (new MockResponse ()
121
125
.setResponseCode (200 )
122
126
.setBody (gson .toJson (buildResponse )));
123
127
124
- vrt .stop ();
128
+ BuildResponse actualBuildResponse = vrt .stop ();
125
129
126
- RecordedRequest recordedRequest = server .takeRequest ();
130
+ RecordedRequest recordedRequest = mockWebServer .takeRequest ();
127
131
assertThat (recordedRequest .getMethod (), is ("PATCH" ));
128
132
assertThat (recordedRequest .getHeader (VisualRegressionTracker .API_KEY_HEADER ), is (config .getApiKey ()));
129
133
assertThat (Objects .requireNonNull (recordedRequest .getRequestUrl ()).encodedPath (), containsString (BUILD_ID ));
134
+ assertThat (actualBuildResponse .isRunning (), is (false ));
135
+ assertThat (actualBuildResponse .getStatus (), containsString ("unresolved" ));
136
+ assertThat (actualBuildResponse .getPassedCount (), is (1 ));
137
+ assertThat (actualBuildResponse .getUnresolvedCount (), is (2 ));
130
138
}
131
139
132
140
@ Test (expectedExceptions = TestRunException .class ,
@@ -166,13 +174,13 @@ public void shouldSubmitTestRun() throws IOException, InterruptedException {
166
174
TestRunResponse testRunResponse = TestRunResponse .builder ()
167
175
.status (TestRunStatus .UNRESOLVED )
168
176
.build ();
169
- server .enqueue (new MockResponse ().setBody (gson .toJson (testRunResponse )));
177
+ mockWebServer .enqueue (new MockResponse ().setBody (gson .toJson (testRunResponse )));
170
178
vrt .buildId = BUILD_ID ;
171
179
vrt .projectId = PROJECT_ID ;
172
180
173
181
TestRunResponse result = vrt .submitTestRun (NAME , IMAGE_BASE_64 , testRunOptions );
174
182
175
- RecordedRequest request = server .takeRequest ();
183
+ RecordedRequest request = mockWebServer .takeRequest ();
176
184
assertThat (request .getHeader (VisualRegressionTracker .API_KEY_HEADER ), is (config .getApiKey ()));
177
185
assertThat (request .getBody ().readUtf8 (), is (gson .toJson (testRunRequest )));
178
186
assertThat (gson .toJson (result ), is (gson .toJson (testRunResponse )));
@@ -348,13 +356,13 @@ public void httpTimeoutWorks() throws IOException, InterruptedException {
348
356
.build ();
349
357
String json = gson .toJson (buildResponse );
350
358
//body size is 97 bytes, http timeout is 1s, set body read delay to 0.5s, wait that vrt get all values correctly
351
- server .enqueue (new MockResponse ().throttleBody (json .length (), HTTP_TIMOUT * 1000 - 500 , TimeUnit .MILLISECONDS )
359
+ mockWebServer .enqueue (new MockResponse ().throttleBody (json .length (), HTTP_TIMEOUT * 1000 - 500 , TimeUnit .MILLISECONDS )
352
360
.setResponseCode (200 )
353
361
.setBody (json ));
354
362
355
363
vrt .start ();
356
364
357
- server .takeRequest ();
365
+ mockWebServer .takeRequest ();
358
366
359
367
assertThat (vrt .buildId , is (BUILD_ID ));
360
368
assertThat (vrt .projectId , is (PROJECT_ID ));
@@ -374,13 +382,14 @@ public void httpTimeoutElapsed() throws IOException, InterruptedException {
374
382
.ciBuildId (CI_BUILD_ID )
375
383
.build ();
376
384
String json = gson .toJson (buildResponse );
377
- //body size is 97 bytes, http timeout is 1s, set body read delay to 1s, wait for error
378
- server .enqueue (new MockResponse ().throttleBody (json .length (), HTTP_TIMOUT , TimeUnit .SECONDS )
385
+ //Send part of the body after every timeout, http timeout is 1s, set body read delay to 1s, wait for error
386
+ //For some reason double HTTP_TIMEOUT does not throw exception.
387
+ mockWebServer .enqueue (new MockResponse ().throttleBody ((json .length () / 2 ), HTTP_TIMEOUT , TimeUnit .SECONDS )
379
388
.setResponseCode (200 )
380
389
.setBody (json ));
381
390
382
391
vrt .start ();
383
392
384
- server .takeRequest ();
393
+ mockWebServer .takeRequest ();
385
394
}
386
395
}
0 commit comments