@SuppressWarnings("PMD.SignatureDeclareThrowsException") // one of the dependent methods throws Exception public void editExistingLoanProduct() throws Exception { initRemote.dataLoadAndCacheRefresh( dbUnitUtilities, "acceptance_small_001_dbunit.xml", dataSource, selenium); ViewLoanProductsPage viewLoanProducts = loginAndNavigateToViewLoanProductsPage(); LoanProductDetailsPage loanProductDetailsPage = viewLoanProducts.viewLoanProductDetails("FlatInterestLoanProduct1"); EditLoanProductPage editLoanProductPage = loanProductDetailsPage.editLoanProduct(); editLoanProductPage.verifyPage(); SubmitFormParameters formParameters = new SubmitFormParameters(); formParameters.setDescription("Modified Description"); formParameters.setMaxInterestRate("44"); formParameters.setMinInterestRate("3"); formParameters.setDefaultInterestRate("18"); EditLoanProductPreviewPage editLoanProductPreviewPage = editLoanProductPage.submitDescriptionAndInterestChanges(formParameters); loanProductDetailsPage = editLoanProductPreviewPage.submit(); loanProductDetailsPage.verifyPage(); loanProductDetailsPage.editLoanProduct(); editLoanProductPage.verifyPage(); editLoanProductPage.verifyModifiedDescriptionAndInterest(formParameters); }
// http://mifosforge.jira.com/browse/MIFOSTEST-710 @Test(enabled = true) @SuppressWarnings("PMD.SignatureDeclareThrowsException") public void verifyWaiveInterestForLoanAccount() throws Exception { // Given DateTimeUpdaterRemoteTestingService dateTimeUpdaterRemoteTestingService = new DateTimeUpdaterRemoteTestingService(selenium); DateTime systemDateTime = new DateTime(2011, 3, 7, 12, 0, 0, 0); dateTimeUpdaterRemoteTestingService.setDateTime(systemDateTime); // When DefineNewLoanProductPage.SubmitFormParameters formParameters = FormParametersHelper.getWeeklyLoanProductParameters(); formParameters.setInterestWaiver(true); NavigationHelper navigationHelper = new NavigationHelper(selenium); AdminPage adminPage = navigationHelper.navigateToAdminPage(); DefineNewLoanProductPage newLoanProductPage = adminPage.navigateToDefineLoanProduct(); newLoanProductPage.fillLoanParameters(formParameters); DefineNewLoanProductPreviewPage previewPage = newLoanProductPage.submitAndGotoNewLoanProductPreviewPage(); // Then Assert.assertTrue(selenium.isTextPresent("Can waive interest on repay loan: Yes")); Assert.assertTrue(selenium.isTextPresent("Interest: 31102")); Assert.assertTrue(selenium.isTextPresent("Principal: 1506")); // When LoanProductDetailsPage loanProductDetailsPage = previewPage.submit().navigateToViewLoanDetailsPage(); // Then Assert.assertTrue(selenium.isTextPresent("Can waive interest on repay loan: Yes")); // When EditLoanProductPage editLoanProductPage = loanProductDetailsPage.editLoanProduct(); // Then Assert.assertTrue(selenium.isChecked("EditLoanProduct.input.includeInterestWaiver")); // When EditLoanProductPreviewPage editLoanProductPreviewPage = editLoanProductPage.editSubmit(); // Then Assert.assertTrue(selenium.isTextPresent("Can waive interest on repay loan: Yes")); // When loanProductDetailsPage = editLoanProductPreviewPage.submit(); // Then Assert.assertTrue(selenium.isTextPresent("Can waive interest on repay loan: Yes")); // When CreateLoanAccountSearchParameters searchParameters = new CreateLoanAccountSearchParameters(); searchParameters.setSearchString("WeeklyClient Monday"); searchParameters.setLoanProduct(formParameters.getOfferingName()); LoanTestHelper loanTestHelper = new LoanTestHelper(selenium); LoanAccountPage loanAccountPage = loanTestHelper.createAndActivateDefaultLoanAccount(searchParameters); DisburseLoanParameters disburseParameters = new DisburseLoanParameters(); disburseParameters.setDisbursalDateDD(Integer.toString(systemDateTime.getDayOfMonth())); disburseParameters.setDisbursalDateMM(Integer.toString(systemDateTime.getMonthOfYear())); disburseParameters.setDisbursalDateYYYY(Integer.toString(systemDateTime.getYear())); disburseParameters.setPaymentType(PaymentParameters.CASH); loanAccountPage .navigateToDisburseLoan() .submitAndNavigateToDisburseLoanConfirmationPage(disburseParameters) .submitAndNavigateToLoanAccountPage(); RepayLoanPage repayLoanPage = loanAccountPage.navigateToRepayLoan(); // Then Assert.assertTrue(selenium.isChecked("waiverInterestChckBox")); Assert.assertEquals( "Note: Interest due will be waived off.", selenium.getText("waiverInterestWarning")); Assert.assertFalse(repayLoanPage.isTotalRepaymentAmountVisible()); Assert.assertTrue(repayLoanPage.isWaivedRepaymentAmoutVisible()); Assert.assertEquals(repayLoanPage.waivedRepaymentAmount(), "2,500"); // When repayLoanPage.interestWaiver(false); // Then Assert.assertTrue(repayLoanPage.isTotalRepaymentAmountVisible()); Assert.assertFalse(repayLoanPage.isWaivedRepaymentAmoutVisible()); Assert.assertFalse(selenium.isTextPresent("Note: Interest due will be waived off.")); Assert.assertEquals(repayLoanPage.totalRepaymentAmount(), "2,509.1"); // When RepayLoanParameters params = new RepayLoanParameters(); params.setModeOfRepayment("Cash"); loanAccountPage = repayLoanPage .submitAndNavigateToRepayLoanConfirmationPage(params) .submitAndNavigateToLoanAccountDetailsPage(); // Then loanAccountPage.verifyStatus("Closed- Obligation met"); String[][] accountSummaryTable = { {"", "Original Loan", "Amount paid", "Loan balance"}, {"Principal", "2,500", "2,500", "0"}, {"Interest", "9.1", "9.1", "0"}, {"Fees", "0", "0", "0"}, {"Penalty", "0", "0", "0"}, {"Total", "2,509.1", "2,509.1", "0"} }; loanAccountPage.verifyAccountSummary(accountSummaryTable); loanAccountPage.navigateToAccountActivityPage(); Assert.assertEquals("Loan Repayment", selenium.getTable("accountActivityTable.2.1").trim()); Assert.assertEquals("2,500", selenium.getTable("accountActivityTable.2.2").trim()); Assert.assertEquals("0", selenium.getTable("accountActivityTable.2.10").trim()); }