Return-Path: X-Original-To: apmail-fineract-commits-archive@minotaur.apache.org Delivered-To: apmail-fineract-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2E1ED18699 for ; Mon, 1 Feb 2016 09:25:16 +0000 (UTC) Received: (qmail 84366 invoked by uid 500); 1 Feb 2016 09:24:54 -0000 Delivered-To: apmail-fineract-commits-archive@fineract.apache.org Received: (qmail 84335 invoked by uid 500); 1 Feb 2016 09:24:54 -0000 Mailing-List: contact commits-help@fineract.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@fineract.incubator.apache.org Delivered-To: mailing list commits@fineract.incubator.apache.org Received: (qmail 84284 invoked by uid 99); 1 Feb 2016 09:24:54 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Feb 2016 09:24:54 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id BAA2BC0ECE for ; Mon, 1 Feb 2016 09:24:53 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.226 X-Spam-Level: * X-Spam-Status: No, score=1.226 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.554] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id UIVwWdA72Bof for ; Mon, 1 Feb 2016 09:24:44 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id 31B8331AFA for ; Mon, 1 Feb 2016 09:24:38 +0000 (UTC) Received: (qmail 83252 invoked by uid 99); 1 Feb 2016 09:24:38 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Feb 2016 09:24:38 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 39BF4E03BE; Mon, 1 Feb 2016 09:24:38 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: mage@apache.org To: commits@fineract.incubator.apache.org Date: Mon, 01 Feb 2016 09:24:51 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [15/51] [partial] incubator-fineract git commit: deleted initial code http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java deleted file mode 100644 index 25a4644..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java +++ /dev/null @@ -1,425 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.integrationtests; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.fineract.batch.domain.BatchRequest; -import org.apache.fineract.batch.domain.BatchResponse; -import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper; -import org.apache.fineract.integrationtests.common.BatchHelper; -import org.apache.fineract.integrationtests.common.Utils; -import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder; -import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper; -import org.apache.fineract.integrationtests.common.savings.SavingsProductHelper; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.jayway.restassured.builder.RequestSpecBuilder; -import com.jayway.restassured.builder.ResponseSpecBuilder; -import com.jayway.restassured.http.ContentType; -import com.jayway.restassured.specification.RequestSpecification; -import com.jayway.restassured.specification.ResponseSpecification; - -/** - * Test class for - * {@link org.apache.fineract.batch.command.CommandStrategyProvider}. This tests - * the response provided by commandStrategy by injecting it with a - * {@code BatchRequest}. - * - * @author RishabhShukla - * - * @see org.apache.fineract.integrationtests.common.BatchHelper - * @see org.apache.fineract.batch.domain.BatchRequest - */ -public class BatchApiTest { - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - - public BatchApiTest() { - super(); - } - - /** - * Sets up the essential settings for the TEST like contentType, - * expectedStatusCode. It uses the '@Before' annotation provided by jUnit. - */ - @Before - public void setup() { - - Utils.initializeRESTAssured(); - this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build(); - this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); - this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); - } - - /** - * Tests for the unimplemented command Strategies by returning 501 status - * code. For a unknownRequest a statusCode 501 is returned back with - * response. - * - * @see org.apache.fineract.batch.command.internal.UnknownCommandStrategy - */ - @Test - public void shouldReturnStatusNotImplementedUnknownCommand() { - - final BatchRequest br = new BatchRequest(); - br.setRequestId(4711L); - br.setRelativeUrl("/nirvana"); - br.setMethod("POST"); - - final List response = BatchHelper.postWithSingleRequest(this.requestSpec, this.responseSpec, br); - - // Verify that only 501 is returned as the status code - for (BatchResponse resp : response) { - Assert.assertEquals("Verify Status code 501", (long) 501, (long) resp.getStatusCode()); - } - } - - /** - * Tests for the successful response for a createClient request from - * createClientCommand. A successful response with statusCode '200' is - * returned back. - * - * @see org.apache.fineract.batch.command.internal.CreateClientCommandStrategy - */ - @Test - public void shouldReturnOkStatusForCreateClientCommand() { - - final BatchRequest br = BatchHelper.createClientRequest(4712L, ""); - - final List response = BatchHelper.postWithSingleRequest(this.requestSpec, this.responseSpec, br); - - // Verify that a 200 response is returned as the status code - for (BatchResponse resp : response) { - Assert.assertEquals("Verify Status code 200", (long) 200, (long) resp.getStatusCode()); - } - } - - /** - * Tests for an erroneous response with statusCode '501' if transaction - * fails. If Query Parameter 'enclosingTransaction' is set to 'true' and if - * one of the request in BatchRequest fails then all transactions are rolled - * back. - * - * @see org.apache.fineract.batch.command.internal.CreateClientCommandStrategy - * @see org.apache.fineract.batch.api.BatchApiResource - * @see org.apache.fineract.batch.service.BatchApiService - */ - @Test - public void shouldRollBackAllTransactionsOnFailure() { - - // Create first client request - final BatchRequest br1 = BatchHelper.createClientRequest(4713L, "TestExtId11"); - - // Create second client request - final BatchRequest br2 = BatchHelper.createClientRequest(4714L, "TestExtId12"); - - // Create third client request, having same externalID as second client, - // hence cause of error - final BatchRequest br3 = BatchHelper.createClientRequest(4715L, "TestExtId11"); - - final List batchRequests = new ArrayList<>(); - - batchRequests.add(br1); - batchRequests.add(br2); - batchRequests.add(br3); - - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - final List response = BatchHelper.postBatchRequestsWithEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - // Verifies that none of the client in BatchRequest is created on the - // server - BatchHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, "TestExtId11"); - BatchHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, "TestExtId12"); - - // Asserts that all the transactions have been successfully rolled back - Assert.assertEquals(response.size(), 1); - Assert.assertEquals("Verify Status code 400", (long) 400, (long) response.get(0).getStatusCode()); - } - - /** - * Tests that a client information was successfully updated through - * updateClientCommand. A 'changes' parameter is returned in the response - * after successful update of client information. - * - * @see org.apache.fineract.batch.command.internal.UpdateClientCommandStrategy - */ - @Test - public void shouldReflectChangesOnClientUpdate() { - - // Create a createClient Request - final BatchRequest br1 = BatchHelper.createClientRequest(4716L, ""); - - // Create a clientUpdate Request - final BatchRequest br2 = BatchHelper.updateClientRequest(4717L, 4716L); - - final List batchRequests = new ArrayList<>(); - - batchRequests.add(br1); - batchRequests.add(br2); - - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - - final List response = BatchHelper.postBatchRequestsWithoutEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - // Get the changes parameter from updateClient Response - final JsonObject changes = new FromJsonHelper().parse(response.get(1).getBody()).getAsJsonObject().get("changes").getAsJsonObject(); - - // Asserts the client information is successfully updated - Assert.assertEquals("Verify Firstname", "TestFirstName", changes.get("firstname").getAsString()); - Assert.assertEquals("Verify Lastname", "TestLastName", changes.get("lastname").getAsString()); - } - - /** - * Tests that a ApplyLoanCommand was successfully executed and returned a - * 200(OK) status. It creates a new client and apply a loan to that client. - * This also verifies the successful resolution of dependencies among two - * requests. - * - * @see org.apache.fineract.batch.command.internal.ApplyLoanCommandStrategy - */ - @Test - public void shouldReturnOkStatusForApplyLoanCommand() { - - final String loanProductJSON = new LoanProductTestBuilder() // - .withPrincipal("10000000.00") // - .withNumberOfRepayments("24") // - .withRepaymentAfterEvery("1") // - .withRepaymentTypeAsMonth() // - .withinterestRatePerPeriod("2") // - .withInterestRateFrequencyTypeAsMonths() // - .withAmortizationTypeAsEqualPrincipalPayment() // - .withInterestTypeAsDecliningBalance() // - .currencyDetails("0", "100").build(null); - - final Integer productId = new LoanTransactionHelper(this.requestSpec, this.responseSpec).getLoanProductId(loanProductJSON); - - // Create a createClient Request - final BatchRequest br1 = BatchHelper.createClientRequest(4718L, ""); - - // Create a activateClient Request - final BatchRequest br2 = BatchHelper.activateClientRequest(4719L, 4718L); - - // Create a ApplyLoan Request - final BatchRequest br3 = BatchHelper.applyLoanRequest(4720L, 4719L, productId); - - final List batchRequests = new ArrayList<>(); - - batchRequests.add(br1); - batchRequests.add(br2); - batchRequests.add(br3); - - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - - final List response = BatchHelper.postBatchRequestsWithoutEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - // Get the clientId parameter from createClient Response - final JsonElement clientId = new FromJsonHelper().parse(response.get(0).getBody()).getAsJsonObject().get("clientId"); - - Assert.assertEquals("Verify Status Code 200" + clientId.getAsString(), 200L, (long) response.get(1).getStatusCode()); - } - - /** - * Tests that a new savings accounts was applied to an existing client and a - * 200(OK) status was returned. It first creates a new client and a savings - * product, then uses the cliendId and ProductId to apply a savings account. - * - * @see org.apache.fineract.batch.command.internal.ApplySavingsCommandStrategy - */ - @Test - public void shouldReturnOkStatusForApplySavingsCommand() { - - final SavingsProductHelper savingsProductHelper = new SavingsProductHelper(); - final String savingsProductJSON = savingsProductHelper // - .withInterestCompoundingPeriodTypeAsDaily() // - .withInterestPostingPeriodTypeAsMonthly() // - .withInterestCalculationPeriodTypeAsDailyBalance() // - .withMinimumOpenningBalance("5000").build(); - - final Integer productId = SavingsProductHelper.createSavingsProduct(savingsProductJSON, this.requestSpec, this.responseSpec); - - // Create a createClient Request - final BatchRequest br1 = BatchHelper.createClientRequest(4720L, ""); - - // Create a activateClient Request - final BatchRequest br2 = BatchHelper.activateClientRequest(4721L, 4720L); - - // Create a applySavings Request - final BatchRequest br3 = BatchHelper.applySavingsRequest(4722L, 4721L, productId); - - final List batchRequests = new ArrayList<>(); - - batchRequests.add(br1); - batchRequests.add(br2); - batchRequests.add(br3); - - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - - final List response = BatchHelper.postBatchRequestsWithoutEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - Assert.assertEquals("Verify Status Code 200", 200L, (long) response.get(1).getStatusCode()); - } - - /** - * Tests that a new charge was added to a newly created loan and charges are - * Collected properly 200(OK) status was returned for successful responses. - * It first creates a new client and apply a loan, then creates a new charge - * for the create loan and then fetches all the applied charges - * - * @see org.apache.fineract.batch.command.internal.CollectChargesCommandStrategy - * @see org.apache.fineract.batch.command.internal.CreateChargeCommandStrategy - */ - @Test - public void shouldReturnOkStatusForCollectChargesCommand() { - - final String loanProductJSON = new LoanProductTestBuilder() // - .withPrincipal("10000000.00") // - .withNumberOfRepayments("24") // - .withRepaymentAfterEvery("1") // - .withRepaymentTypeAsMonth() // - .withinterestRatePerPeriod("2") // - .withInterestRateFrequencyTypeAsMonths() // - .withAmortizationTypeAsEqualPrincipalPayment() // - .withInterestTypeAsDecliningBalance() // - .currencyDetails("0", "100").build(null); - - final Integer productId = new LoanTransactionHelper(this.requestSpec, this.responseSpec).getLoanProductId(loanProductJSON); - - // Create a createClient Request - final BatchRequest br1 = BatchHelper.createClientRequest(4722L, ""); - - // Create a activateClient Request - final BatchRequest br2 = BatchHelper.activateClientRequest(4723L, 4722L); - - // Create a ApplyLoan Request - final BatchRequest br3 = BatchHelper.applyLoanRequest(4724L, 4723L, productId); - - // Create a Collect Charges Request - final BatchRequest br4 = BatchHelper.collectChargesRequest(4725L, 4724L); - - final List batchRequests = new ArrayList<>(); - - batchRequests.add(br1); - batchRequests.add(br2); - batchRequests.add(br3); - batchRequests.add(br4); - - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - - final List response = BatchHelper.postBatchRequestsWithoutEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - Assert.assertEquals("Verify Status Code 200 for Create Loan Charge", 200L, (long) response.get(3).getStatusCode()); - } - - /** - * Test for the successful activation of a pending client using - * 'ActivateClientCommandStrategy'. A '200' status code is expected on - * successful activation. - * - * @see org.apache.fineract.batch.command.internal.ActivateClientCommandStrategy - */ - @Test - public void shouldReturnOkStatusOnSuccessfulClientActivation() { - - // Create a createClient Request - final BatchRequest br1 = BatchHelper.createClientRequest(4726L, ""); - - // Create a activateClient Request - final BatchRequest br2 = BatchHelper.activateClientRequest(4727L, 4726L); - - final List batchRequests = new ArrayList<>(); - - batchRequests.add(br1); - batchRequests.add(br2); - - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - - final List response = BatchHelper.postBatchRequestsWithoutEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - Assert.assertEquals("Verify Status Code 200 for Create Client", 200L, (long) response.get(0).getStatusCode()); - Assert.assertEquals("Verify Status Code 200 for Activate Client", 200L, (long) response.get(1).getStatusCode()); - } - - /** - * Test for the successful approval and disbursal of a loan using - * 'ApproveLoanCommandStrategy' and 'DisburseLoanCommandStrategy'. A '200' - * status code is expected on successful activation. - * - * @see org.apache.fineract.batch.command.internal.ApproveLoanCommandStrategy - * @see org.apache.fineract.batch.command.internal.DisburseLoanCommandStrategy - */ - @Test - public void shouldReturnOkStatusOnSuccessfulLoanApprovalAndDisburse() { - final String loanProductJSON = new LoanProductTestBuilder() // - .withPrincipal("10000000.00") // - .withNumberOfRepayments("24") // - .withRepaymentAfterEvery("1") // - .withRepaymentTypeAsMonth() // - .withinterestRatePerPeriod("2") // - .withInterestRateFrequencyTypeAsMonths() // - .withAmortizationTypeAsEqualPrincipalPayment() // - .withInterestTypeAsDecliningBalance() // - .currencyDetails("0", "100").build(null); - - final Integer productId = new LoanTransactionHelper(this.requestSpec, this.responseSpec).getLoanProductId(loanProductJSON); - - // Create a createClient Request - final BatchRequest br1 = BatchHelper.createClientRequest(4730L, ""); - - // Create a activateClient Request - final BatchRequest br2 = BatchHelper.activateClientRequest(4731L, 4730L); - - // Create a ApplyLoan Request - final BatchRequest br3 = BatchHelper.applyLoanRequest(4732L, 4731L, productId); - - // Create a approveLoan Request - final BatchRequest br4 = BatchHelper.approveLoanRequest(4733L, 4732L); - - // Create a disburseLoan Request - final BatchRequest br5 = BatchHelper.disburseLoanRequest(4734L, 4733L); - - final List batchRequests = new ArrayList<>(); - - batchRequests.add(br1); - batchRequests.add(br2); - batchRequests.add(br3); - batchRequests.add(br4); - batchRequests.add(br5); - - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - - final List response = BatchHelper.postBatchRequestsWithoutEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - Assert.assertEquals("Verify Status Code 200 for Approve Loan", 200L, (long) response.get(3).getStatusCode()); - Assert.assertEquals("Verify Status Code 200 for Disburse Loan", 200L, (long) response.get(4).getStatusCode()); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java deleted file mode 100644 index ad1f61b..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.integrationtests; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.fineract.batch.domain.BatchRequest; -import org.apache.fineract.batch.domain.BatchResponse; -import org.apache.fineract.integrationtests.common.BatchHelper; -import org.apache.fineract.integrationtests.common.ClientHelper; -import org.apache.fineract.integrationtests.common.GroupHelper; -import org.apache.fineract.integrationtests.common.Utils; -import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder; -import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.jayway.restassured.builder.RequestSpecBuilder; -import com.jayway.restassured.builder.ResponseSpecBuilder; -import com.jayway.restassured.http.ContentType; -import com.jayway.restassured.specification.RequestSpecification; -import com.jayway.restassured.specification.ResponseSpecification; - -/** - * Test class for testing the integration of Batch API with custom batch - * requests and various user defined workflow. Like in the case of mifos - * community-app - * - * @author Rishabh Shukla - */ -public class BatchRequestsIntegrationTest { - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - - public BatchRequestsIntegrationTest() { - super(); - } - - /** - * Sets up the essential settings for the TEST like contentType, - * expectedStatusCode. It uses the '@Before' annotation provided by jUnit. - */ - @Before - public void setup() { - - Utils.initializeRESTAssured(); - this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build(); - this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); - this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); - } - - @Test - /** - * Tests that a loan is successfully applied to client members of a group. - * Firstly, it'll create a few new clients and then will add those clients - * to the group. Then a few loans will be created and one of those loans - * will be chosen at random and similarily a few of the created clients will - * be chosen on random. Now, the selected loan will be applied to these - * clients through Batch - API ApplyLoanCommandStrategy. - */ - public void shouldReturnOkStatusForLoansAppliedToSelectedClients() { - - // Generate a random count of number of clients to be created - final Integer clientsCount = (int) Math.ceil(Math.random() * 7) + 3; - final Integer[] clientIDs = new Integer[clientsCount]; - - // Create a new group and get its groupId - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - - // Create new clients and add those to this group - for (Integer i = 0; i < clientsCount; i++) { - clientIDs[i] = ClientHelper.createClient(this.requestSpec, this.responseSpec); - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientIDs[i].toString()); - System.out.println("client " + clientIDs[i] + " has been added to the group " + groupID); - } - - // Generate a random count of number of new loan products to be created - final Integer loansCount = (int) Math.ceil(Math.random() * 4) + 1; - final Integer[] loanProducts = new Integer[loansCount]; - - // Create new loan Products - for (Integer i = 0; i < loansCount; i++) { - final String loanProductJSON = new LoanProductTestBuilder() // - .withPrincipal(String.valueOf(10000.00 + Math.ceil(Math.random() * 1000000.00))) // - .withNumberOfRepayments(String.valueOf(2 + (int) Math.ceil(Math.random() * 36))) // - .withRepaymentAfterEvery(String.valueOf(1 + (int) Math.ceil(Math.random() * 3))) // - .withRepaymentTypeAsMonth() // - .withinterestRatePerPeriod(String.valueOf(1 + (int) Math.ceil(Math.random() * 4))) // - .withInterestRateFrequencyTypeAsMonths() // - .withAmortizationTypeAsEqualPrincipalPayment() // - .withInterestTypeAsDecliningBalance() // - .currencyDetails("0", "100").build(null); - - loanProducts[i] = new LoanTransactionHelper(this.requestSpec, this.responseSpec).getLoanProductId(loanProductJSON); - } - - // Select anyone of the loan products at random - final Integer loanProductID = loanProducts[(int) Math.floor(Math.random() * (loansCount - 1))]; - - final List batchRequests = new ArrayList<>(); - - // Select a few clients from created group at random - Integer selClientsCount = (int) Math.ceil(Math.random() * clientsCount) + 2; - for (int i = 0; i < selClientsCount; i++) { - BatchRequest br = BatchHelper.applyLoanRequest((long) selClientsCount, null, loanProductID); - br.setBody(br.getBody().replace("$.clientId", String.valueOf(clientIDs[(int) Math.floor(Math.random() * (clientsCount - 1))]))); - batchRequests.add(br); - } - - // Send the request to Batch - API - final String jsonifiedRequest = BatchHelper.toJsonString(batchRequests); - - final List response = BatchHelper.postBatchRequestsWithoutEnclosingTransaction(this.requestSpec, this.responseSpec, - jsonifiedRequest); - - // Verify that each loan has been applied successfully - for (BatchResponse res : response) { - Assert.assertEquals("Verify Status Code 200", 200L, (long) res.getStatusCode()); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java deleted file mode 100644 index d923ee5..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java +++ /dev/null @@ -1,261 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.integrationtests; - -import static org.junit.Assert.assertEquals; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; - -import org.apache.fineract.integrationtests.common.CenterDomain; -import org.apache.fineract.integrationtests.common.CenterHelper; -import org.apache.fineract.integrationtests.common.OfficeHelper; -import org.apache.fineract.integrationtests.common.Utils; -import org.apache.fineract.integrationtests.common.organisation.StaffHelper; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.google.gson.Gson; -import com.jayway.restassured.builder.RequestSpecBuilder; -import com.jayway.restassured.builder.ResponseSpecBuilder; -import com.jayway.restassured.http.ContentType; -import com.jayway.restassured.specification.RequestSpecification; -import com.jayway.restassured.specification.ResponseSpecification; - -public class CenterIntegrationTest { - - private RequestSpecification requestSpec; - private ResponseSpecification responseSpec; - - @Before - public void setup() { - Utils.initializeRESTAssured(); - this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build(); - this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); - this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); - } - - @Test - public void testBasicCenterCreation() { - int officeId = new OfficeHelper(requestSpec, responseSpec).createOffice("01 July 2007"); - - String name = "TestBasicCreation" + new Timestamp(new java.util.Date().getTime()); - int resourceId = CenterHelper.createCenter(name, officeId, requestSpec, responseSpec); - CenterDomain center = CenterHelper.retrieveByID(resourceId, requestSpec, responseSpec); - - Assert.assertNotNull(center); - Assert.assertTrue(center.getName().equals(name)); - Assert.assertTrue(center.getOfficeId() == officeId); - Assert.assertTrue(center.isActive() == false); - - // Test retrieval by listing all centers - int id = CenterHelper.listCenters(requestSpec, responseSpec).get(0).getId(); - Assert.assertTrue(id > 0); - - CenterDomain retrievedCenter = CenterHelper.retrieveByID(id, requestSpec, responseSpec); - Assert.assertNotNull(retrievedCenter); - Assert.assertNotNull(retrievedCenter.getName()); - Assert.assertNotNull(retrievedCenter.getHierarchy()); - Assert.assertNotNull(retrievedCenter.getOfficeName()); - - } - - @Test - public void testFullCenterCreation() { - - int officeId = new OfficeHelper(requestSpec, responseSpec).createOffice("01 July 2007"); - String name = "TestFullCreation" + new Timestamp(new java.util.Date().getTime()); - String externalId = Utils.randomStringGenerator("ID_", 7, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - int staffId = StaffHelper.createStaff(requestSpec, responseSpec); - int[] groupMembers = generateGroupMembers(3, officeId); - int resourceId = CenterHelper.createCenter(name, officeId, externalId, staffId, groupMembers, requestSpec, responseSpec); - CenterDomain center = CenterHelper.retrieveByID(resourceId, requestSpec, responseSpec); - - Assert.assertNotNull(center); - Assert.assertTrue(center.getName().equals(name)); - Assert.assertTrue(center.getOfficeId() == officeId); - Assert.assertTrue(center.getExternalId().equals(externalId)); - Assert.assertTrue(center.getStaffId() == staffId); - Assert.assertTrue(center.isActive() == false); - Assert.assertArrayEquals(center.getGroupMembers(), groupMembers); - } - - @Test - public void testListCenters() { - ArrayList paginatedList = CenterHelper.paginatedListCenters(requestSpec, responseSpec); - ArrayList list = CenterHelper.listCenters(requestSpec, responseSpec); - - Assert.assertNotNull(paginatedList); - Assert.assertNotNull(list); - Assert.assertTrue(Arrays.equals(paginatedList.toArray(new CenterDomain[paginatedList.size()]), - list.toArray(new CenterDomain[list.size()]))); - } - - @Test - public void testVoidCenterRetrieval() { - ArrayList arr = CenterHelper.listCenters(requestSpec, responseSpec); - int id = arr.get(arr.size() - 1).getId() + 1; - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(404).build(); - CenterDomain center = CenterHelper.retrieveByID(id, requestSpec, responseSpec); - Assert.assertNotNull(center); - } - - @SuppressWarnings({ "rawtypes", "unchecked" }) - @Test - public void testCenterUpdate() { - int officeId = new OfficeHelper(requestSpec, responseSpec).createOffice("01 July 2007"); - String name = "TestFullCreation" + new Timestamp(new java.util.Date().getTime()); - String externalId = Utils.randomStringGenerator("ID_", 7, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - int staffId = StaffHelper.createStaff(requestSpec, responseSpec); - int[] groupMembers = generateGroupMembers(3, officeId); - int resourceId = CenterHelper.createCenter(name, officeId, externalId, staffId, groupMembers, requestSpec, responseSpec); - - String newName = "TestCenterUpdateNew" + new Timestamp(new java.util.Date().getTime()); - String newExternalId = Utils.randomStringGenerator("newID_", 7, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - int newStaffId = StaffHelper.createStaff(requestSpec, responseSpec); - int[] associateGroupMembers = generateGroupMembers(2, officeId); - - int[] associateResponse = CenterHelper.associateGroups(resourceId, associateGroupMembers, requestSpec, responseSpec); - Arrays.sort(associateResponse); - Arrays.sort(associateGroupMembers); - Assert.assertArrayEquals(associateResponse, associateGroupMembers); - - int[] newGroupMembers = new int[5]; - for (int i = 0; i < 5; i++) { - if (i < 3) { - newGroupMembers[i] = groupMembers[i]; - } else { - newGroupMembers[i] = associateGroupMembers[i % 3]; - } - } - - HashMap request = new HashMap(); - request.put("name", newName); - request.put("externalId", newExternalId); - request.put("staffId", newStaffId); - HashMap response = CenterHelper.updateCenter(resourceId, request, requestSpec, responseSpec); - Assert.assertNotNull(response); - Assert.assertEquals(newName, response.get("name")); - Assert.assertEquals(newExternalId, response.get("externalId")); - Assert.assertEquals(newStaffId, response.get("staffId")); - - CenterDomain center = CenterHelper.retrieveByID(resourceId, requestSpec, responseSpec); - Assert.assertNotNull(center); - Assert.assertEquals(newName, center.getName()); - Assert.assertEquals(newExternalId, center.getExternalId()); - Assert.assertEquals((Integer)newStaffId, center.getStaffId()); - Assert.assertArrayEquals(newGroupMembers, center.getGroupMembers()); - } - - @Test - public void testCenterDeletion() { - int officeId = new OfficeHelper(requestSpec, responseSpec).createOffice("01 July 2007"); - String name = "TestBasicCreation" + new Timestamp(new java.util.Date().getTime()); - int resourceId = CenterHelper.createCenter(name, officeId, requestSpec, responseSpec); - - CenterHelper.deleteCenter(resourceId, requestSpec, responseSpec); - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(404).build(); - CenterDomain center = CenterHelper.retrieveByID(resourceId, requestSpec, responseSpec); - Assert.assertNotNull(center); - } - - private int[] generateGroupMembers(int size, int officeId) { - int[] groupMembers = new int[size]; - for (int i = 0; i < groupMembers.length; i++) { - final HashMap map = new HashMap<>(); - map.put("officeId", "" + officeId); - map.put("name", Utils.randomStringGenerator("Group_Name_", 5)); - map.put("externalId", Utils.randomStringGenerator("ID_", 7, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")); - map.put("dateFormat", "dd MMMM yyyy"); - map.put("locale", "en"); - map.put("active", "true"); - map.put("activationDate", "04 March 2011"); - - groupMembers[i] = Utils.performServerPost(requestSpec, responseSpec, "/fineract-provider/api/v1/groups?" - + Utils.TENANT_IDENTIFIER, new Gson().toJson(map), "groupId"); - } - return groupMembers; - } - - @Test - public void testStaffAssignmentDuringCenterCreation() { - - Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); - System.out.println("--------------creating first staff with id-------------" + staffId); - Assert.assertNotNull(staffId); - - int centerWithStaffId = CenterHelper.createCenterWithStaffId(this.requestSpec, this.responseSpec, staffId); - CenterDomain center = CenterHelper.retrieveByID(centerWithStaffId, requestSpec, responseSpec); - Assert.assertNotNull(center); - Assert.assertTrue(center.getId() == centerWithStaffId); - Assert.assertTrue(center.getStaffId() == staffId); - Assert.assertTrue(center.isActive() == true); - } - - @Test - public void testAssignStaffToCenter() { - Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); - System.out.println("--------------creating first staff with id-------------" + staffId); - Assert.assertNotNull(staffId); - - Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec); - CenterHelper.verifyCenterCreatedOnServer(this.requestSpec, this.responseSpec, groupID); - - HashMap assignStaffToCenterResponseMap = (HashMap) CenterHelper.assignStaff(this.requestSpec, this.responseSpec, groupID.toString(), - staffId.longValue()); - assertEquals("Verify assigned staff id is the same as id sent", assignStaffToCenterResponseMap.get("staffId"), staffId); - - CenterDomain center = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); - Assert.assertNotNull(center); - Assert.assertTrue(center.getId() == groupID); - Assert.assertTrue(center.getStaffId() == staffId); - - } - - @Test - public void testUnassignStaffToCenter() { - Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec); - System.out.println("--------------creating first staff with id-------------" + staffId); - Assert.assertNotNull(staffId); - - Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec); - CenterHelper.verifyCenterCreatedOnServer(this.requestSpec, this.responseSpec, groupID); - - HashMap assignStaffToCenterResponseMap = (HashMap) CenterHelper.assignStaff(this.requestSpec, this.responseSpec, groupID.toString(), - staffId.longValue()); - assertEquals("Verify assigned staff id is the same as id sent", assignStaffToCenterResponseMap.get("staffId"), staffId); - CenterDomain centerWithStaffAssigned = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); - Assert.assertNotNull(centerWithStaffAssigned); - Assert.assertTrue(centerWithStaffAssigned.getId() == groupID); - Assert.assertTrue(centerWithStaffAssigned.getStaffId() == staffId); - - HashMap unassignStaffToCenterResponseMap = (HashMap) CenterHelper.unassignStaff(this.requestSpec, this.responseSpec, groupID.toString(), - staffId.longValue()); - assertEquals("Verify staffId is null after unassigning ", unassignStaffToCenterResponseMap.get("staffId"), null); - CenterDomain centerWithStaffUnssigned = CenterHelper.retrieveByID(groupID, requestSpec, responseSpec); - Assert.assertNotNull(centerWithStaffUnssigned); - Assert.assertTrue(centerWithStaffUnssigned.getId() == groupID); - Assert.assertTrue(centerWithStaffUnssigned.getStaffId() == null); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ChargesTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ChargesTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ChargesTest.java deleted file mode 100644 index d441401..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ChargesTest.java +++ /dev/null @@ -1,326 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.integrationtests; - -import java.util.ArrayList; -import java.util.HashMap; - -import org.apache.fineract.integrationtests.common.Utils; -import org.apache.fineract.integrationtests.common.charges.ChargesHelper; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.jayway.restassured.builder.RequestSpecBuilder; -import com.jayway.restassured.builder.ResponseSpecBuilder; -import com.jayway.restassured.http.ContentType; -import com.jayway.restassured.specification.RequestSpecification; -import com.jayway.restassured.specification.ResponseSpecification; - -@SuppressWarnings({ "rawtypes" }) -public class ChargesTest { - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - - @Before - public void setup() { - Utils.initializeRESTAssured(); - this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build(); - this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); - this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); - } - - @Test - public void testChargesForLoans() { - - // Retrieving all Charges - ArrayList allChargesData = ChargesHelper.getCharges(this.requestSpec, this.responseSpec); - Assert.assertNotNull(allChargesData); - - // Testing Creation, Updation and Deletion of Disbursement Charge - final Integer disbursementChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getLoanDisbursementJSON()); - Assert.assertNotNull(disbursementChargeId); - - // Updating Charge Amount - HashMap changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, disbursementChargeId, - ChargesHelper.getModifyChargeJSON()); - - HashMap chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, disbursementChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, disbursementChargeId, - ChargesHelper.getModifyChargeAsPecentageAmountJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, disbursementChargeId); - - HashMap chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargePaymentMode"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargePaymentMode")); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, disbursementChargeId, - ChargesHelper.getModifyChargeAsPecentageLoanAmountWithInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, disbursementChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, disbursementChargeId, - ChargesHelper.getModifyChargeAsPercentageInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, disbursementChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - Integer chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, disbursementChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", disbursementChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Specified due date Charge - final Integer specifiedDueDateChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getLoanSpecifiedDueDateJSON()); - Assert.assertNotNull(specifiedDueDateChargeId); - - // Updating Charge Amount - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, specifiedDueDateChargeId, - ChargesHelper.getModifyChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, specifiedDueDateChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, specifiedDueDateChargeId, - ChargesHelper.getModifyChargeAsPecentageAmountJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, specifiedDueDateChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargePaymentMode"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargePaymentMode")); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, specifiedDueDateChargeId, - ChargesHelper.getModifyChargeAsPecentageLoanAmountWithInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, specifiedDueDateChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, specifiedDueDateChargeId, - ChargesHelper.getModifyChargeAsPercentageInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, specifiedDueDateChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, specifiedDueDateChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", specifiedDueDateChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Installment Fee Charge - final Integer installmentFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getLoanInstallmentFeeJSON()); - - // Updating Charge Amount - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, installmentFeeChargeId, - ChargesHelper.getModifyChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, installmentFeeChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, installmentFeeChargeId, - ChargesHelper.getModifyChargeAsPecentageAmountJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, installmentFeeChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargePaymentMode"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargePaymentMode")); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, installmentFeeChargeId, - ChargesHelper.getModifyChargeAsPecentageLoanAmountWithInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, installmentFeeChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, installmentFeeChargeId, - ChargesHelper.getModifyChargeAsPercentageInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, installmentFeeChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, installmentFeeChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", installmentFeeChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Overdue Installment Fee - // Charge - final Integer overdueFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getLoanOverdueFeeJSON()); - Assert.assertNotNull(overdueFeeChargeId); - - // Updating Charge Amount - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, overdueFeeChargeId, ChargesHelper.getModifyChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdueFeeChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, overdueFeeChargeId, - ChargesHelper.getModifyChargeAsPecentageAmountJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdueFeeChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargePaymentMode"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargePaymentMode")); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, overdueFeeChargeId, - ChargesHelper.getModifyChargeAsPecentageLoanAmountWithInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdueFeeChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, overdueFeeChargeId, - ChargesHelper.getModifyChargeAsPercentageInterestJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdueFeeChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, overdueFeeChargeId, - ChargesHelper.getModifyChargeFeeFrequencyAsYearsJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdueFeeChargeId); - - chargeChangedData = (HashMap) chargeDataAfterChanges.get("feeFrequency"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("feeFrequency")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, overdueFeeChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", overdueFeeChargeId, chargeIdAfterDeletion); - } - - @Test - public void testChargesForSavings() { - - // Testing Creation, Updation and Deletion of Specified due date Charge - final Integer specifiedDueDateChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsSpecifiedDueDateJSON()); - Assert.assertNotNull(specifiedDueDateChargeId); - - // Updating Charge Amount - HashMap changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, specifiedDueDateChargeId, - ChargesHelper.getModifyChargeJSON()); - - HashMap chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, specifiedDueDateChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - Integer chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, specifiedDueDateChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", specifiedDueDateChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Savings Activation Charge - final Integer savingsActivationChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsActivationFeeJSON()); - Assert.assertNotNull(savingsActivationChargeId); - - // Updating Charge Amount - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, savingsActivationChargeId, - ChargesHelper.getModifyChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, savingsActivationChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, savingsActivationChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", savingsActivationChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Charge for Withdrawal Fee - final Integer withdrawalFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsWithdrawalFeeJSON()); - Assert.assertNotNull(withdrawalFeeChargeId); - - // Updating Charge-Calculation-Type to Withdrawal-Fee - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, withdrawalFeeChargeId, - ChargesHelper.getModifyWithdrawalFeeSavingsChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, withdrawalFeeChargeId); - - HashMap chargeChangedData = (HashMap) chargeDataAfterChanges.get("chargeCalculationType"); - Assert.assertEquals("Verifying Charge after Modification", chargeChangedData.get("id"), changes.get("chargeCalculationType")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, withdrawalFeeChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", withdrawalFeeChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Charge for Annual Fee - final Integer annualFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsAnnualFeeJSON()); - Assert.assertNotNull(annualFeeChargeId); - - // Updating Charge Amount - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, annualFeeChargeId, ChargesHelper.getModifyChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, annualFeeChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, annualFeeChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", annualFeeChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Charge for Monthly Fee - final Integer monthlyFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsMonthlyFeeJSON()); - Assert.assertNotNull(monthlyFeeChargeId); - - // Updating Charge Amount - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, monthlyFeeChargeId, ChargesHelper.getModifyChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, monthlyFeeChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, monthlyFeeChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", monthlyFeeChargeId, chargeIdAfterDeletion); - - // Testing Creation, Updation and Deletion of Charge for Overdraft Fee - final Integer overdraftFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsOverdraftFeeJSON()); - Assert.assertNotNull(overdraftFeeChargeId); - - // Updating Charge Amount - changes = ChargesHelper.updateCharges(this.requestSpec, this.responseSpec, overdraftFeeChargeId, - ChargesHelper.getModifyChargeJSON()); - - chargeDataAfterChanges = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdraftFeeChargeId); - Assert.assertEquals("Verifying Charge after Modification", chargeDataAfterChanges.get("amount"), changes.get("amount")); - - chargeIdAfterDeletion = ChargesHelper.deleteCharge(this.responseSpec, this.requestSpec, overdraftFeeChargeId); - Assert.assertEquals("Verifying Charge ID after deletion", overdraftFeeChargeId, chargeIdAfterDeletion); - } -}