http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java deleted file mode 100644 index aa39e4e..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java +++ /dev/null @@ -1,154 +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.util.ArrayList; -import java.util.HashMap; -import java.util.Map.Entry; - -import org.apache.fineract.integrationtests.common.ClientHelper; -import org.apache.fineract.integrationtests.common.CommonConstants; -import org.apache.fineract.integrationtests.common.GlobalConfigurationHelper; -import org.apache.fineract.integrationtests.common.Utils; -import org.apache.fineract.integrationtests.common.savings.SavingsAccountHelper; -import org.apache.fineract.integrationtests.common.savings.SavingsProductHelper; -import org.apache.fineract.integrationtests.common.savings.SavingsStatusChecker; -import org.junit.After; -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", "unused", "unchecked" }) -public class FlexibleSavingsInterestPostingIntegrationTest { - - public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL"; - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - private SavingsProductHelper savingsProductHelper; - private SavingsAccountHelper savingsAccountHelper; - - @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(); - this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - this.savingsProductHelper = new SavingsProductHelper(); - } - - @Test - public void testSavingsInterestPostingAtPeriodEnd() { - // client activation, savings activation and 1st transaction date - final String startDate = "01 December 2013"; - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, startDate); - Assert.assertNotNull(clientID); - - // Configuring global config flags - configureInterestPosting(true, 4); - - final Integer savingsId = createSavingsAccount(clientID, startDate); - - Integer depositTransactionId = (Integer) this.savingsAccountHelper.depositToSavingsAccount(savingsId, "1000", startDate, - CommonConstants.RESPONSE_RESOURCE_ID); - - /*** - * Perform Post interest transaction and verify the posted transaction - * date - */ - this.savingsAccountHelper.postInterestForSavings(savingsId); - HashMap accountDetails = this.savingsAccountHelper.getSavingsDetails(savingsId); - ArrayList<HashMap<String, Object>> transactions = (ArrayList<HashMap<String, Object>>) accountDetails.get("transactions"); - HashMap<String, Object> interestPostingTransaction = transactions.get(transactions.size() - 2); - for (Entry<String, Object> entry : interestPostingTransaction.entrySet()) - System.out.println(entry.getKey() + "-" + entry.getValue().toString()); - // 1st Dec 13 to 31st March 14 - 365 days, daily compounding using daily - // balance - // 33.7016 obtained from formula in excel provided by Subramanya - assertEquals("Equality check for interest posted amount", "33.7016", interestPostingTransaction.get("amount").toString()); - assertEquals("Date check for Interest Posting transaction", "[2014, 3, 31]", interestPostingTransaction.get("date").toString()); - - } - - private Integer createSavingsAccount(final Integer clientID, final String startDate) { - final Integer savingsProductID = createSavingsProduct(); - Assert.assertNotNull(savingsProductID); - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplicationOnDate(clientID, savingsProductID, - ACCOUNT_TYPE_INDIVIDUAL, startDate); - Assert.assertNotNull(savingsId); - HashMap savingsStatusHashMap = this.savingsAccountHelper.approveSavingsOnDate(savingsId, startDate); - SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap); - savingsStatusHashMap = this.savingsAccountHelper.activateSavingsAccount(savingsId, startDate); - SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap); - return savingsId; - } - - private void configureInterestPosting(final Boolean periodEndEnable, final Integer financialYearBeginningMonth) { - final ArrayList<HashMap> globalConfig = GlobalConfigurationHelper.getAllGlobalConfigurations(this.requestSpec, this.responseSpec); - Assert.assertNotNull(globalConfig); - - // Updating flag for interest posting at period end - Integer periodEndConfigId = (Integer) globalConfig.get(10).get("id"); - Assert.assertNotNull(periodEndConfigId); - - HashMap periodEndConfigData = GlobalConfigurationHelper.getGlobalConfigurationById(this.requestSpec, this.responseSpec, - periodEndConfigId.toString()); - Assert.assertNotNull(periodEndConfigData); - - Boolean enabled = (Boolean) globalConfig.get(10).get("enabled"); - - if (enabled != periodEndEnable) - periodEndConfigId = GlobalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(this.requestSpec, this.responseSpec, - periodEndConfigId.toString(), periodEndEnable); - - // Updating value for financial year beginning month - Integer financialYearBeginningConfigId = (Integer) globalConfig.get(11).get("id"); - Assert.assertNotNull(financialYearBeginningConfigId); - - HashMap financialYearBeginningConfigData = GlobalConfigurationHelper.getGlobalConfigurationById(this.requestSpec, - this.responseSpec, financialYearBeginningConfigId.toString()); - Assert.assertNotNull(financialYearBeginningConfigData); - - financialYearBeginningConfigId = GlobalConfigurationHelper.updateValueForGlobalConfiguration(this.requestSpec, this.responseSpec, - financialYearBeginningConfigId.toString(), financialYearBeginningMonth.toString()); - Assert.assertNotNull(financialYearBeginningConfigId); - } - - private Integer createSavingsProduct() { - final String savingsProductJSON = this.savingsProductHelper.withInterestCompoundingPeriodTypeAsDaily() - .withInterestPostingPeriodTypeAsAnnual().withInterestCalculationPeriodTypeAsDailyBalance().build(); - return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec); - } - - // Reset configuration fields - @After - public void tearDown() { - configureInterestPosting(false, 1); - } - -}
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FundsIntegrationTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FundsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FundsIntegrationTest.java deleted file mode 100644 index 0c2deeb..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FundsIntegrationTest.java +++ /dev/null @@ -1,347 +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.hamcrest.Matchers.*; -import static org.junit.Assert.assertEquals; - -import com.google.gson.Gson; - -import org.apache.fineract.integrationtests.common.Utils; -import org.apache.fineract.integrationtests.common.funds.FundsHelper; -import org.apache.fineract.integrationtests.common.funds.FundsResourceHandler; -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; - -import java.util.*; - -/** - * Funds Integration Test for checking Funds Application. - */ -public class FundsIntegrationTest { - - private ResponseSpecification statusOkResponseSpec; - 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.statusOkResponseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); - } - - @Test - public void testCreateFund() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - } - - @Test - public void testCreateFundWithEmptyName() { - FundsHelper fh = FundsHelper - .create(null) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(400).build(); - final Long fundID = createFund(jsonData, this.requestSpec, responseSpec); - Assert.assertNull(fundID); - } - - @Test - public void testCreateFundWithEmptyExternalId() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(null) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - } - - @Test - public void testCreateFundWithDuplicateName() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - FundsHelper fh2 = FundsHelper - .create(fh.getName()) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - jsonData = fh2.toJSON(); - - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(403).build(); - final Long fundID2 = createFund(jsonData, this.requestSpec, responseSpec); - Assert.assertNull(fundID2); - } - - @Test - public void testCreateFundWithDuplicateExternalId() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - FundsHelper fh2 = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(fh.getExternalId()) - .build(); - jsonData = fh2.toJSON(); - - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(403).build(); - final Long fundID2 = createFund(jsonData, this.requestSpec, responseSpec); - Assert.assertNull(fundID2); - } - - @Test - public void testCreateFundWithInvalidName() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 120)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(400).build(); - final Long fundID = createFund(jsonData, this.requestSpec, responseSpec); - Assert.assertNull(fundID); - } - - @Test - public void testCreateFundWithInvalidExternalId() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 120)) - .build(); - String jsonData = fh.toJSON(); - - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(400).build(); - final Long fundID = createFund(jsonData, this.requestSpec, responseSpec); - Assert.assertNull(fundID); - } - - @Test - public void testRetrieveFund() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - jsonData = FundsResourceHandler.retrieveFund(fundID, this.requestSpec, this.statusOkResponseSpec); - FundsHelper fh2 = FundsHelper.fromJSON(jsonData); - - assertEquals(fh.getName(), fh2.getName()); - } - - @Test - public void testRetrieveAllFunds() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - List<FundsHelper> fhList = FundsResourceHandler.retrieveAllFunds(this.requestSpec, this.statusOkResponseSpec); - - Assert.assertNotNull(fhList); - Assert.assertThat(fhList.size(), greaterThanOrEqualTo(1)); - Assert.assertThat(fhList, hasItem(fh)); - } - - @Test - public void testRetrieveUnknownFund() { - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(404).build(); - String jsonData = FundsResourceHandler.retrieveFund(Long.MAX_VALUE, this.requestSpec, responseSpec); - HashMap<String, String> map = new Gson().fromJson(jsonData, HashMap.class); - assertEquals(map.get("userMessageGlobalisationCode"), "error.msg.resource.not.found"); - } - - @Test - public void testUpdateFund() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - String newName = Utils.randomNameGenerator("", 10); - String newExternalId = Utils.randomNameGenerator("fund-", 5); - FundsHelper fh2 = FundsResourceHandler.updateFund(fundID, newName, newExternalId, this.requestSpec, this.statusOkResponseSpec); - - Assert.assertEquals(newName, fh2.getName()); - Assert.assertEquals(newExternalId, fh2.getExternalId()); - } - - @Test - public void testUpdateUnknownFund() { - String newName = Utils.randomNameGenerator("", 10); - String newExternalId = Utils.randomNameGenerator("fund-", 5); - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(404).build(); - FundsHelper fh = FundsResourceHandler.updateFund(Long.MAX_VALUE, newName, newExternalId, this.requestSpec, - responseSpec); - Assert.assertNull(fh); - } - - @Test - public void testUpdateFundWithInvalidNewName() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - String newName = Utils.randomNameGenerator("", 120); - String newExternalId = Utils.randomNameGenerator("fund-", 5); - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(400).build(); - FundsHelper fh2 = FundsResourceHandler.updateFund(fundID, newName, newExternalId, this.requestSpec, - responseSpec); - - Assert.assertNull(fh2); - } - - @Test - public void testUpdateFundWithNewExternalId() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - String newExternalId = Utils.randomNameGenerator("fund-", 5); - FundsHelper fh2 = FundsResourceHandler.updateFund(fundID, null, newExternalId, this.requestSpec, this.statusOkResponseSpec); - - Assert.assertEquals(newExternalId, fh2.getExternalId()); - } - - @Test - public void testUpdateFundWithInvalidNewExternalId() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - String newName = Utils.randomNameGenerator("", 10); - String newExternalId = Utils.randomNameGenerator("fund-", 120); - ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(400).build(); - FundsHelper fh2 = FundsResourceHandler.updateFund(fundID, newName, newExternalId, this.requestSpec, - responseSpec); - - Assert.assertNull(fh2); - } - - @Test - public void testUpdateFundWithNewName() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - String newName = Utils.randomNameGenerator("", 10); - FundsHelper fh2 = FundsResourceHandler.updateFund(fundID, newName, null, this.requestSpec, this.statusOkResponseSpec); - - Assert.assertEquals(newName, fh2.getName()); - } - - @Test - public void testUpdateFundWithEmptyParams() { - FundsHelper fh = FundsHelper - .create(Utils.randomNameGenerator("", 10)) - .externalId(Utils.randomNameGenerator("fund-", 5)) - .build(); - String jsonData = fh.toJSON(); - - final Long fundID = createFund(jsonData, this.requestSpec, this.statusOkResponseSpec); - Assert.assertNotNull(fundID); - - FundsHelper fh2 = FundsResourceHandler.updateFund(fundID, null, null, this.requestSpec, this.statusOkResponseSpec); - - Assert.assertNull(fh2.getName()); - Assert.assertNull(fh2.getExternalId()); - - // assert that there was no change in - // the name and external ID of the fund - jsonData = FundsResourceHandler.retrieveFund(fundID, this.requestSpec, this.statusOkResponseSpec); - FundsHelper fh3 = new Gson().fromJson(jsonData, FundsHelper.class); - - Assert.assertEquals(fh.getName(), fh3.getName()); - Assert.assertEquals(fh.getExternalId(), fh3.getExternalId()); - } - - private Long createFund(final String fundJSON, - final RequestSpecification requestSpec, - final ResponseSpecification responseSpec) { - String fundId = String.valueOf(FundsResourceHandler.createFund(fundJSON, requestSpec, responseSpec)); - if (fundId.equals("null")) { - // Invalid JSON data parameters - return null; - } - - return new Long(fundId); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java deleted file mode 100644 index b8d42d4..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java +++ /dev/null @@ -1,221 +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.CommonConstants; -import org.apache.fineract.integrationtests.common.GlobalConfigurationHelper; -import org.apache.fineract.integrationtests.common.Utils; -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", "unchecked", "static-access" }) -public class GlobalConfigurationTest { - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - private GlobalConfigurationHelper globalConfigurationHelper; - private ResponseSpecification httpStatusForidden; - - @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(); - this.httpStatusForidden = new ResponseSpecBuilder().expectStatusCode(403).build(); - } - - @Test - public void testGlobalConfigurations() { - this.globalConfigurationHelper = new GlobalConfigurationHelper(this.requestSpec, this.responseSpec); - - // Retrieving All Global Configuration details - final ArrayList<HashMap> globalConfig = this.globalConfigurationHelper.getAllGlobalConfigurations(this.requestSpec, - this.responseSpec); - Assert.assertNotNull(globalConfig); - - String configName = "penalty-wait-period"; - for (Integer configIndex = 0; configIndex < (globalConfig.size() - 1); configIndex++) { - if (globalConfig.get(configIndex).get("name").equals(configName)) { - Integer configId = (Integer) globalConfig.get(configIndex).get("id"); - Assert.assertNotNull(configId); - - HashMap configDataBefore = this.globalConfigurationHelper.getGlobalConfigurationById(this.requestSpec, this.responseSpec, - configId.toString()); - Assert.assertNotNull(configDataBefore); - - Integer value = (Integer) configDataBefore.get("value") + 1; - - // Updating Value for penalty-wait-period Global Configuration - configId = this.globalConfigurationHelper.updateValueForGlobalConfiguration(this.requestSpec, this.responseSpec, - configId.toString(), value.toString()); - Assert.assertNotNull(configId); - - HashMap configDataAfter = this.globalConfigurationHelper.getGlobalConfigurationById(this.requestSpec, this.responseSpec, - configId.toString()); - - // Verifying Value for penalty-wait-period after Updation - Assert.assertEquals("Verifying Global Config Value after Updation", value, configDataAfter.get("value")); - - // Updating Enabled Flag for penalty-wait-period Global - // Configuration - Boolean enabled = (Boolean) globalConfig.get(configIndex).get("enabled"); - - if (enabled == true) { - enabled = false; - } else { - enabled = true; - } - - configId = this.globalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(this.requestSpec, this.responseSpec, - configId.toString(), enabled); - - configDataAfter = this.globalConfigurationHelper.getGlobalConfigurationById(this.requestSpec, this.responseSpec, - configId.toString()); - - // Verifying Enabled Flag for penalty-wait-period after Updation - Assert.assertEquals("Verifying Enabled Flag Global Config after Updation", enabled, configDataAfter.get("enabled")); - break; - } - } - } - - @Test - public void testGlobalConfigurationIsCacheEnabled() { - this.globalConfigurationHelper = new GlobalConfigurationHelper(this.requestSpec, this.responseSpec); - - // Retrieving Is Cache Enabled Global Configuration details - ArrayList<HashMap> isCacheGlobalConfig = this.globalConfigurationHelper.getGlobalConfigurationIsCacheEnabled(this.requestSpec, - this.responseSpec); - Assert.assertNotNull(isCacheGlobalConfig); - - for (Integer cacheType = 0; cacheType <= ((isCacheGlobalConfig.size()) - 1); cacheType++) { - - // Retrieving Is Cache Enabled Global Configuration details - isCacheGlobalConfig = this.globalConfigurationHelper.getGlobalConfigurationIsCacheEnabled(this.requestSpec, this.responseSpec); - Assert.assertNotNull(isCacheGlobalConfig); - - HashMap cacheTypeAsHashMap = (HashMap) isCacheGlobalConfig.get(cacheType).get("cacheType"); - Integer cacheTypeId = (Integer) cacheTypeAsHashMap.get("id"); - String cacheTypeValue = (String) cacheTypeAsHashMap.get("value"); - Boolean enabled = (Boolean) isCacheGlobalConfig.get(cacheType).get("enabled"); - - if (cacheTypeValue.compareTo("No cache") == 0 && enabled == true) { - cacheTypeId += 1; - } else if (cacheTypeValue.compareTo("Single node") == 0 && enabled == true) { - cacheTypeId -= 1; - } - - HashMap changes = this.globalConfigurationHelper.updateIsCacheEnabledForGlobalConfiguration(this.requestSpec, - this.responseSpec, cacheTypeId.toString()); - Assert.assertEquals("Verifying Is Cache Enabled Global Config after Updation", cacheTypeId, changes.get("cacheType")); - } - } - - @Test - public void testGlobalConfigForcePasswordResetDays() { - - // Retrieving All Global Configuration details - final ArrayList<HashMap> globalConfig = this.globalConfigurationHelper - .getAllGlobalConfigurations(this.requestSpec, this.responseSpec); - Assert.assertNotNull(globalConfig); - - String configName = "force-password-reset-days"; - String newValue = "0"; - String newBooleanValue = "true"; - - for (Integer configIndex = 0; configIndex < (globalConfig.size() - 1); configIndex++) { - if (globalConfig.get(configIndex).get("name").equals(configName)) { - Integer configId = (Integer) globalConfig.get(configIndex).get( - "id"); - Assert.assertNotNull(configId); - - /* - * Update force-password-reset-days with value as 0 and Enable - * as true - failure case - */ - ArrayList error = (ArrayList) this.globalConfigurationHelper - .updatePasswordResetDaysForGlobalConfiguration( - this.requestSpec, this.httpStatusForidden, - configId, newValue, newBooleanValue, - CommonConstants.RESPONSE_ERROR); - HashMap hash = (HashMap) error.get(0); - - Assert.assertEquals( - "Force Password Reset days value must be greater than zero.", - "error.msg.password.reset.days.value.must.be.greater.than.zero", - hash.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - /* - * Update force-password-reset-days with value as 50 and Enable - * as true - success case - */ - final HashMap updateSuccess = (HashMap) this.globalConfigurationHelper - .updatePasswordResetDaysForGlobalConfiguration( - this.requestSpec, this.responseSpec, configId, - "50", newBooleanValue, "changes"); - Assert.assertNotNull(updateSuccess); - - /* Update with value as 0 and Enable as false - success case */ - final HashMap updateSuccess1 = (HashMap) this.globalConfigurationHelper - .updatePasswordResetDaysForGlobalConfiguration( - this.requestSpec, this.responseSpec, configId, - newValue, "false", "changes"); - Assert.assertNotNull(updateSuccess1); - - /* Update without sending value and Enable as true - failure case*/ - ArrayList failure = (ArrayList) this.globalConfigurationHelper - .updatePasswordResetDaysForGlobalConfiguration( - this.requestSpec, this.httpStatusForidden, configId, - null, newBooleanValue, CommonConstants.RESPONSE_ERROR); - HashMap failureHash = (HashMap) failure.get(0); - Assert.assertEquals( - "Force Password Reset days value must be greater than zero.", - "error.msg.password.reset.days.value.must.be.greater.than.zero", - failureHash.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - break; - } - } - /* Update other global configuration property */ - String otherConfigName = "maker-checker"; - for (Integer configIndex = 0; configIndex < (globalConfig.size() - 1); configIndex++) { - if (globalConfig.get(configIndex).get("name") - .equals(otherConfigName)) { - String configId = (globalConfig.get(configIndex).get("id")) - .toString(); - Integer updateConfigId = this.globalConfigurationHelper - .updateValueForGlobalConfiguration(this.requestSpec, - this.responseSpec, configId, newValue); - Assert.assertNotNull(updateConfigId); - break; - } - } - } -} \ 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/GroupLoanIntegrationTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupLoanIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupLoanIntegrationTest.java deleted file mode 100644 index e6f6227..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupLoanIntegrationTest.java +++ /dev/null @@ -1,134 +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.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; - -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.LoanApplicationTestBuilder; -import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder; -import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper; -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; - -/** - * Group Loan Integration Test for checking Loan Application Repayment Schedule. - */ -@SuppressWarnings({ "rawtypes", "unchecked" }) -public class GroupLoanIntegrationTest { - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - private LoanTransactionHelper loanTransactionHelper; - - @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 checkGroupLoanCreateAndDisburseFlow() { - this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - - final Integer loanProductID = createLoanProduct(); - final Integer loanID = applyForLoanApplication(groupID, loanProductID); - final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, - loanID); - verifyLoanRepaymentSchedule(loanSchedule); - - } - - private Integer createLoanProduct() { - System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------"); - final String loanProductJSON = new LoanProductTestBuilder() // - .withPrincipal("12,000.00") // - .withNumberOfRepayments("4") // - .withRepaymentAfterEvery("1") // - .withRepaymentTypeAsMonth() // - .withinterestRatePerPeriod("1") // - .withInterestRateFrequencyTypeAsMonths() // - .withAmortizationTypeAsEqualInstallments() // - .withInterestTypeAsDecliningBalance() // - .build(null); - return this.loanTransactionHelper.getLoanProductId(loanProductJSON); - } - - private Integer applyForLoanApplication(final Integer groupID, final Integer loanProductID) { - System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------"); - final String loanApplicationJSON = new LoanApplicationTestBuilder() // - .withPrincipal("12,000.00") // - .withLoanTermFrequency("4") // - .withLoanTermFrequencyAsMonths() // - .withNumberOfRepayments("4") // - .withRepaymentEveryAfter("1") // - .withRepaymentFrequencyTypeAsMonths() // - .withInterestRatePerPeriod("2") // - .withAmortizationTypeAsEqualInstallments() // - .withInterestTypeAsDecliningBalance() // - .withInterestCalculationPeriodTypeSameAsRepaymentPeriod() // - .withExpectedDisbursementDate("20 September 2011") // - .withSubmittedOnDate("20 September 2011") // - .withLoanType("group").build(groupID.toString(), loanProductID.toString(), null); - System.out.println(loanApplicationJSON); - return this.loanTransactionHelper.getLoanId(loanApplicationJSON); - } - - private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule) { - System.out.println("--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------"); - - assertEquals("Checking for Due Date for 1st Month", new ArrayList<>(Arrays.asList(2011, 10, 20)), - loanSchedule.get(1).get("dueDate")); - assertEquals("Checking for Principal Due for 1st Month", new Float("2911.49"), loanSchedule.get(1).get("principalOriginalDue")); - assertEquals("Checking for Interest Due for 1st Month", new Float("240.00"), loanSchedule.get(1).get("interestOriginalDue")); - - assertEquals("Checking for Due Date for 2nd Month", new ArrayList<>(Arrays.asList(2011, 11, 20)), - loanSchedule.get(2).get("dueDate")); - assertEquals("Checking for Principal Due for 2nd Month", new Float("2969.72"), loanSchedule.get(2).get("principalDue")); - assertEquals("Checking for Interest Due for 2nd Month", new Float("181.77"), loanSchedule.get(2).get("interestOriginalDue")); - - assertEquals("Checking for Due Date for 3rd Month", new ArrayList<>(Arrays.asList(2011, 12, 20)), - loanSchedule.get(3).get("dueDate")); - assertEquals("Checking for Principal Due for 3rd Month", new Float("3029.11"), loanSchedule.get(3).get("principalDue")); - assertEquals("Checking for Interest Due for 3rd Month", new Float("122.38"), loanSchedule.get(3).get("interestOriginalDue")); - - assertEquals("Checking for Due Date for 4th Month", new ArrayList<>(Arrays.asList(2012, 1, 20)), - loanSchedule.get(4).get("dueDate")); - assertEquals("Checking for Principal Due for 4th Month", new Float("3089.68"), loanSchedule.get(4).get("principalDue")); - assertEquals("Checking for Interest Due for 4th Month", new Float("61.79"), loanSchedule.get(4).get("interestOriginalDue")); - } -} \ 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/GroupSavingsIntegrationTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupSavingsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupSavingsIntegrationTest.java deleted file mode 100644 index 1c9ffee..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupSavingsIntegrationTest.java +++ /dev/null @@ -1,553 +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.math.BigDecimal; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; - -import org.apache.fineract.integrationtests.common.ClientHelper; -import org.apache.fineract.integrationtests.common.CommonConstants; -import org.apache.fineract.integrationtests.common.GroupHelper; -import org.apache.fineract.integrationtests.common.Utils; -import org.apache.fineract.integrationtests.common.charges.ChargesHelper; -import org.apache.fineract.integrationtests.common.savings.SavingsAccountHelper; -import org.apache.fineract.integrationtests.common.savings.SavingsProductHelper; -import org.apache.fineract.integrationtests.common.savings.SavingsStatusChecker; -import org.joda.time.LocalDate; -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; - -/** - * Group Savings Integration Test for checking Savings Application. - */ -@SuppressWarnings({ "rawtypes", "unused" }) -public class GroupSavingsIntegrationTest { - - public static final String DEPOSIT_AMOUNT = "2000"; - public static final String WITHDRAW_AMOUNT = "1000"; - public static final String WITHDRAW_AMOUNT_ADJUSTED = "500"; - public static final String MINIMUM_OPENING_BALANCE = "1000.0"; - public static final String ACCOUNT_TYPE_GROUP = "GROUP"; - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - private SavingsAccountHelper savingsAccountHelper; - - @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 testSavingsAccount() { - this.savingsAccountHelper = new SavingsAccountHelper(requestSpec, responseSpec); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(clientID); - - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - Assert.assertNotNull(groupID); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - Assert.assertNotNull(groupID); - - final String minBalanceForInterestCalculation = null; - final String minRequiredBalance = null; - final String enforceMinRequiredBalance = "false"; - final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, - minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance); - Assert.assertNotNull(savingsProductID); - - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(groupID, savingsProductID, ACCOUNT_TYPE_GROUP); - Assert.assertNotNull(savingsId); - - HashMap modifications = this.savingsAccountHelper.updateSavingsAccount(groupID, savingsProductID, savingsId, ACCOUNT_TYPE_GROUP); - Assert.assertTrue(modifications.containsKey("submittedOnDate")); - - HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId); - SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId); - SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap); - - final HashMap summaryBefore = this.savingsAccountHelper.getSavingsSummary(savingsId); - this.savingsAccountHelper.calculateInterestForSavings(savingsId); - HashMap summary = this.savingsAccountHelper.getSavingsSummary(savingsId); - assertEquals(summaryBefore, summary); - - this.savingsAccountHelper.postInterestForSavings(savingsId); - summary = this.savingsAccountHelper.getSavingsSummary(savingsId); - Assert.assertFalse(summaryBefore.equals(summary)); - - final Object savingsInterest = this.savingsAccountHelper.getSavingsInterest(savingsId); - } - - @SuppressWarnings("unchecked") - @Test - public void testSavingsAccount_CLOSE_APPLICATION() { - this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - final ResponseSpecification errorResponse = new ResponseSpecBuilder().expectStatusCode(400).build(); - final SavingsAccountHelper validationErrorHelper = new SavingsAccountHelper(this.requestSpec, errorResponse); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(clientID); - - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - Assert.assertNotNull(groupID); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - Assert.assertNotNull(groupID); - - final String minBalanceForInterestCalculation = null; - final String minRequiredBalance = "1000.0"; - final String enforceMinRequiredBalance = "true"; - final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, - minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance); - Assert.assertNotNull(savingsProductID); - - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(groupID, savingsProductID, ACCOUNT_TYPE_GROUP); - Assert.assertNotNull(savingsId); - - HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId); - SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId); - SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap); - - DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US); - Calendar todaysDate = Calendar.getInstance(); - final String CLOSEDON_DATE = dateFormat.format(todaysDate.getTime()); - String withdrawBalance = "false"; - ArrayList<HashMap> savingsAccountErrorData = (ArrayList<HashMap>) validationErrorHelper.closeSavingsAccountAndGetBackRequiredField( - savingsId, withdrawBalance, CommonConstants.RESPONSE_ERROR, CLOSEDON_DATE); - assertEquals("validation.msg.savingsaccount.close.results.in.balance.not.zero", - savingsAccountErrorData.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - withdrawBalance = "true"; - savingsStatusHashMap = this.savingsAccountHelper.closeSavingsAccount(savingsId, withdrawBalance); - SavingsStatusChecker.verifySavingsAccountIsClosed(savingsStatusHashMap); - } - - @SuppressWarnings("unchecked") - @Test - public void testSavingsAccount_DELETE_APPLICATION() { - this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - - SavingsAccountHelper savingsAccountHelperValidationError = new SavingsAccountHelper(this.requestSpec, - new ResponseSpecBuilder().build()); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(clientID); - - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - Assert.assertNotNull(groupID); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - Assert.assertNotNull(groupID); - - final String minBalanceForInterestCalculation = null; - final String minRequiredBalance = null; - final String enforceMinRequiredBalance = "false"; - final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, - minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance); - Assert.assertNotNull(savingsProductID); - - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(groupID, savingsProductID, ACCOUNT_TYPE_GROUP); - Assert.assertNotNull(savingsId); - - HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId); - SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap); - - List<HashMap> error1 = (List<HashMap>) savingsAccountHelperValidationError.deleteSavingsApplication(savingsId, - CommonConstants.RESPONSE_ERROR); - assertEquals("validation.msg.savingsaccount.delete.not.in.submittedandpendingapproval.state", - error1.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - savingsStatusHashMap = this.savingsAccountHelper.undoApproval(savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - this.savingsAccountHelper.deleteSavingsApplication(savingsId, CommonConstants.RESPONSE_RESOURCE_ID); - - List<HashMap> error = savingsAccountHelperValidationError.getSavingsCollectionAttribute(savingsId, CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.saving.account.id.invalid", error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - } - - @SuppressWarnings("unchecked") - @Test - public void testSavingsAccount_REJECT_APPLICATION() { - - this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - - SavingsAccountHelper savingsAccountHelperValidationError = new SavingsAccountHelper(this.requestSpec, - new ResponseSpecBuilder().build()); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(clientID); - - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - Assert.assertNotNull(groupID); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - Assert.assertNotNull(groupID); - - final String minBalanceForInterestCalculation = null; - final String minRequiredBalance = null; - final String enforceMinRequiredBalance = "false"; - final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, - minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance); - Assert.assertNotNull(savingsProductID); - - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(groupID, savingsProductID, ACCOUNT_TYPE_GROUP); - Assert.assertNotNull(savingsId); - - HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId); - SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap); - - List<HashMap> error1 = savingsAccountHelperValidationError.rejectApplicationWithErrorCode(savingsId, - SavingsAccountHelper.CREATED_DATE_PLUS_ONE); - assertEquals("validation.msg.savingsaccount.reject.not.in.submittedandpendingapproval.state", - error1.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - savingsStatusHashMap = this.savingsAccountHelper.undoApproval(savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - error1 = savingsAccountHelperValidationError.rejectApplicationWithErrorCode(savingsId, SavingsAccountHelper.getFutureDate()); - assertEquals("validation.msg.savingsaccount.reject.cannot.be.a.future.date", - error1.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - error1 = savingsAccountHelperValidationError.rejectApplicationWithErrorCode(savingsId, SavingsAccountHelper.CREATED_DATE_MINUS_ONE); - assertEquals("validation.msg.savingsaccount.reject.cannot.be.before.submittal.date", - error1.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - savingsStatusHashMap = this.savingsAccountHelper.rejectApplication(savingsId); - SavingsStatusChecker.verifySavingsIsRejected(savingsStatusHashMap); - } - - @Test - public void testSavingsAccount_WITHDRAW_APPLICATION() { - - this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(clientID); - - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - Assert.assertNotNull(groupID); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - Assert.assertNotNull(groupID); - - final String minBalanceForInterestCalculation = null; - final String minRequiredBalance = null; - final String enforceMinRequiredBalance = "false"; - final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, - minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance); - Assert.assertNotNull(savingsProductID); - - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(groupID, savingsProductID, ACCOUNT_TYPE_GROUP); - Assert.assertNotNull(savingsId); - - HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.withdrawApplication(savingsId); - SavingsStatusChecker.verifySavingsIsWithdrawn(savingsStatusHashMap); - - } - - @SuppressWarnings("unchecked") - @Test - public void testSavingsAccountTransactions() { - this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - SavingsAccountHelper savingsAccountHelperValidationError = new SavingsAccountHelper(this.requestSpec, - new ResponseSpecBuilder().build()); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(clientID); - - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - Assert.assertNotNull(groupID); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - Assert.assertNotNull(groupID); - - final String minBalanceForInterestCalculation = null; - final String minRequiredBalance = null; - final String enforceMinRequiredBalance = "false"; - final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, - minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance); - Assert.assertNotNull(savingsProductID); - - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(groupID, savingsProductID, ACCOUNT_TYPE_GROUP); - Assert.assertNotNull(savingsId); - - HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId); - SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap); - - List<HashMap> error = (List) savingsAccountHelperValidationError.withdrawalFromSavingsAccount(savingsId, "100", - SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.savingsaccount.transaction.account.is.not.active", - error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - error = (List) savingsAccountHelperValidationError.depositToSavingsAccount(savingsId, "100", SavingsAccountHelper.TRANSACTION_DATE, - CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.savingsaccount.transaction.account.is.not.active", - error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId); - SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap); - - HashMap summary = this.savingsAccountHelper.getSavingsSummary(savingsId); - Float balance = new Float(MINIMUM_OPENING_BALANCE); - assertEquals("Verifying opening Balance", balance, summary.get("accountBalance")); - - Integer depositTransactionId = (Integer) this.savingsAccountHelper.depositToSavingsAccount(savingsId, DEPOSIT_AMOUNT, - SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_RESOURCE_ID); - HashMap depositTransaction = this.savingsAccountHelper.getSavingsTransaction(savingsId, depositTransactionId); - balance += new Float(DEPOSIT_AMOUNT); - assertEquals("Verifying Deposit Amount", new Float(DEPOSIT_AMOUNT), depositTransaction.get("amount")); - assertEquals("Verifying Balance after Deposit", balance, depositTransaction.get("runningBalance")); - - Integer withdrawTransactionId = (Integer) this.savingsAccountHelper.withdrawalFromSavingsAccount(savingsId, WITHDRAW_AMOUNT, - SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_RESOURCE_ID); - HashMap withdrawTransaction = this.savingsAccountHelper.getSavingsTransaction(savingsId, withdrawTransactionId); - balance -= new Float(WITHDRAW_AMOUNT); - assertEquals("Verifying Withdrawal Amount", new Float(WITHDRAW_AMOUNT), withdrawTransaction.get("amount")); - assertEquals("Verifying Balance after Withdrawal", balance, withdrawTransaction.get("runningBalance")); - - Integer newWithdrawTransactionId = this.savingsAccountHelper.updateSavingsAccountTransaction(savingsId, withdrawTransactionId, - WITHDRAW_AMOUNT_ADJUSTED); - HashMap newWithdrawTransaction = this.savingsAccountHelper.getSavingsTransaction(savingsId, newWithdrawTransactionId); - balance = balance + new Float(WITHDRAW_AMOUNT) - new Float(WITHDRAW_AMOUNT_ADJUSTED); - assertEquals("Verifying adjusted Amount", new Float(WITHDRAW_AMOUNT_ADJUSTED), newWithdrawTransaction.get("amount")); - assertEquals("Verifying Balance after adjust", balance, newWithdrawTransaction.get("runningBalance")); - summary = this.savingsAccountHelper.getSavingsSummary(savingsId); - assertEquals("Verifying Adjusted Balance", balance, summary.get("accountBalance")); - withdrawTransaction = this.savingsAccountHelper.getSavingsTransaction(savingsId, withdrawTransactionId); - Assert.assertTrue((Boolean) withdrawTransaction.get("reversed")); - - this.savingsAccountHelper.undoSavingsAccountTransaction(savingsId, newWithdrawTransactionId); - newWithdrawTransaction = this.savingsAccountHelper.getSavingsTransaction(savingsId, withdrawTransactionId); - Assert.assertTrue((Boolean) newWithdrawTransaction.get("reversed")); - summary = this.savingsAccountHelper.getSavingsSummary(savingsId); - balance += new Float(WITHDRAW_AMOUNT_ADJUSTED); - assertEquals("Verifying Balance After Undo Transaction", balance, summary.get("accountBalance")); - - error = (List) savingsAccountHelperValidationError.withdrawalFromSavingsAccount(savingsId, "5000", - SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.savingsaccount.transaction.insufficient.account.balance", - error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - error = (List) savingsAccountHelperValidationError.withdrawalFromSavingsAccount(savingsId, "5000", - SavingsAccountHelper.getFutureDate(), CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.savingsaccount.transaction.in.the.future", error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - error = (List) savingsAccountHelperValidationError.depositToSavingsAccount(savingsId, "5000", SavingsAccountHelper.getFutureDate(), - CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.savingsaccount.transaction.in.the.future", error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - error = (List) savingsAccountHelperValidationError.withdrawalFromSavingsAccount(savingsId, "5000", - SavingsAccountHelper.CREATED_DATE_MINUS_ONE, CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.savingsaccount.transaction.before.activation.date", - error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - error = (List) savingsAccountHelperValidationError.depositToSavingsAccount(savingsId, "5000", - SavingsAccountHelper.CREATED_DATE_MINUS_ONE, CommonConstants.RESPONSE_ERROR); - assertEquals("error.msg.savingsaccount.transaction.before.activation.date", - error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - - } - - @SuppressWarnings("unchecked") - @Test - public void testSavingsAccountCharges() { - this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(clientID); - - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec, true); - Assert.assertNotNull(groupID); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - Assert.assertNotNull(groupID); - - final String minBalanceForInterestCalculation = null; - final String minRequiredBalance = null; - final String enforceMinRequiredBalance = "false"; - final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, - minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance); - Assert.assertNotNull(savingsProductID); - - final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(groupID, savingsProductID, ACCOUNT_TYPE_GROUP); - Assert.assertNotNull(savingsId); - - HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId); - SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); - - final Integer withdrawalChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsWithdrawalFeeJSON()); - Assert.assertNotNull(withdrawalChargeId); - - this.savingsAccountHelper.addChargesForSavings(savingsId, withdrawalChargeId); - ArrayList<HashMap> chargesPendingState = this.savingsAccountHelper.getSavingsCharges(savingsId); - Assert.assertEquals(1, chargesPendingState.size()); - - Integer savingsChargeId = (Integer) chargesPendingState.get(0).get("id"); - HashMap chargeChanges = this.savingsAccountHelper.updateCharges(savingsChargeId, savingsId); - Assert.assertTrue(chargeChanges.containsKey("amount")); - - Integer deletedChargeId = this.savingsAccountHelper.deleteCharge(savingsChargeId, savingsId); - assertEquals(savingsChargeId, deletedChargeId); - - chargesPendingState = this.savingsAccountHelper.getSavingsCharges(savingsId); - Assert.assertTrue(chargesPendingState == null || chargesPendingState.size() == 0); - - savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId); - SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap); - - savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId); - SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap); - - final Integer chargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getSavingsAnnualFeeJSON()); - Assert.assertNotNull(chargeId); - - ArrayList<HashMap> charges = this.savingsAccountHelper.getSavingsCharges(savingsId); - Assert.assertTrue(charges == null || charges.size() == 0); - - this.savingsAccountHelper.addChargesForSavings(savingsId, chargeId); - charges = this.savingsAccountHelper.getSavingsCharges(savingsId); - Assert.assertEquals(1, charges.size()); - - HashMap savingsChargeForPay = charges.get(0); - SimpleDateFormat sdf = new SimpleDateFormat(CommonConstants.dateFormat, Locale.US); - Calendar cal = Calendar.getInstance(); - List dates = (List) savingsChargeForPay.get("dueDate"); - cal.set(Calendar.YEAR, (Integer) dates.get(0)); - cal.set(Calendar.MONTH, (Integer) dates.get(1) - 1); - cal.set(Calendar.DAY_OF_MONTH, (Integer) dates.get(2)); - - this.savingsAccountHelper.payCharge((Integer) savingsChargeForPay.get("id"), savingsId, - ((Float) savingsChargeForPay.get("amount")).toString(), sdf.format(cal.getTime())); - HashMap paidCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForPay.get("id")); - assertEquals(savingsChargeForPay.get("amount"), paidCharge.get("amountPaid")); - - final Integer monthlyFeechargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, - ChargesHelper.getSavingsMonthlyFeeJSON()); - Assert.assertNotNull(monthlyFeechargeId); - - this.savingsAccountHelper.addChargesForSavings(savingsId, monthlyFeechargeId); - charges = this.savingsAccountHelper.getSavingsCharges(savingsId); - Assert.assertEquals(2, charges.size()); - - HashMap savingsChargeForWaive = charges.get(1); - this.savingsAccountHelper.waiveCharge((Integer) savingsChargeForWaive.get("id"), savingsId); - HashMap waiveCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForWaive.get("id")); - assertEquals(savingsChargeForWaive.get("amount"), waiveCharge.get("amountWaived")); - - this.savingsAccountHelper.waiveCharge((Integer) savingsChargeForWaive.get("id"), savingsId); - waiveCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForWaive.get("id")); - BigDecimal totalWaiveAmount = BigDecimal.valueOf(Double.valueOf((Float) savingsChargeForWaive.get("amount"))); - totalWaiveAmount = totalWaiveAmount.add(totalWaiveAmount); - assertEquals(totalWaiveAmount.floatValue(), waiveCharge.get("amountWaived")); - - final Integer weeklyFeeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getSavingsWeeklyFeeJSON()); - Assert.assertNotNull(weeklyFeeId); - - this.savingsAccountHelper.addChargesForSavings(savingsId, weeklyFeeId); - charges = this.savingsAccountHelper.getSavingsCharges(savingsId); - Assert.assertEquals(3, charges.size()); - - savingsChargeForPay = charges.get(2); - cal = Calendar.getInstance(); - dates = (List) savingsChargeForPay.get("dueDate"); - cal.set(Calendar.YEAR, (Integer) dates.get(0)); - cal.set(Calendar.MONTH, (Integer) dates.get(1) - 1); - cal.set(Calendar.DAY_OF_MONTH, (Integer) dates.get(2)); - - // Depositing huge amount as scheduler job deducts the fee amount - Integer depositTransactionId = (Integer) this.savingsAccountHelper.depositToSavingsAccount(savingsId, "100000", - SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_RESOURCE_ID); - Assert.assertNotNull(depositTransactionId); - - this.savingsAccountHelper.payCharge((Integer) savingsChargeForPay.get("id"), savingsId, - ((Float) savingsChargeForPay.get("amount")).toString(), sdf.format(cal.getTime())); - paidCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForPay.get("id")); - assertEquals(savingsChargeForPay.get("amount"), paidCharge.get("amountPaid")); - List nextDueDates = (List) paidCharge.get("dueDate"); - LocalDate nextDueDate = new LocalDate((Integer) nextDueDates.get(0), (Integer) nextDueDates.get(1), (Integer) nextDueDates.get(2)); - LocalDate expectedNextDueDate = new LocalDate((Integer) dates.get(0), (Integer) dates.get(1), (Integer) dates.get(2)) - .plusWeeks((Integer) paidCharge.get("feeInterval")); - assertEquals(expectedNextDueDate, nextDueDate); - cal = Calendar.getInstance(); - - this.savingsAccountHelper.closeSavingsAccountAndGetBackRequiredField(savingsId, "true", null, sdf.format(cal.getTime())); - - } - - public static Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, - final String minOpenningBalance, final String minBalanceForInterestCalculation, final String minRequiredBalance, - final String enforceMinRequiredBalance) { - System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------"); - SavingsProductHelper savingsProductHelper = new SavingsProductHelper(); - final String savingsProductJSON = savingsProductHelper // - .withInterestCompoundingPeriodTypeAsDaily() // - .withInterestPostingPeriodTypeAsMonthly() // - .withInterestCalculationPeriodTypeAsDailyBalance() // - .withMinBalanceForInterestCalculation(minBalanceForInterestCalculation) // - .withMinRequiredBalance(minRequiredBalance) // - .withEnforceMinRequiredBalance(enforceMinRequiredBalance) // - .withMinimumOpenningBalance(minOpenningBalance).build(); - return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec); - } -} \ 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/GroupTest.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupTest.java deleted file mode 100755 index 49b4d4c..0000000 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupTest.java +++ /dev/null @@ -1,178 +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 static org.junit.Assert.assertNotEquals; - -import java.util.HashMap; - -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.LoanApplicationTestBuilder; -import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder; -import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper; -import org.apache.fineract.integrationtests.common.organisation.StaffHelper; -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; - -/** - * Group Test for checking Group: Creation, Activation, Client Association, - * Updating & Deletion - */ -public class GroupTest { - - private ResponseSpecification responseSpec; - private RequestSpecification requestSpec; - private LoanTransactionHelper loanTransactionHelper; - private final String principal = "10000.00"; - private final String accountingRule = "1"; - private final String numberOfRepayments = "5"; - private final String interestRatePerPeriod = "18"; - - @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(); - this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec); - - } - - @Test - public void checkGroupFunctions() { - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec); - GroupHelper.verifyGroupCreatedOnServer(this.requestSpec, this.responseSpec, groupID); - - groupID = GroupHelper.activateGroup(this.requestSpec, this.responseSpec, groupID.toString()); - GroupHelper.verifyGroupActivatedOnServer(this.requestSpec, this.responseSpec, groupID, true); - - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - GroupHelper.verifyGroupMembers(this.requestSpec, this.responseSpec, groupID, clientID); - - groupID = GroupHelper.disAssociateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - GroupHelper.verifyEmptyGroupMembers(this.requestSpec, this.responseSpec, groupID); - - final String updatedGroupName = GroupHelper.randomNameGenerator("Group-", 5); - groupID = GroupHelper.updateGroup(this.requestSpec, this.responseSpec, updatedGroupName, groupID.toString()); - GroupHelper.verifyGroupDetails(this.requestSpec, this.responseSpec, groupID, "name", updatedGroupName); - - // NOTE: removed as consistently provides false positive result on - // cloudbees server. - // groupID = GroupHelper.createGroup(this.requestSpec, - // this.responseSpec); - // GroupHelper.deleteGroup(this.requestSpec, this.responseSpec, - // groupID.toString()); - // GroupHelper.verifyGroupDeleted(this.requestSpec, this.responseSpec, - // groupID); - } - - @Test - public void assignStaffToGroup() { - Integer groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec); - GroupHelper.verifyGroupCreatedOnServer(this.requestSpec, this.responseSpec, groupID); - - final String updateGroupName = Utils.randomNameGenerator("Savings Group Help_", 5); - groupID = GroupHelper.activateGroup(this.requestSpec, this.responseSpec, groupID.toString()); - Integer updateGroupId = GroupHelper.updateGroup(this.requestSpec, this.responseSpec, updateGroupName, groupID.toString()); - - // create client and add client to group - final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); - groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientID.toString()); - GroupHelper.verifyGroupMembers(this.requestSpec, this.responseSpec, groupID, clientID); - - // create staff - Integer createStaffId1 = StaffHelper.createStaff(this.requestSpec, this.responseSpec); - System.out.println("--------------creating first staff with id-------------" + createStaffId1); - Assert.assertNotNull(createStaffId1); - - Integer createStaffId2 = StaffHelper.createStaff(this.requestSpec, this.responseSpec); - System.out.println("--------------creating second staff with id-------------" + createStaffId2); - Assert.assertNotNull(createStaffId2); - - // assign staff "createStaffId1" to group - HashMap assignStaffGroupId = (HashMap) GroupHelper.assignStaff(this.requestSpec, this.responseSpec, groupID.toString(), - createStaffId1.longValue()); - assertEquals("Verify assigned staff id is the same as id sent", assignStaffGroupId.get("staffId"), createStaffId1); - - // assign staff "createStaffId2" to client - final HashMap assignStaffToClientChanges = (HashMap) ClientHelper.assignStaffToClient(this.requestSpec, this.responseSpec, - clientID.toString(), createStaffId2.toString()); - assertEquals("Verify assigned staff id is the same as id sent", assignStaffToClientChanges.get("staffId"), createStaffId2); - - final Integer loanProductId = this.createLoanProduct(); - - final Integer loanId = this.applyForLoanApplication(clientID, loanProductId, this.principal); - - this.loanTransactionHelper.approveLoan("20 September 2014", loanId); - this.loanTransactionHelper.disburseLoan("20 September 2014", loanId); - - final HashMap assignStaffAndInheritStaffForClientAccounts = (HashMap) GroupHelper.assignStaffInheritStaffForClientAccounts( - this.requestSpec, this.responseSpec, groupID.toString(), createStaffId1.toString()); - final Integer getClientStaffId = ClientHelper.getClientsStaffId(this.requestSpec, this.responseSpec, clientID.toString()); - - // assert if client staff officer has change Note client was assigned - // staff with createStaffId2 - assertNotEquals("Verify if client stuff has changed", assignStaffAndInheritStaffForClientAccounts.get("staffId"), createStaffId2); - assertEquals("Verify if client inherited staff assigned above", assignStaffAndInheritStaffForClientAccounts.get("staffId"), - getClientStaffId); - - // assert if clients loan officer has changed - final Integer loanOfficerId = this.loanTransactionHelper.getLoanOfficerId(loanId.toString()); - assertEquals("Verify if client loan inherited staff", assignStaffAndInheritStaffForClientAccounts.get("staffId"), loanOfficerId); - - } - - private Integer createLoanProduct() { - final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(this.principal) - .withNumberOfRepayments(this.numberOfRepayments).withinterestRatePerPeriod(this.interestRatePerPeriod) - .withInterestRateFrequencyTypeAsYear().build(null); - return this.loanTransactionHelper.getLoanProductId(loanProductJSON); - } - - private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, String principal) { - System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------"); - final String loanApplicationJSON = new LoanApplicationTestBuilder() // - .withPrincipal(principal) // - .withLoanTermFrequency("4") // - .withLoanTermFrequencyAsMonths() // - .withNumberOfRepayments("4") // - .withRepaymentEveryAfter("1") // - .withRepaymentFrequencyTypeAsMonths() // - .withInterestRatePerPeriod("2") // - .withAmortizationTypeAsEqualInstallments() // - .withInterestTypeAsDecliningBalance() // - .withInterestCalculationPeriodTypeSameAsRepaymentPeriod() // - .withExpectedDisbursementDate("20 September 2014") // - .withSubmittedOnDate("20 September 2014") // - .build(clientID.toString(), loanProductID.toString(), null); - return this.loanTransactionHelper.getLoanId(loanApplicationJSON); - } - -} \ No newline at end of file
