Skip to content

Commit 9431bfa

Browse files
committed
AYS-441 | Filter and RequestBodyInstitution Has Been Merged and AdminRegistrationApplicationListPayload Class Has Been Created
1 parent 0925185 commit 9431bfa

File tree

6 files changed

+104
-167
lines changed

6 files changed

+104
-167
lines changed

src/test/java/org/ays/payload/Filter.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/test/java/org/ays/payload/RequestBodyInstitution.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/test/java/org/ays/registrationapplication/endpoints/AdminRegistrationApplicationEndpoints.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
import lombok.experimental.UtilityClass;
55
import org.ays.auth.payload.AdminRegistrationApplicationCompletePayload;
66
import org.ays.auth.payload.AdminRegistrationApplicationRejectPayload;
7-
import org.ays.common.model.payload.AysPageable;
87
import org.ays.common.model.payload.AysRestAssuredPayload;
98
import org.ays.common.util.AysRestAssured;
109
import org.ays.endpoints.Authorization;
11-
import org.ays.payload.Filter;
12-
import org.ays.payload.RequestBodyInstitution;
1310
import org.ays.registrationapplication.model.enums.AdminRegistrationApplicationStatus;
1411
import org.ays.registrationapplication.model.payload.AdminRegistrationApplicationCreatePayload;
12+
import org.ays.registrationapplication.model.payload.AdminRegistrationApplicationListPayload;
1513
import org.ays.utility.AysConfigurationProperty;
1614
import org.ays.utility.AysRandomUtil;
1715
import org.openqa.selenium.remote.http.HttpMethod;
@@ -21,7 +19,7 @@
2119
@UtilityClass
2220
public class AdminRegistrationApplicationEndpoints {
2321

24-
public static Response postRegistrationApplications(RequestBodyInstitution requestBodyInstitution) {
22+
public static Response postRegistrationApplications(AdminRegistrationApplicationListPayload requestBodyInstitution) {
2523

2624
AysRestAssuredPayload restAssuredRequest = AysRestAssuredPayload.builder()
2725
.httpMethod(HttpMethod.POST)
@@ -108,8 +106,11 @@ public static String generateApplicationID() {
108106
}
109107

110108
public static String generateApplicationIDForCompletedStatus() {
111-
RequestBodyInstitution requestBodyInstitution = RequestBodyInstitution.generateFilter(AysPageable.generateFirstPage(), Filter.generate(AdminRegistrationApplicationStatus.COMPLETED));
112-
Response response = postRegistrationApplications(requestBodyInstitution);
109+
AdminRegistrationApplicationListPayload.Filter filter = AdminRegistrationApplicationListPayload.Filter
110+
.generate(AdminRegistrationApplicationStatus.COMPLETED);
111+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
112+
.generate(filter);
113+
Response response = postRegistrationApplications(applicationListPayload);
113114
if (response.getStatusCode() == 200) {
114115
return response.then().extract().jsonPath().getString("response.content[0].id");
115116
} else {
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package org.ays.registrationapplication.model.payload;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import org.ays.common.model.payload.AysPageable;
6+
import org.ays.registrationapplication.model.enums.AdminRegistrationApplicationStatus;
7+
8+
import java.util.List;
9+
10+
@Getter
11+
@Setter
12+
public class AdminRegistrationApplicationListPayload {
13+
14+
private AysPageable pageable;
15+
private Filter filter;
16+
17+
public static AdminRegistrationApplicationListPayload generate() {
18+
AdminRegistrationApplicationListPayload payload = new AdminRegistrationApplicationListPayload();
19+
payload.setPageable(AysPageable.generateFirstPage());
20+
payload.setFilter(new Filter());
21+
return payload;
22+
}
23+
24+
public static AdminRegistrationApplicationListPayload generate(Filter filter) {
25+
AdminRegistrationApplicationListPayload payload = new AdminRegistrationApplicationListPayload();
26+
payload.setPageable(AysPageable.generateFirstPage());
27+
payload.setFilter(filter);
28+
return payload;
29+
}
30+
31+
@Getter
32+
@Setter
33+
public static class Filter {
34+
35+
private List<AdminRegistrationApplicationStatus> statuses;
36+
37+
public static Filter generate(AdminRegistrationApplicationStatus status) {
38+
Filter filter = new Filter();
39+
filter.setStatuses(List.of(status));
40+
return filter;
41+
}
42+
43+
}
44+
45+
}

src/test/java/org/ays/tests/institution/adminregistrationmanagementservice/PostAdminRegistrationApplicationsTest.java

Lines changed: 40 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -6,46 +6,27 @@
66
import io.qameta.allure.Story;
77
import io.restassured.response.Response;
88
import org.ays.common.model.payload.AysOrder;
9-
import org.ays.common.model.payload.AysPageable;
10-
import org.ays.payload.Filter;
11-
import org.ays.payload.RequestBodyInstitution;
129
import org.ays.registrationapplication.endpoints.AdminRegistrationApplicationEndpoints;
10+
import org.ays.registrationapplication.model.enums.AdminRegistrationApplicationStatus;
11+
import org.ays.registrationapplication.model.payload.AdminRegistrationApplicationListPayload;
1312
import org.ays.utility.AysResponseSpecs;
14-
import org.testng.annotations.BeforeMethod;
15-
import org.testng.annotations.DataProvider;
1613
import org.testng.annotations.Test;
1714

18-
import java.util.ArrayList;
1915
import java.util.List;
2016

2117
import static org.hamcrest.Matchers.containsString;
2218
import static org.hamcrest.Matchers.notNullValue;
2319
import static org.hamcrest.Matchers.nullValue;
2420

2521
public class PostAdminRegistrationApplicationsTest {
26-
RequestBodyInstitution requestBodyInstitution;
27-
AysPageable pageable;
28-
Filter filter;
29-
AysOrder orders;
30-
31-
@BeforeMethod(alwaysRun = true)
32-
public void setup() {
33-
requestBodyInstitution = new RequestBodyInstitution();
34-
pageable = new AysPageable();
35-
filter = new Filter();
36-
orders = new AysOrder();
37-
}
3822

3923
@Test(groups = {"Smoke", "Regression", "SuperAdmin"})
4024
@Story("As a super admin I want to list administrator registration applications with request to pagination")
4125
@Severity(SeverityLevel.NORMAL)
4226
public void postRegistrationApplicationsWithPagination() {
43-
pageable.setPage(1);
44-
pageable.setPageSize(10);
45-
requestBodyInstitution.setPageable(pageable);
46-
47-
48-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
27+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
28+
.generate();
29+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
4930
response.then()
5031
.spec(AysResponseSpecs.expectSuccessResponseSpec())
5132
.body("response.content", notNullValue())
@@ -56,12 +37,11 @@ public void postRegistrationApplicationsWithPagination() {
5637
@Story("As a super admin I want to get proper error message when I request to pagination with invalid data")
5738
@Severity(SeverityLevel.NORMAL)
5839
public void postRegistrationApplicationsWithPaginationNegative(int page, int pageSize) {
59-
pageable.setPage(page);
60-
pageable.setPageSize(pageSize);
61-
requestBodyInstitution.setPageable(pageable);
62-
63-
64-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
40+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
41+
.generate();
42+
applicationListPayload.getPageable().setPage(page);
43+
applicationListPayload.getPageable().setPageSize(pageSize);
44+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
6545
response.then()
6646
.spec(AysResponseSpecs.expectBadRequestResponseSpec())
6747
.body("subErrors[0].message", containsString("must be between 1 and 99999999"));
@@ -71,16 +51,10 @@ public void postRegistrationApplicationsWithPaginationNegative(int page, int pag
7151
@Story("As a super admin I want to list administrator registration applications with request to pagination and filter")
7252
@Severity(SeverityLevel.NORMAL)
7353
public void postRegistrationApplicationsWithPaginationAndFilter() {
74-
pageable.setPage(1);
75-
pageable.setPageSize(10);
76-
requestBodyInstitution.setPageable(pageable);
77-
78-
List<String> newStatuses = new ArrayList<>();
79-
newStatuses.add("WAITING");
80-
filter.setStatuses(newStatuses);
81-
requestBodyInstitution.setFilter(filter);
82-
83-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
54+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
55+
.generate();
56+
applicationListPayload.getFilter().setStatuses(List.of(AdminRegistrationApplicationStatus.WAITING));
57+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
8458
response.then()
8559
.spec(AysResponseSpecs.expectSuccessResponseSpec())
8660
.body("response.content", notNullValue())
@@ -93,14 +67,10 @@ public void postRegistrationApplicationsWithPaginationAndFilter() {
9367
@Severity(SeverityLevel.NORMAL)
9468
@Description("Pagination and filter with invalid statuses value")
9569
public void postRegistrationApplicationsWithPaginationAndFilterNegative() {
96-
pageable.setPage(1);
97-
pageable.setPageSize(10);
98-
requestBodyInstitution.setPageable(pageable);
99-
List<String> statuses = new ArrayList<>();
100-
statuses.add("WAIT");
101-
filter.setStatuses(statuses);
102-
requestBodyInstitution.setFilter(filter);
103-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
70+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
71+
.generate();
72+
applicationListPayload.getFilter().setStatuses(List.of(AdminRegistrationApplicationStatus.WAITING));
73+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
10474
response.then()
10575
.spec(AysResponseSpecs.expectBadRequestResponseSpec());
10676
}
@@ -110,17 +80,11 @@ public void postRegistrationApplicationsWithPaginationAndFilterNegative() {
11080
@Severity(SeverityLevel.NORMAL)
11181
@Description("Pagination and sort with Authorization")
11282
public void postRegistrationApplicationsWithPaginationAndSort() {
113-
pageable.setPage(1);
114-
pageable.setPageSize(10);
115-
requestBodyInstitution.setPageable(pageable);
116-
117-
orders.setProperty("createdAt");
118-
orders.setDirection("ASC");
119-
List<AysOrder> newOrders = new ArrayList<>();
120-
newOrders.add(orders);
121-
requestBodyInstitution.setOrders(newOrders);
122-
123-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
83+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
84+
.generate();
85+
List<AysOrder> orders = AysOrder.generate("createdAt", "ASC");
86+
applicationListPayload.getPageable().setOrders(orders);
87+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
12488
response.then()
12589
.spec(AysResponseSpecs.expectSuccessResponseSpec())
12690
.body("response.content", notNullValue())
@@ -133,17 +97,11 @@ public void postRegistrationApplicationsWithPaginationAndSort() {
13397
@Severity(SeverityLevel.NORMAL)
13498
@Description("Pagination and invalid sort value with Authorization")
13599
public void postRegistrationApplicationsWithPaginationAndInvalidSort() {
136-
pageable.setPage(1);
137-
pageable.setPageSize(10);
138-
requestBodyInstitution.setPageable(pageable);
139-
140-
orders.setProperty("created");
141-
orders.setDirection("ASC");
142-
List<AysOrder> newOrders = new ArrayList<>();
143-
newOrders.add(orders);
144-
requestBodyInstitution.setOrders(newOrders);
145-
146-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
100+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
101+
.generate();
102+
List<AysOrder> orders = AysOrder.generate("createdAt", "ASC");
103+
applicationListPayload.getPageable().setOrders(orders);
104+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
147105
response.then()
148106
.spec(AysResponseSpecs.expectBadRequestResponseSpec());
149107
}
@@ -153,22 +111,12 @@ public void postRegistrationApplicationsWithPaginationAndInvalidSort() {
153111
@Severity(SeverityLevel.NORMAL)
154112
@Description("Pagination,sort and filter with Authorization")
155113
public void postRegistrationApplicationsWithPaginationSortFilter() {
156-
pageable.setPage(1);
157-
pageable.setPageSize(10);
158-
requestBodyInstitution.setPageable(pageable);
159-
160-
List<String> statuses = new ArrayList<>();
161-
statuses.add("WAITING");
162-
filter.setStatuses(statuses);
163-
requestBodyInstitution.setFilter(filter);
164-
165-
orders.setProperty("createdAt");
166-
orders.setDirection("ASC");
167-
List<AysOrder> newOrders = new ArrayList<>();
168-
newOrders.add(orders);
169-
requestBodyInstitution.setOrders(newOrders);
170-
171-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
114+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
115+
.generate();
116+
applicationListPayload.getFilter().setStatuses(List.of(AdminRegistrationApplicationStatus.WAITING));
117+
List<AysOrder> orders = AysOrder.generate("createdAt", "ASC");
118+
applicationListPayload.getPageable().setOrders(orders);
119+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
172120
response.then()
173121
.spec(AysResponseSpecs.expectSuccessResponseSpec())
174122
.body("response.content", notNullValue())
@@ -181,36 +129,14 @@ public void postRegistrationApplicationsWithPaginationSortFilter() {
181129
@Severity(SeverityLevel.NORMAL)
182130
@Description("Pagination,invalid sort and invalid filter with Authorization")
183131
public void postRegistrationApplicationsWithPaginationInvalidSortInvalidFilter() {
184-
pageable.setPage(1);
185-
pageable.setPageSize(10);
186-
requestBodyInstitution.setPageable(pageable);
187-
188-
List<String> statuses = new ArrayList<>();
189-
statuses.add("WAIT");
190-
filter.setStatuses(statuses);
191-
requestBodyInstitution.setFilter(filter);
192-
193-
orders.setProperty("");
194-
orders.setDirection("ASC");
195-
List<AysOrder> newOrders = new ArrayList<>();
196-
newOrders.add(orders);
197-
requestBodyInstitution.setOrders(newOrders);
198-
199-
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(requestBodyInstitution);
132+
AdminRegistrationApplicationListPayload applicationListPayload = AdminRegistrationApplicationListPayload
133+
.generate();
134+
applicationListPayload.getFilter().setStatuses(List.of(AdminRegistrationApplicationStatus.WAITING));
135+
List<AysOrder> orders = AysOrder.generate("", "ASC");
136+
applicationListPayload.getPageable().setOrders(orders);
137+
Response response = AdminRegistrationApplicationEndpoints.postRegistrationApplications(applicationListPayload);
200138
response.then()
201139
.spec(AysResponseSpecs.expectBadRequestResponseSpec());
202140
}
203141

204-
205-
@DataProvider(name = "paginationScenarios") //ARMS_03, ARMS_04, ARMS_05
206-
public Object[][] paginationScenarios() {
207-
return new Object[][]{
208-
{0, 10},
209-
{1, 0},
210-
{-1, 10},
211-
{1, -1},
212-
{-1, -1}
213-
};
214-
215-
}
216142
}

src/test/java/org/ays/utility/DataProvider.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,4 +582,16 @@ public Object[][] invalidRoleId() {
582582
};
583583
}
584584

585+
@org.testng.annotations.DataProvider(name = "paginationScenarios")
586+
public Object[][] paginationScenarios() {
587+
return new Object[][]{
588+
{0, 10},
589+
{1, 0},
590+
{-1, 10},
591+
{1, -1},
592+
{-1, -1}
593+
};
594+
595+
}
596+
585597
}

0 commit comments

Comments
 (0)