diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/roles/RolesHelper.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/roles/RolesHelper.java index 2b209fe7ee8..fed21aa9a4a 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/roles/RolesHelper.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/roles/RolesHelper.java @@ -22,6 +22,9 @@ import com.google.gson.reflect.TypeToken; import io.restassured.specification.RequestSpecification; import io.restassured.specification.ResponseSpecification; + +import static org.mockito.Mockito.description; + import java.lang.reflect.Type; import java.util.HashMap; import java.util.List; @@ -32,6 +35,8 @@ import org.apache.fineract.client.util.JSON; import org.apache.fineract.integrationtests.common.FineractClientHelper; import org.apache.fineract.integrationtests.common.Utils; +import org.apache.fineract.useradministration.api.RolesApiResourceSwagger.PostRolesRequest; +import org.apache.fineract.useradministration.api.RolesApiResourceSwagger.PostRolesResponse; import org.apache.fineract.useradministration.data.PermissionData; public final class RolesHelper { @@ -58,6 +63,16 @@ public static Integer createRole(final RequestSpecification requestSpec, final R return Utils.performServerPost(requestSpec, responseSpec, CREATE_ROLE_URL, getTestCreateRoleAsJSON(), "resourceId"); } + //new method createRole by fiegn + public static Long createRole(){ + PostRolesRequest request=new PostRolesRequest() + .name(Utils.uniqueRandomStringGenerator("Role_",4 )) + .description("New Role"); + + PostRolesResponse response=Calls.ok(FineractClientHelper.getFineractClient().roles.createRole(request)); + return response.getResourceId(); + } + // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/users/UserHelper.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/users/UserHelper.java index 3d72511b81c..4c95ae52823 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/users/UserHelper.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/useradministration/users/UserHelper.java @@ -26,6 +26,9 @@ import io.restassured.path.json.JsonPath; import io.restassured.specification.RequestSpecification; import io.restassured.specification.ResponseSpecification; + +import static org.mockito.Mockito.description; + import java.util.HashMap; import java.util.List; import org.apache.fineract.client.models.GetOfficesResponse; @@ -35,7 +38,18 @@ import org.apache.fineract.integrationtests.common.OfficeHelper; import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.useradministration.roles.RolesHelper; +import org.apache.fineract.useradministration.api.RolesApiResourceSwagger.PostRolesRequest; +import org.apache.fineract.useradministration.api.RolesApiResourceSwagger.PostRolesResponse; +import org.apache.fineract.useradministration.api.UsersApiResourceSwagger.GetUsersResponse; +import org.apache.fineract.useradministration.api.UsersApiResourceSwagger.GetUsersUserIdResponse; +import org.apache.fineract.useradministration.api.UsersApiResourceSwagger.PutUsersUserIdRequest; +import org.apache.fineract.useradministration.api.UsersApiResourceSwagger.PutUsersUserIdResponse; import org.junit.jupiter.api.Assertions; +import org.apache.fineract.client.util.Calls; +import org.apache.fineract.client.util.FineractClient; +import org.apache.fineract.integrationtests.common.FineractClientHelper; +import java.util.Map; +import java.util.List; public final class UserHelper { @@ -54,202 +68,219 @@ private UserHelper() {} // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static Integer createUser(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, int roleId, - int staffId) { - return Utils.performServerPost(requestSpec, responseSpec, CREATE_USER_URL, getTestCreateUserAsJSON(roleId, staffId), "resourceId"); + public static Long createUser(int roleId,int staffId){ + PostUsersRequest request=new PostUsersRequest() + .officeId(1L) + .staffId((long)staffId) + .roles(List.of((long)roleId)) + .username(Utils.uniqueRandomStringGenerator("User_", 4)); + return Calls.ok(FineractClientHelper.getFineractClient().users.createUser(request)).getResourceId(); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static Object createUser(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, int roleId, - int staffId, String username, String attribute) { - return Utils.performServerPost(requestSpec, responseSpec, CREATE_USER_URL, getTestCreateUserAsJSON(roleId, staffId, username), - attribute); - } + public static PostUsersResponse createUser(int roleId,int staffId,String username){ + PostUsersRequest request=new PostUsersRequest() + .username(username) + .firstname("Test") + .lastname("User") + .email("test@fineract.org") + .officeId(1L) + .staffId((long)staffId) + .roles(java.util.List.of((long) roleId)) + .sendPasswordToEmail(false); + return Calls.ok(FineractClientHelper.getFineractClient().users.createUser(request)); + + } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static Object createUser(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, int roleId, - int staffId, String username, String password, String attribute) { - return Utils.performServerPost(requestSpec, responseSpec, CREATE_USER_URL, - getTestCreateUserAsJSON(roleId, staffId, username, password), attribute); + private static PostUsersResponse createUser(int roleId,int staffId,String username,String password){ + PostUsersRequest request=new PostUsersRequest() + .username(username) + .password(password) + .repeatPassword(password) + .firstname("Test") + .lastname("User") + .officeId(1L) + .staffId((long) staffId) + .roles(java.util.List.of((long) roleId)) + .sendPasswordToEmail(false); + + + return Calls.ok(FineractClientHelper.getFineractClient().users.createUser(request)); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static PostUsersResponse createUser(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, - PostUsersRequest request) { - String requestBody = GSON.toJson(request); - String response = Utils.performServerPost(requestSpec, responseSpec, CREATE_USER_URL, requestBody); - return GSON.fromJson(response, PostUsersResponse.class); - } + public static PostUsersResponse createUser(PostUsersRequest request){ + return Calls.ok(FineractClientHelper.getFineractClient().users.createUser(request)); + } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static JsonObject createUserWithJsonResponse(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, - PostUsersRequest request) { - String requestBody = GSON.toJson(request); - String jsonResponse = Utils.performServerPost(requestSpec, responseSpec, CREATE_USER_URL, requestBody); - return JsonParser.parseString(jsonResponse).getAsJsonObject(); - } + public static PostUsersResponse createUserWithJsonResponse(PostUsersRequest request) { + return Calls.ok(FineractClientHelper.getFineractClient().users.createUser(request)); +} + // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static Integer getUserId(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, String userName) { - String json = Utils.performServerGet(requestSpec, responseSpec, CREATE_USER_URL, null); - Assertions.assertNotNull(json); - List> userList = JsonPath.from(json).getList("$"); - - for (HashMap user : userList) { - if (user.get("username").equals(userName)) { - return (Integer) user.get("id"); - } - } - - return null; - } + public static Long getUserId(String username){ + List users=Calls.ok(FineractClientHelper.getFineractClient().users.retrieveAll()); + return users.stream() + .filter(user -> user.getUsername().equals(username)) + .map(GetUsersResponse::getId) + .findFirst() + .orElse(null); + } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static String getTestCreateUserAsJSON(int roleId, int staffId) { - return "{ \"username\": \"" + Utils.uniqueRandomStringGenerator("User_Name_", 3) - + "\", \"firstname\": \"Test\", \"lastname\": \"User\", \"email\": \"whatever@mifos.org\"," - + " \"officeId\": \"1\", \"staffId\": " + "\"" + staffId + "\",\"roles\": [\"" + roleId - + "\"], \"sendPasswordToEmail\": false}"; + public static PostUsersRequest buildDefaultUserRequest(int roleId,int staffId){ + return new PostUsersRequest() + .username(Utils.uniqueRandomStringGenerator("User_Name_", 3)) + .firstname("Test") + .lastname("User") + .email("whatever@mifos.org") + .officeId(1L) + .staffId((long) staffId) + .roles(java.util.List.of((long) roleId)) + .sendPasswordToEmail(false); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - private static String getTestCreateUserAsJSON(int roleId, int staffId, String username) { - return "{ \"username\": \"" + username + "\", \"firstname\": \"Test\", \"lastname\": \"User\", \"email\": \"whatever@mifos.org\"," - + " \"officeId\": \"1\", \"staffId\": " + "\"" + staffId + "\",\"roles\": [\"" + roleId - + "\"], \"sendPasswordToEmail\": false}"; + public static PostUsersRequest buildUserRequest(int roleId,int staffId,String username){ + + return new PostUsersRequest() + .username(username) + .firstname("Test") + .lastname("User") + .email("whatever@mifos.org") + .officeId(1L) + .staffId((long) staffId) + .roles(java.util.List.of((long) roleId)) + .sendPasswordToEmail(false); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - private static String getTestCreateUserAsJSON(int roleId, int staffId, String username, String password) { - return "{ \"username\": \"" + username + "\", \"firstname\": \"Test\", \"lastname\": \"User\", \"email\": \"whatever@mifos.org\"," - + " \"officeId\": \"1\", \"staffId\": " + "\"" + staffId + "\",\"roles\": [\"" + roleId - + "\"], \"sendPasswordToEmail\": false, \"password\": \"" + password + "\"," + " \"repeatPassword\": \"" + password - + "\"}"; - } + private static PostUsersRequest buildUserRequestWithPassword(int roleId,int staffId,String username,String password){ + return new PostUsersRequest() + .username(username) + .password(password) + .repeatPassword(password) + .firstname("Test") + .lastname("User") + .email("whatever@mifos.org") + .officeId(1L) + .staffId((long) staffId) + .roles(java.util.List.of((long) roleId)) + .sendPasswordToEmail(false); +} + // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - private static String getTestUpdateUserAsJSON(String username) { - return "{ \"username\": \"" + username + "\", \"firstname\": \"Test\", \"lastname\": \"User\", \"email\": \"whatever@mifos.org\"," - + " \"officeId\": \"1\"}"; + private static PutUsersUserIdRequest buildUpdateUserRequest(String username){ + return new PutUsersUserIdRequest() + .username(username) + .firstname("Test") + .lastname("User") + .email("whatever@mifos.org") + .officeId(1L); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static Integer deleteUser(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, - final Integer userId) { - return Utils.performServerDelete(requestSpec, responseSpec, createRoleOperationURL(userId), "resourceId"); - } + public static Long deleteUser(final Long userId){ + return Calls.ok(FineractClientHelper.getFineractClient().users.deleteUser(userId)).getResourceId(); + } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static Object updateUser(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, int userId, - String username, String attribute) { - return Utils.performServerPut(requestSpec, responseSpec, createRoleOperationURL(userId), getTestUpdateUserAsJSON(username), - attribute); - } + public static PutUsersUserIdResponse updateUser(final Long userId,String username){ + PutUsersUserIdRequest request=new PutUsersUserIdRequest() + .username(username) + .firstname("Updatedfirstname") + .lastname("Updtedlastname"); + + return Calls.ok(FineractClientHelper.getFineractClient().users.updateUser(userId,request)); + } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - private static String createRoleOperationURL(final Integer userId) { - return USER_URL + "/" + userId + "?" + Utils.TENANT_IDENTIFIER; + public static GetUsersUserIdResponse getUser(Long userId){ + return Calls.ok(FineractClientHelper.getFineractClient().users.retrieveOne(userId)); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static RequestSpecification getSimpleUserWithoutBypassPermission(final RequestSpecification requestSpec, - final ResponseSpecification responseSpec) { - String password = SIMPLE_USER_PASSWORD; - if (!SIMPLE_USER_CREATED) { + public static FineractClient getSimpleUserClient(){ + String password=SIMPLE_USER_PASSWORD; + if(!SIMPLE_USER_CREATED){ GetOfficesResponse headOffice = OfficeHelper.getHeadOffice(); - String simpleRoleId = createSimpleRole(requestSpec, responseSpec); - PostUsersRequest createUserRequest = new PostUsersRequest().username(SIMPLE_USER_NAME) - .firstname(Utils.randomFirstNameGenerator()).lastname(Utils.randomLastNameGenerator()).email("whatever@mifos.org") - .password(password).repeatPassword(password).sendPasswordToEmail(false).roles(List.of(Long.valueOf(simpleRoleId))) - .officeId(headOffice.getId()); - - PostUsersResponse userCreationResponse = UserHelper.createUser(requestSpec, responseSpec, createUserRequest); - Assertions.assertNotNull(userCreationResponse.getResourceId()); - SIMPLE_USER_CREATED = true; + PostUsersRequest createUserRequest = buildUserRequest(password); + UserHelper.createUser(createUserRequest); + SIMPLE_USER_CREATED=true; } - RequestSpecification responseRequestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build(); - responseRequestSpec.header("Authorization", - "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey(SIMPLE_USER_NAME, password)); - return responseRequestSpec; - } + return FineractClientHelper.getFineractClient(SIMPLE_USER_NAME,password); + } + // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - public static PostUsersRequest buildUserRequest(ResponseSpecification responseSpec, RequestSpecification requestSpec, String password) { - Integer roleId = RolesHelper.createRole(requestSpec, responseSpec); - String uniqueUsername = Utils.uniqueRandomStringGenerator("TestUser", 4); + public static PostUsersRequest buildUserRequest(String password){ + Long roleId=RolesHelper.createRole(); GetOfficesResponse headOffice = OfficeHelper.getHeadOffice(); - return new PostUsersRequest().username(uniqueUsername).firstname(Utils.randomFirstNameGenerator()) - .lastname(Utils.randomLastNameGenerator()).email("testuser@example.com").password(password).repeatPassword(password) - .sendPasswordToEmail(false).officeId(headOffice.getId()).roles(List.of(roleId.longValue())); - } + return new PostUsersRequest() + .username(Utils.uniqueRandomStringGenerator("TestUser", 4)) + .password(password) + .repeatPassword(password) + .officeId(headOffice.getId()) + .roles(List.of(roleId)); + + } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - private static String createSimpleRole(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { - Integer roleId = RolesHelper.createRole(requestSpec, responseSpec); - addRepaymentPermissionToRole(requestSpec, responseSpec, roleId); - return roleId.toString(); - } + private static Long createSimpleRole() { + Long roleId = RolesHelper.createRole(); + PermissionsHelper.addRepaymentPermissionToRole(roleId); + + return roleId; +} // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) - private static void addRepaymentPermissionToRole(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, - Integer roleId) { - HashMap permissionMap = new HashMap<>(); - permissionMap.put(REPAYMENT_LOAN_PERMISSION, true); - permissionMap.put(READ_LOAN_PERMISSION, true); - permissionMap.put("READ_RESCHEDULELOAN", true); - permissionMap.put("CREATE_RESCHEDULELOAN", true); - permissionMap.put("REJECT_RESCHEDULELOAN", true); - permissionMap.put("APPROVE_RESCHEDULELOAN", true); - RolesHelper.addPermissionsToRole(requestSpec, responseSpec, roleId, permissionMap); - } + private static void addRepaymentPermissionToRole(Long roleId) { + + Map permissions = Map.of( + REPAYMENT_LOAN_PERMISSION, true, + READ_LOAN_PERMISSION, true, + "READ_RESCHEDULELOAN", true, + "CREATE_RESCHEDULELOAN", true, + "REJECT_RESCHEDULELOAN", true, + "APPROVE_RESCHEDULELOAN", true + ); + RolesHelper.addPermissionsToRole(roleId, permissions); +} }