Skip to content

Commit 4327cbf

Browse files
authored
AYS-368 | Role Listing Service Automation (#157)
1 parent 8d84ba2 commit 4327cbf

24 files changed

+533
-181
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: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
import org.ays.payload.RejectReason;
1414
import org.ays.payload.RequestBodyInstitution;
1515
import org.ays.payload.RequestBodyUsers;
16-
import org.ays.payload.SuperAdminCredentials;
16+
import org.ays.payload.RoleCreatePayload;
17+
import org.ays.payload.RolesListPayload;
1718
import org.ays.payload.User;
1819
import org.ays.payload.UserCredentials;
1920
import org.ays.utility.AysConfigurationProperty;
@@ -61,7 +62,7 @@ public static Response listUsers(RequestBodyUsers requestBodyUsers, AdminCredent
6162
return AysRestAssured.perform(restAssuredRequest);
6263
}
6364

64-
public static Response listUsersTwo(RequestBodyUsers requestBodyUsers, AdminCredentials adminCredentials) {
65+
public static Response listUsersTwo(RequestBodyUsers requestBodyUsers) {
6566

6667
AysRestAssuredRequest restAssuredRequest = AysRestAssuredRequest.builder()
6768
.httpMethod(HttpMethod.POST)
@@ -73,7 +74,7 @@ public static Response listUsersTwo(RequestBodyUsers requestBodyUsers, AdminCred
7374
return AysRestAssured.perform(restAssuredRequest);
7475
}
7576

76-
public static Response listUsersSuperAdmin(RequestBodyUsers requestBodyUsers, SuperAdminCredentials superAdminCredentials) {
77+
public static Response listUsersSuperAdmin(RequestBodyUsers requestBodyUsers) {
7778

7879
AysRestAssuredRequest restAssuredRequest = AysRestAssuredRequest.builder()
7980
.httpMethod(HttpMethod.POST)
@@ -294,7 +295,30 @@ public static Response postEmergencyEvacuationApplications(ListEmergencyEvacuati
294295
.build();
295296
return AysRestAssured.perform(restAssuredRequest);
296297

298+
}
299+
300+
public static Response listRoles(RolesListPayload rolesListPayload, String token) {
301+
302+
AysRestAssuredRequest restAssuredRequest = AysRestAssuredRequest.builder()
303+
.httpMethod(HttpMethod.POST)
304+
.url("/api/v1/roles")
305+
.body(rolesListPayload)
306+
.token(token)
307+
.build();
297308

309+
return AysRestAssured.perform(restAssuredRequest);
310+
}
311+
312+
public static Response createRole(RoleCreatePayload roleCreatePayload) {
313+
314+
AysRestAssuredRequest restAssuredRequest = AysRestAssuredRequest.builder()
315+
.httpMethod(HttpMethod.POST)
316+
.url("/api/v1/role")
317+
.body(roleCreatePayload)
318+
.token(Authorization.loginAndGetTestAdminAccessToken())
319+
.build();
320+
321+
return AysRestAssured.perform(restAssuredRequest);
298322
}
299323

300324
}

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+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.ays.payload;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
6+
import java.util.Collections;
7+
import java.util.List;
8+
9+
@Getter
10+
@Setter
11+
public class RolesListFilter {
12+
13+
private String name;
14+
private List<String> statuses;
15+
16+
public static RolesListFilter generate(String name, RolesListStatus statuses) {
17+
RolesListFilter rolesFilter = new RolesListFilter();
18+
rolesFilter.setName(name);
19+
rolesFilter.setStatuses(Collections.singletonList(statuses.toString()));
20+
return rolesFilter;
21+
}
22+
23+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.ays.payload;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
6+
import java.util.List;
7+
8+
@Getter
9+
@Setter
10+
public class RolesListPayload {
11+
12+
private Pageable pageable;
13+
private RolesListFilter filter;
14+
15+
public static RolesListPayload generate() {
16+
RolesListPayload rolesListPayload = new RolesListPayload();
17+
rolesListPayload.setPageable(Pageable.generate(1, 10));
18+
return rolesListPayload;
19+
}
20+
21+
public static RolesListPayload generateWithFilter(RoleCreatePayload roleCreatePayload) {
22+
RolesListPayload rolesListPayload = new RolesListPayload();
23+
rolesListPayload.setPageable(Pageable.generate(1, 10));
24+
rolesListPayload.setFilter(RolesListFilter.generate(roleCreatePayload.getName(), RolesListStatus.ACTIVE));
25+
return rolesListPayload;
26+
}
27+
28+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.ays.payload;
2+
3+
public enum RolesListStatus {
4+
ACTIVE,
5+
PASSIVE,
6+
DELETED
7+
8+
}

0 commit comments

Comments
 (0)