Skip to content

Commit 8770f64

Browse files
committed
AYS-368 | Role filtering added with filtering using new user
1 parent cfe76ce commit 8770f64

File tree

12 files changed

+206
-5
lines changed

12 files changed

+206
-5
lines changed

.github/workflows/application-health-checker.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ jobs:
6464
- name: Replace institution_one.admin_user_two.password in configuration.properties # Step to replace the placeholder institution_one.admin_user_one.password in configuration.properties
6565
run: sed 's|'{INSTITUTION_ONE_ADMIN_USER_TWO_PASSWORD}'|'${{ secrets.AYS_INSTITUTION_ONE_ADMIN_USER_TWO_PASSWORD }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
6666

67+
- name: Replace institution.test_admin.email_address in configuration.properties # Step to replace the placeholder institution.test_admin.email_address in configuration.properties
68+
run: sed 's|'{INSTITUTION_TEST_ADMIN_EMAIL_ADDRESS}'|'${{ secrets.AYS_INSTITUTION_TEST_ADMIN_EMAIL_ADDRESS }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
69+
70+
- name: Replace institution.test_admin.password in configuration.properties # Step to replace the placeholder institution.test_admin.password in configuration.properties
71+
run: sed 's|'{INSTITUTION_TEST_ADMIN_PASSWORD}'|'${{ secrets.AYS_INSTITUTION_TEST_ADMIN_PASSWORD }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
72+
6773
- name: Replace landing.user_one.emailAddress in configuration.properties # Step to replace the placeholder institution_one.admin_user_one.username in configuration.properties
6874
run: sed 's|'{LANDING_USER_ONE_EMAIL_ADDRESS}'|'${{ secrets.AYS_LANDING_USER_ONE_EMAIL_ADDRESS }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
6975

.github/workflows/pull-request-checker.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ jobs:
7070
- name: Replace institution_one.admin_user_two.password in configuration.properties # Step to replace the placeholder institution_one.admin_user_one.password in configuration.properties
7171
run: sed 's|'{INSTITUTION_ONE_ADMIN_USER_TWO_PASSWORD}'|'${{ secrets.AYS_INSTITUTION_ONE_ADMIN_USER_TWO_PASSWORD }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
7272

73+
- name: Replace institution.test_admin.email_address in configuration.properties # Step to replace the placeholder institution.test_admin.email_address in configuration.properties
74+
run: sed 's|'{INSTITUTION_TEST_ADMIN_EMAIL_ADDRESS}'|'${{ secrets.AYS_INSTITUTION_TEST_ADMIN_EMAIL_ADDRESS }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
75+
76+
- name: Replace institution.test_admin.password in configuration.properties # Step to replace the placeholder institution.test_admin.password in configuration.properties
77+
run: sed 's|'{INSTITUTION_TEST_ADMIN_PASSWORD}'|'${{ secrets.AYS_INSTITUTION_TEST_ADMIN_PASSWORD }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
78+
7379
- name: Replace landing.user_one.email_address in configuration.properties # Step to replace the placeholder institution_one.admin_user_one.username in configuration.properties
7480
run: sed 's|'{LANDING_USER_ONE_EMAIL_ADDRESS}'|'${{ secrets.AYS_LANDING_USER_ONE_EMAIL_ADDRESS }}'|g' configuration.properties >> temp_configuration.properties ; rm configuration.properties ; mv temp_configuration.properties configuration.properties
7581

sample_configuration.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ institution_one.admin_user_one.email_address={INSTITUTION_ONE_ADMIN_USER_ONE_EMA
99
institution_one.admin_user_one.password={INSTITUTION_ONE_ADMIN_USER_ONE_PASSWORD}
1010
institution_one.admin_user_two.email_address={INSTITUTION_ONE_ADMIN_USER_TWO_EMAIL_ADDRESS}
1111
institution_one.admin_user_two.password={INSTITUTION_ONE_ADMIN_USER_TWO_PASSWORD}
12+
institution.test_admin.email_address={INSTITUTION_TEST_ADMIN_EMAIL_ADDRESS}
13+
institution.test_admin.password={INSTITUTION_TEST_ADMIN_PASSWORD}
1214
landing.user_one.email_address={LANDING_USER_ONE_EMAIL_ADDRESS}
1315
landing.user_one.password={LANDING_USER_ONE_PASSWORD}
1416
volunteer_foundation_id={VOLUNTEER_FOUNDATION_ID}

src/test/java/org/ays/endpoints/Authorization.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,19 @@ public static String loginAndGetAdminTwoAccessToken() {
5454
return response.jsonPath().getString("response.accessToken");
5555
}
5656

57+
public static String loginAndGetTestAdminAccessToken() {
58+
59+
AdminCredentials adminCredentials = AdminCredentials.generateForTestAdmin();
60+
61+
Response response = InstitutionAuthEndpoints.getAdminToken(adminCredentials);
62+
63+
if (!response.jsonPath().getBoolean("isSuccess")) {
64+
System.out.println(response.jsonPath().prettify());
65+
}
66+
67+
return response.jsonPath().getString("response.accessToken");
68+
}
69+
5770
public static String loginAndGetUserAccessToken(String username, String password) {
5871
UserCredentials userCredentials = new UserCredentials();
5972
userCredentials.setEmailAddress(username);
@@ -68,4 +81,5 @@ public static String loginAndGetUserAccessToken(String username, String password
6881
return response.jsonPath().getString("response.accessToken");
6982
}
7083

84+
7185
}

src/test/java/org/ays/endpoints/InstitutionEndpoints.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.ays.payload.RejectReason;
1414
import org.ays.payload.RequestBodyInstitution;
1515
import org.ays.payload.RequestBodyUsers;
16+
import org.ays.payload.RoleCreatePayload;
1617
import org.ays.payload.RolesListPayload;
1718
import org.ays.payload.SuperAdminCredentials;
1819
import org.ays.payload.User;
@@ -333,4 +334,28 @@ public static Response listRolesForSuperAdmin(RolesListPayload rolesListPayload)
333334
return AysRestAssured.perform(restAssuredRequest);
334335
}
335336

337+
public static Response listRolesForTestAdmin(RolesListPayload rolesListPayload) {
338+
339+
AysRestAssuredRequest restAssuredRequest = AysRestAssuredRequest.builder()
340+
.httpMethod(HttpMethod.POST)
341+
.url("/api/v1/roles")
342+
.body(rolesListPayload)
343+
.token(Authorization.loginAndGetTestAdminAccessToken())
344+
.build();
345+
346+
return AysRestAssured.perform(restAssuredRequest);
347+
}
348+
349+
public static Response createRole(RoleCreatePayload roleCreatePayload) {
350+
351+
AysRestAssuredRequest restAssuredRequest = AysRestAssuredRequest.builder()
352+
.httpMethod(HttpMethod.POST)
353+
.url("/api/v1/role")
354+
.body(roleCreatePayload)
355+
.token(Authorization.loginAndGetTestAdminAccessToken())
356+
.build();
357+
358+
return AysRestAssured.perform(restAssuredRequest);
359+
}
360+
336361
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,13 @@ public static AdminCredentials generateForAdminTwo() {
3030
return adminCredentials;
3131
}
3232

33+
public static AdminCredentials generateForTestAdmin() {
34+
AdminCredentials adminCredentials = new AdminCredentials();
35+
adminCredentials.setEmailAddress(AysConfigurationProperty.InstitutionOne.TestAdmin.EMAIL_ADDRESS);
36+
adminCredentials.setPassword(AysConfigurationProperty.InstitutionOne.TestAdmin.PASSWORD);
37+
adminCredentials.setSourcePage(SourcePage.INSTITUTION);
38+
39+
return adminCredentials;
40+
}
41+
3342
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.ays.payload;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import org.ays.utility.AysRandomUtil;
6+
import org.ays.utility.DatabaseUtility;
7+
8+
import java.util.List;
9+
10+
@Getter
11+
@Setter
12+
public class RoleCreatePayload {
13+
14+
private String name;
15+
private List<String> permissionIds;
16+
17+
public static RoleCreatePayload generate() {
18+
RoleCreatePayload roleCreatePayload = new RoleCreatePayload();
19+
roleCreatePayload.setName(AysRandomUtil.generateFirstName() + " Rol");
20+
roleCreatePayload.setPermissionIds(DatabaseUtility.getPermissionsId());
21+
return roleCreatePayload;
22+
}
23+
24+
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ public static RolesListPayload generate() {
1818
return rolesListPayload;
1919
}
2020

21-
public static RolesListPayload generateWithFilter() {
21+
public static RolesListPayload generateWithFilter(RoleCreatePayload roleCreatePayload) {
2222
RolesListPayload rolesListPayload = new RolesListPayload();
2323
rolesListPayload.setPageable(Pageable.generate(1, 10));
24-
rolesListPayload.setFilter(RolesListFilter.generate("Kurum Yöneticisi", RolesListStatus.ACTIVE));
24+
rolesListPayload.setFilter(RolesListFilter.generate(roleCreatePayload.getName(), RolesListStatus.ACTIVE));
2525
return rolesListPayload;
2626
}
2727

src/test/java/org/ays/tests/institution/roleManagementService/PostRolesTest.java

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.restassured.response.Response;
44
import org.ays.endpoints.InstitutionEndpoints;
5+
import org.ays.payload.RoleCreatePayload;
56
import org.ays.payload.RolesListPayload;
67
import org.ays.tests.database.aysInstitutionName.AfetYonetimSistemi;
78
import org.ays.tests.database.aysInstitutionName.DisasterFoundation;
@@ -10,6 +11,10 @@
1011
import org.ays.utility.AysResponseSpecs;
1112
import org.testng.annotations.Test;
1213

14+
import static org.hamcrest.Matchers.containsString;
15+
import static org.hamcrest.Matchers.is;
16+
import static org.hamcrest.Matchers.notNullValue;
17+
1318
public class PostRolesTest {
1419

1520
@Test(groups = {"Smoke", "Regression", "Institution"})
@@ -31,7 +36,10 @@ public void rolesListForAdminOne() {
3136

3237
response.then()
3338
.spec(AysResponseSpecs.expectSuccessResponseSpec())
34-
.spec(AysResponseSpecs.expectTotalElementCount(totalElementCount));
39+
.spec(AysResponseSpecs.expectTotalElementCount(totalElementCount))
40+
.spec(AysResponseSpecs.expectRolesListInContent())
41+
.spec(AysResponseSpecs.expectDefaultListingDetails())
42+
.body("response.filteredBy.institutionId", notNullValue());
3543

3644
}
3745

@@ -54,7 +62,10 @@ public void rolesListForAdminTwo() {
5462

5563
response.then()
5664
.spec(AysResponseSpecs.expectSuccessResponseSpec())
57-
.spec(AysResponseSpecs.expectTotalElementCount(totalElementCount));
65+
.spec(AysResponseSpecs.expectTotalElementCount(totalElementCount))
66+
.spec(AysResponseSpecs.expectRolesListInContent())
67+
.spec(AysResponseSpecs.expectDefaultListingDetails())
68+
.body("response.filteredBy.institutionId", notNullValue());
5869

5970
}
6071

@@ -77,7 +88,36 @@ public void rolesListForSuperAdmin() {
7788

7889
response.then()
7990
.spec(AysResponseSpecs.expectSuccessResponseSpec())
80-
.spec(AysResponseSpecs.expectTotalElementCount(totalElementCount));
91+
.spec(AysResponseSpecs.expectTotalElementCount(totalElementCount))
92+
.spec(AysResponseSpecs.expectRolesListInContent())
93+
.spec(AysResponseSpecs.expectDefaultListingDetails())
94+
.body("response.filteredBy.institutionId", notNullValue());
8195

8296
}
97+
98+
@Test(groups = {"Smoke", "Regression", "Institution"})
99+
public void rolesListWithFilter() {
100+
RoleCreatePayload roleCreatePayload = RoleCreatePayload.generate();
101+
InstitutionEndpoints.createRole(roleCreatePayload);
102+
103+
String name = roleCreatePayload.getName();
104+
105+
RolesListPayload rolesListPayload = RolesListPayload.generateWithFilter(roleCreatePayload);
106+
107+
Response response = InstitutionEndpoints.listRolesForTestAdmin(rolesListPayload);
108+
109+
if (response.jsonPath().getList("response.content").isEmpty()) {
110+
AysLogUtil.info("No users under this institution.");
111+
return;
112+
}
113+
114+
response.then()
115+
.spec(AysResponseSpecs.expectSuccessResponseSpec())
116+
.spec(AysResponseSpecs.expectRolesListInContent())
117+
.spec(AysResponseSpecs.expectDefaultListingDetails())
118+
.body("response.content[0].name", is(name))
119+
.body("response.filteredBy.institutionId", notNullValue());
120+
121+
}
122+
83123
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ public static class AdminUserTwo {
5757
public static final String PASSWORD = PROPERTIES.getProperty("institution_one.admin_user_two.password");
5858
}
5959

60+
public static class TestAdmin {
61+
public static final String EMAIL_ADDRESS = PROPERTIES.getProperty("institution.test_admin.email_address");
62+
public static final String PASSWORD = PROPERTIES.getProperty("institution.test_admin.password");
63+
}
64+
6065
}
6166

6267
public static class LandingUserOne {

0 commit comments

Comments
 (0)