Skip to content

Commit 9197666

Browse files
committed
Capture & Replay Integration Test for UserService
Signed-off-by: Sven Strittmatter <sven.strittmatter@iteratec.com>
1 parent ec8892e commit 9197666

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package io.securecodebox.persistence.defectdojo.service;
2+
3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import io.securecodebox.persistence.defectdojo.config.Config;
5+
import io.securecodebox.persistence.defectdojo.model.User;
6+
import lombok.Getter;
7+
import org.junit.jupiter.api.Test;
8+
9+
import java.io.IOException;
10+
import java.net.URISyntaxException;
11+
import java.util.List;
12+
13+
import static com.github.tomakehurst.wiremock.client.WireMock.*;
14+
import static org.junit.jupiter.api.Assertions.*;
15+
import static org.hamcrest.MatcherAssert.assertThat;
16+
import static org.hamcrest.Matchers.*;
17+
18+
/**
19+
* Tests for {@link UserService}
20+
*/
21+
final class UserServiceTest extends WireMockBaseTestCase{
22+
private final UserService sut = new UserService(conf());
23+
24+
@Test
25+
void search() throws URISyntaxException, IOException {
26+
stubFor(
27+
get("/api/v2/users/?offset=0&limit=100")
28+
.willReturn(
29+
ok()
30+
.withBody(readResponseBodyFromFixture("io/securecodebox/persistence/defectdojo/service/fixture_UserService.json"))
31+
)
32+
);
33+
34+
final var result = sut.search();
35+
36+
assertAll(
37+
() -> assertThat(result, hasSize(3)),
38+
() -> assertThat(result, containsInAnyOrder(
39+
User.builder()
40+
.id(1)
41+
.username("admin")
42+
.firstName("Admin")
43+
.lastName("User")
44+
.build(),
45+
User.builder()
46+
.id(2)
47+
.username("JannikHollenbach")
48+
.firstName("Jannik")
49+
.lastName("Hollenbach")
50+
.build(),
51+
User.builder()
52+
.id(3)
53+
.username("SvenStrittmatter")
54+
.firstName("Sven")
55+
.lastName("Strittmatter")
56+
.build()
57+
))
58+
);
59+
}
60+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"count": 7,
3+
"next": null,
4+
"previous": null,
5+
"results": [
6+
{
7+
"id": 1,
8+
"username": "admin",
9+
"first_name": "Admin",
10+
"last_name": "User",
11+
"email": "admin@defectdojo.local",
12+
"last_login": "2024-03-01T14:53:58.920659Z",
13+
"is_active": true,
14+
"is_superuser": true,
15+
"configuration_permissions": []
16+
},
17+
{
18+
"id": 2,
19+
"username": "JannikHollenbach",
20+
"first_name": "Jannik",
21+
"last_name": "Hollenbach",
22+
"email": "jannik.hollenbach@owasp.org",
23+
"last_login": "2024-03-01T15:02:06.007669Z",
24+
"is_active": true,
25+
"is_superuser": true,
26+
"configuration_permissions": []
27+
},
28+
{
29+
"id": 3,
30+
"username": "SvenStrittmatter",
31+
"first_name": "Sven",
32+
"last_name": "Strittmatter",
33+
"email": "sven.strittmatter@owasp.org",
34+
"last_login": null,
35+
"is_active": true,
36+
"is_superuser": true,
37+
"configuration_permissions": []
38+
}
39+
]
40+
}

0 commit comments

Comments
 (0)