Skip to content

Commit c02c51e

Browse files
committed
DMP-5252-ARM-5-2-Upgrade
Added tests
1 parent b1b38e5 commit c02c51e

32 files changed

+3517
-26
lines changed

src/integrationTest/java/uk/gov/hmcts/darts/arm/client/ArmRpoClientIntTest.java

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package uk.gov.hmcts.darts.arm.client;
22

3-
import com.fasterxml.jackson.databind.ObjectMapper;
43
import com.github.tomakehurst.wiremock.client.WireMock;
54
import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder;
65
import lombok.AllArgsConstructor;
@@ -56,9 +55,6 @@ class ArmRpoClientIntTest extends IntegrationBaseWithWiremock {
5655
@Autowired
5756
private ArmRpoClient armRpoClient;
5857

59-
@Autowired
60-
private ObjectMapper objectMapper;
61-
6258
private static Stream<Arguments> genericArmRpoClientTestArguments() {
6359
return Stream.of(
6460
Arguments.of("getRecordManagementMatter", (BiFunction<ArmRpoClient, String, ClientCallable>) (armRpoClient, bearerAuth) -> {
@@ -112,28 +108,29 @@ private static Stream<Arguments> genericArmRpoClientTestArguments() {
112108
.build();
113109
return new ClientCallable(request, armRpoClient.getProductionOutputFiles(bearerAuth, request));
114110
}),
115-
Arguments.of("CreateExportBasedOnSearchResultsTable", (BiFunction<ArmRpoClient, String, ClientCallable>) (armRpoClient, bearerAuth) -> {
116-
CreateExportBasedOnSearchResultsTableRequest request = CreateExportBasedOnSearchResultsTableRequest.builder()
117-
.core("some-core")
118-
.formFields("some-form-fields")
119-
.searchId("some-search-id")
120-
.searchitemsCount(1)
121-
.headerColumns(
122-
List.of(CreateExportBasedOnSearchResultsTableRequest.HeaderColumn.builder()
123-
.masterIndexField("some-master-index-field")
124-
.displayName("some-display-name")
125-
.propertyName("some-property-name")
126-
.propertyType("some-property-type")
127-
.isMasked(true)
128-
.build())
129-
)
130-
.productionName("some-production-name")
131-
.storageAccountId("some-storage-account-id")
132-
.onlyForCurrentUser(Boolean.FALSE)
133-
.exportType(32)
134-
.build();
135-
return new ClientCallable(request, armRpoClient.createExportBasedOnSearchResultsTable(bearerAuth, request));
136-
}),
111+
Arguments.of("CreateExportBasedOnSearchResultsTable",
112+
(BiFunction<ArmRpoClient, String, ClientCallable>) (armRpoClient, bearerAuth) -> {
113+
CreateExportBasedOnSearchResultsTableRequest request = CreateExportBasedOnSearchResultsTableRequest.builder()
114+
.core("some-core")
115+
.formFields("some-form-fields")
116+
.searchId("some-search-id")
117+
.searchitemsCount(1)
118+
.headerColumns(
119+
List.of(CreateExportBasedOnSearchResultsTableRequest.HeaderColumn.builder()
120+
.masterIndexField("some-master-index-field")
121+
.displayName("some-display-name")
122+
.propertyName("some-property-name")
123+
.propertyType("some-property-type")
124+
.isMasked(true)
125+
.build())
126+
)
127+
.productionName("some-production-name")
128+
.storageAccountId("some-storage-account-id")
129+
.onlyForCurrentUser(Boolean.FALSE)
130+
.exportType(32)
131+
.build();
132+
return new ClientCallable(request, armRpoClient.createExportBasedOnSearchResultsTable(bearerAuth, request));
133+
}),
137134
Arguments.of("removeProduction", (BiFunction<ArmRpoClient, String, ClientCallable>) (armRpoClient, bearerAuth) -> {
138135
RemoveProductionRequest request = RemoveProductionRequest.builder()
139136
.productionId("some-production-id")

src/integrationTest/java/uk/gov/hmcts/darts/arm/client/version/fivetwo/ArmApiBaseClientIntTest.java

Lines changed: 387 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package uk.gov.hmcts.darts.arm.client.version.fivetwo;
2+
3+
import com.github.tomakehurst.wiremock.client.WireMock;
4+
import feign.FeignException;
5+
import org.junit.jupiter.api.Test;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.test.context.TestPropertySource;
8+
import uk.gov.hmcts.darts.arm.client.model.ArmTokenRequest;
9+
import uk.gov.hmcts.darts.arm.client.model.ArmTokenResponse;
10+
import uk.gov.hmcts.darts.testutils.IntegrationBaseWithWiremock;
11+
12+
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
13+
import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
14+
import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor;
15+
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
16+
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
17+
import static org.junit.jupiter.api.Assertions.assertEquals;
18+
import static org.junit.jupiter.api.Assertions.assertThrows;
19+
20+
@TestPropertySource(properties = {
21+
"darts.storage.arm-api.version5-2.authentication.auth-base-url=http://localhost:${wiremock.server.port}"
22+
})
23+
class ArmAuthClientIntTest extends IntegrationBaseWithWiremock {
24+
@Autowired
25+
private ArmAuthClient armAuthClient;
26+
27+
private static final String TOKEN_PATH = "/account/token";
28+
29+
@Test
30+
void getTokenShouldSucceedIfServerReturns200Success() {
31+
// Given
32+
stubFor(
33+
WireMock.post(urlEqualTo(TOKEN_PATH))
34+
.willReturn(
35+
aResponse()
36+
.withHeader("Content-type", "application/json")
37+
.withBody(
38+
"""
39+
{
40+
"access_token": "some-token",
41+
"token_type": "some-token-type",
42+
"expires_in": "some-expiry"
43+
}
44+
"""
45+
)
46+
.withStatus(200)));
47+
48+
ArmTokenRequest armTokenRequest = createTokenRequest();
49+
50+
// When
51+
ArmTokenResponse token = armAuthClient.getToken(armTokenRequest);
52+
53+
// Then
54+
wireMockServer.verify(postRequestedFor(urlEqualTo(TOKEN_PATH))
55+
.withRequestBody(equalTo("{\"username\":\"some-username\",\"password\":\"some-password\"}")));
56+
57+
assertEquals("some-token", token.getAccessToken());
58+
assertEquals("some-token-type", token.getTokenType());
59+
assertEquals("some-expiry", token.getExpiresIn());
60+
}
61+
62+
@Test
63+
@SuppressWarnings("PMD.DoNotUseThreads")
64+
void getTokenShouldThrowExceptionIfServerReturns403Forbidden() throws InterruptedException {
65+
// Given
66+
stubFor(
67+
WireMock.post(urlEqualTo(TOKEN_PATH))
68+
.willReturn(
69+
aResponse()
70+
.withStatus(403)));
71+
72+
ArmTokenRequest armTokenRequest = createTokenRequest();
73+
Thread.sleep(2000);
74+
// When
75+
FeignException exception = assertThrows(FeignException.class, () -> armAuthClient.getToken(armTokenRequest));
76+
77+
// Then
78+
assertEquals(
79+
"[403 Forbidden] during [POST] to [http://localhost:" + wiremockPort + "/account/token] [ArmAuthClient#getToken(ArmTokenRequest)]: []",
80+
exception.getMessage()
81+
);
82+
}
83+
84+
private static ArmTokenRequest createTokenRequest() {
85+
return ArmTokenRequest.builder()
86+
.username("some-username")
87+
.password("some-password")
88+
.build();
89+
}
90+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"status": 200,
3+
"demoMode": false,
4+
"isError": false,
5+
"responseStatus": 0
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"status": 200,
3+
"demoMode": false,
4+
"isError": false,
5+
"responseStatus": 0,
6+
"isValid": false
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"status": 200,
3+
"demoMode": false,
4+
"isError": false,
5+
"responseStatus": 0,
6+
"searchId": "8271f101-8c14-4c41-8865-edc5d8baed99"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a1,b2,c3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"itemsCount": 1,
3+
"status": 200,
4+
"demoMode": false,
5+
"isError": false,
6+
"responseStatus": 0,
7+
"productions": [
8+
{
9+
"productionID": "1b6a29d9-a72e-420b-8d69-b8acbeed806a",
10+
"name": "DARTS_RPO_2024-08-13_CSV",
11+
"startProductionTime": "2024-08-13T16:50:15.4091127+00:00",
12+
"endProductionTime": "2024-08-13T16:50:21.1592576+00:00"
13+
}
14+
]
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"itemsCount": 1,
3+
"status": 200,
4+
"demoMode": false,
5+
"isError": false,
6+
"responseStatus": 0,
7+
"searches": [
8+
{
9+
"search": {
10+
"searchID": "8271f101-8c14-4c41-8865-edc5d8baed99",
11+
"name": "DARTS_RPO_2024-08-13",
12+
"totalCount": 5,
13+
"isSaved": true
14+
}
15+
}
16+
]
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"itemsCount": 1,
3+
"status": 200,
4+
"demoMode": false,
5+
"isError": false,
6+
"responseStatus": 0,
7+
"indexes": [
8+
{
9+
"index": {
10+
"indexID": "c19454c6-c378-43c1-ae59-d0d013e30915"
11+
}
12+
}
13+
]
14+
}

0 commit comments

Comments
 (0)