Skip to content

Commit 5a2bee6

Browse files
authored
Merge pull request #32 from Visual-Regression-Tracker/31-dependency-fix
slf4j-mock set as implementation dependency
2 parents 1c89da7 + f57a7d9 commit 5a2bee6

File tree

2 files changed

+85
-79
lines changed

2 files changed

+85
-79
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
group 'io.visual-regression-tracker.sdk-java'
2-
version '4.3.0'
2+
version '4.3.1'
33

44
apply plugin: 'java'
55
apply plugin: 'jacoco'
@@ -27,10 +27,10 @@ buildscript {
2727
dependencies {
2828
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
2929
implementation 'com.google.code.gson:gson:2.8.6'
30-
implementation group: 'org.simplify4u', name: 'slf4j-mock', version: '1.0.2'
30+
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
3131
testImplementation group: 'org.testng', name: 'testng', version: '7.1.0'
3232
testImplementation 'commons-io:commons-io:2.7'
33-
testImplementation 'org.mockito:mockito-core:3.4.6'
33+
testImplementation 'org.mockito:mockito-core:3.5.13'
3434
testImplementation "com.squareup.okhttp3:mockwebserver:4.8.1"
3535
}
3636

src/test/java/io/visual_regression_tracker/sdk_java/VisualRegressionTrackerTest.java

Lines changed: 82 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package io.visual_regression_tracker.sdk_java;
22

3+
import ch.qos.logback.classic.Level;
4+
import ch.qos.logback.classic.Logger;
5+
import ch.qos.logback.classic.spi.ILoggingEvent;
6+
import ch.qos.logback.core.read.ListAppender;
37
import com.google.gson.Gson;
48
import io.visual_regression_tracker.sdk_java.request.BuildRequest;
59
import io.visual_regression_tracker.sdk_java.request.TestRunRequest;
@@ -13,9 +17,7 @@
1317
import okhttp3.mockwebserver.MockResponse;
1418
import okhttp3.mockwebserver.MockWebServer;
1519
import okhttp3.mockwebserver.RecordedRequest;
16-
import org.mockito.Mockito;
17-
import org.simplify4u.sjf4jmock.LoggerMock;
18-
import org.slf4j.Logger;
20+
import org.slf4j.LoggerFactory;
1921
import org.testng.annotations.AfterMethod;
2022
import org.testng.annotations.BeforeMethod;
2123
import org.testng.annotations.DataProvider;
@@ -59,8 +61,6 @@ public class VisualRegressionTrackerTest {
5961
@SneakyThrows
6062
@BeforeMethod
6163
public void setup() {
62-
LoggerMock.clearInvocations();
63-
6464
server = new MockWebServer();
6565
server.start();
6666

@@ -81,16 +81,16 @@ public void tearDown() {
8181
@Test
8282
public void shouldStartBuild() throws IOException, InterruptedException {
8383
BuildRequest buildRequest = BuildRequest.builder()
84-
.branchName(this.config.getBranchName())
85-
.project(this.config.getProject())
86-
.build();
84+
.branchName(this.config.getBranchName())
85+
.project(this.config.getProject())
86+
.build();
8787
BuildResponse buildResponse = BuildResponse.builder()
88-
.id(BUILD_ID)
89-
.projectId(PROJECT_ID)
90-
.build();
88+
.id(BUILD_ID)
89+
.projectId(PROJECT_ID)
90+
.build();
9191
server.enqueue(new MockResponse()
92-
.setResponseCode(200)
93-
.setBody(gson.toJson(buildResponse)));
92+
.setResponseCode(200)
93+
.setBody(gson.toJson(buildResponse)));
9494

9595
vrt.start();
9696

@@ -106,11 +106,11 @@ public void shouldStopBuild() throws IOException, InterruptedException {
106106
vrt.buildId = BUILD_ID;
107107
vrt.projectId = PROJECT_ID;
108108
BuildResponse buildResponse = BuildResponse.builder()
109-
.id(BUILD_ID)
110-
.build();
109+
.id(BUILD_ID)
110+
.build();
111111
server.enqueue(new MockResponse()
112-
.setResponseCode(200)
113-
.setBody(gson.toJson(buildResponse)));
112+
.setResponseCode(200)
113+
.setBody(gson.toJson(buildResponse)));
114114

115115
vrt.stop();
116116

@@ -129,27 +129,27 @@ public void stopShouldThrowExceptionIfNotStarted() throws IOException {
129129
@Test
130130
public void shouldSubmitTestRun() throws IOException, InterruptedException {
131131
TestRunOptions testRunOptions = TestRunOptions.builder()
132-
.device("Device")
133-
.os("OS")
134-
.browser("Browser")
135-
.viewport("Viewport")
136-
.diffTollerancePercent(0.5f)
137-
.build();
132+
.device("Device")
133+
.os("OS")
134+
.browser("Browser")
135+
.viewport("Viewport")
136+
.diffTollerancePercent(0.5f)
137+
.build();
138138
TestRunRequest testRunRequest = TestRunRequest.builder()
139-
.projectId(PROJECT_ID)
140-
.branchName(config.getBranchName())
141-
.buildId(BUILD_ID)
142-
.name(NAME)
143-
.imageBase64(IMAGE_BASE_64)
144-
.os(testRunOptions.getOs())
145-
.browser(testRunOptions.getBrowser())
146-
.viewport(testRunOptions.getViewport())
147-
.device(testRunOptions.getDevice())
148-
.diffTollerancePercent(testRunOptions.getDiffTollerancePercent())
149-
.build();
139+
.projectId(PROJECT_ID)
140+
.branchName(config.getBranchName())
141+
.buildId(BUILD_ID)
142+
.name(NAME)
143+
.imageBase64(IMAGE_BASE_64)
144+
.os(testRunOptions.getOs())
145+
.browser(testRunOptions.getBrowser())
146+
.viewport(testRunOptions.getViewport())
147+
.device(testRunOptions.getDevice())
148+
.diffTollerancePercent(testRunOptions.getDiffTollerancePercent())
149+
.build();
150150
TestRunResponse testRunResponse = TestRunResponse.builder()
151-
.status(TestRunStatus.UNRESOLVED)
152-
.build();
151+
.status(TestRunStatus.UNRESOLVED)
152+
.build();
153153
server.enqueue(new MockResponse().setBody(gson.toJson(testRunResponse)));
154154
vrt.buildId = BUILD_ID;
155155
vrt.projectId = PROJECT_ID;
@@ -173,24 +173,24 @@ public void submitTestRunShouldThrowIfNotStarted() throws IOException {
173173

174174
@DataProvider(name = "trackErrorCases")
175175
public Object[][] trackErrorCases() {
176-
return new Object[][] {
176+
return new Object[][]{
177177
{
178178
TestRunResponse.builder()
179-
.url("https://someurl.com/test/123123")
180-
.imageName("imageName")
181-
.baselineName("baselineName")
182-
.diffName("diffName")
183-
.status(TestRunStatus.UNRESOLVED)
179+
.url("https://someurl.com/test/123123")
180+
.imageName("imageName")
181+
.baselineName("baselineName")
182+
.diffName("diffName")
183+
.status(TestRunStatus.UNRESOLVED)
184184
.build(),
185185
"Difference found: https://someurl.com/test/123123"
186186
},
187187
{
188188
TestRunResponse.builder()
189-
.url("https://someurl.com/test/123123")
190-
.imageName("imageName")
191-
.baselineName("baselineName")
192-
.diffName("diffName")
193-
.status(TestRunStatus.NEW)
189+
.url("https://someurl.com/test/123123")
190+
.imageName("imageName")
191+
.baselineName("baselineName")
192+
.diffName("diffName")
193+
.status(TestRunStatus.NEW)
194194
.build(),
195195
"No baseline: https://someurl.com/test/123123"
196196
}
@@ -210,33 +210,39 @@ public void trackShouldThrowException(TestRunResponse testRunResponse, String ex
210210

211211
@Test(dataProvider = "trackErrorCases")
212212
public void trackShouldLogSevere(TestRunResponse testRunResponse, String expectedExceptionMessage) throws IOException {
213-
Logger loggerMock = LoggerMock.getLoggerMock(VisualRegressionTracker.class);
213+
Logger loggerMock = (Logger) LoggerFactory.getLogger(VisualRegressionTracker.class);
214+
// create and start a ListAppender
215+
ListAppender<ILoggingEvent> listAppender = new ListAppender<>();
216+
listAppender.start();
217+
// add the appender to the logger
218+
loggerMock.addAppender(listAppender);
214219
vrtMocked.configuration = new VisualRegressionTrackerConfig("", "", "", "", true);
215220
when(vrtMocked.submitTestRun(anyString(), anyString(), any())).thenReturn(testRunResponse);
216221

217222
doCallRealMethod().when(vrtMocked).track(anyString(), anyString(), any());
218223
vrtMocked.track("name", "image", TestRunOptions.builder().build());
219224

220-
verify(loggerMock).error(expectedExceptionMessage);
225+
assertThat(listAppender.list.get(1).getFormattedMessage(), is(expectedExceptionMessage));
226+
assertThat(listAppender.list.get(1).getLevel(), is(Level.ERROR));
221227
}
222228

223229
@DataProvider(name = "shouldTrackPassCases")
224230
public Object[][] shouldTrackPassCases() {
225-
return new Object[][] {
226-
{
227-
TestRunResponse.builder()
228-
.id("someId")
229-
.imageName("imageName")
230-
.baselineName("baselineName")
231-
.diffName("diffName")
232-
.diffPercent(12.32f)
233-
.diffTollerancePercent(0.01f)
234-
.pixelMisMatchCount(1)
235-
.merge(false)
236-
.url("https://someurl.com/test/123123")
237-
.status(TestRunStatus.OK)
238-
.build(),
239-
}
231+
return new Object[][]{
232+
{
233+
TestRunResponse.builder()
234+
.id("someId")
235+
.imageName("imageName")
236+
.baselineName("baselineName")
237+
.diffName("diffName")
238+
.diffPercent(12.32f)
239+
.diffTollerancePercent(0.01f)
240+
.pixelMisMatchCount(1)
241+
.merge(false)
242+
.url("https://someurl.com/test/123123")
243+
.status(TestRunStatus.OK)
244+
.build(),
245+
}
240246
};
241247
}
242248

@@ -264,7 +270,7 @@ public void shouldTrackOverload() throws IOException {
264270

265271
@DataProvider(name = "shouldReturnIsStartedCases")
266272
public Object[][] shouldReturnIsStartedCases() {
267-
return new Object[][] {
273+
return new Object[][]{
268274
{null, null, false},
269275
{null, "some", false},
270276
{"some", null, false},
@@ -285,22 +291,22 @@ public void shouldReturnIsStarted(String buildId, String projectId, boolean expe
285291
@Test
286292
public void handleRequestShouldThrowIfNotSuccess() throws IOException {
287293
String error = "{\n" +
288-
" \"statusCode\": 404,\n" +
289-
" \"message\": \"Project not found\"\n" +
290-
"}";
294+
" \"statusCode\": 404,\n" +
295+
" \"message\": \"Project not found\"\n" +
296+
"}";
291297
Request mockRequest = new Request.Builder()
292-
.url(config.getApiUrl())
293-
.build();
298+
.url(config.getApiUrl())
299+
.build();
294300

295301
String exceptionMessage = "";
296302
try {
297303
vrt.handleResponse(new Response.Builder()
298-
.request(mockRequest)
299-
.protocol(Protocol.HTTP_2)
300-
.code(404)
301-
.message("Not found")
302-
.body(ResponseBody.create(error, VisualRegressionTracker.JSON))
303-
.build(), Object.class);
304+
.request(mockRequest)
305+
.protocol(Protocol.HTTP_2)
306+
.code(404)
307+
.message("Not found")
308+
.body(ResponseBody.create(error, VisualRegressionTracker.JSON))
309+
.build(), Object.class);
304310
} catch (TestRunException ex) {
305311
exceptionMessage = ex.getMessage();
306312
}

0 commit comments

Comments
 (0)