use of org.mifos.dto.domain.AccountPaymentParametersDto in project head by mifos.
the class StandardAccountServiceIntegrationTest method testValidatePaymentWithInvalidLargePaymentAmount.
@Test
public void testValidatePaymentWithInvalidLargePaymentAmount() throws Exception {
String paymentAmount = "700000";
AccountPaymentParametersDto accountPaymentParametersDto = new AccountPaymentParametersDto(new UserReferenceDto(groupLoan.getPersonnel().getPersonnelId()), new AccountReferenceDto(groupLoan.getAccountId()), new BigDecimal(paymentAmount), new LocalDate(), defaultPaymentType, "");
List<InvalidPaymentReason> errors = standardAccountService.validatePayment(accountPaymentParametersDto);
Assert.assertTrue(errors.contains(InvalidPaymentReason.INVALID_PAYMENT_AMOUNT));
}
use of org.mifos.dto.domain.AccountPaymentParametersDto in project head by mifos.
the class StandardAccountServiceIntegrationTest method testMakePaymentForSavingsAccountOnDeposit.
@Test
public void testMakePaymentForSavingsAccountOnDeposit() throws Exception {
savingsBO = createClientSavingsAccount();
String deposit = "400";
CustomerDto clientDto = new CustomerDto();
clientDto.setCustomerId(client.getCustomerId());
//FIXME why one day in future payment is allowed
LocalDate paymentDate = new LocalDate().plusDays(1);
LocalDate receiptDate = new LocalDate().minusDays(3);
String receiptNumber = "AA/03/UX-9Q";
Assert.assertEquals(0, savingsBO.getAccountPayments().size());
AccountPaymentParametersDto depositPayment = new AccountPaymentParametersDto(new UserReferenceDto(savingsBO.getPersonnel().getPersonnelId()), new AccountReferenceDto(savingsBO.getAccountId()), new BigDecimal(deposit), paymentDate, defaultPaymentType, "comment", receiptDate, receiptNumber, clientDto);
standardAccountService.makePayment(depositPayment);
TestObjectFactory.updateObject(savingsBO);
Assert.assertEquals("The amount returned for the payment should have been " + deposit, Double.parseDouble(deposit), savingsBO.getLastPmntAmnt());
Assert.assertEquals(1, savingsBO.getAccountPayments().size());
for (AccountPaymentEntity payment : savingsBO.getAccountPayments()) {
Assert.assertEquals(TestUtils.createMoney(deposit), payment.getAmount());
Assert.assertEquals(1, payment.getAccountTrxns().size());
Assert.assertEquals(paymentDate.toDateMidnight().toDate(), payment.getPaymentDate());
Assert.assertEquals(defaultPaymentType.getName(), payment.getPaymentType().getName());
Assert.assertEquals("comment", payment.getComment());
Assert.assertEquals(savingsBO, payment.getAccount());
Assert.assertEquals(savingsBO.getPersonnel(), payment.getCreatedByUser());
Assert.assertEquals(receiptDate.toDateMidnight().toDate(), payment.getReceiptDate());
Assert.assertEquals(receiptNumber, payment.getReceiptNumber());
Assert.assertNull(payment.getCheckNumber());
Assert.assertNull(payment.getBankName());
Assert.assertNull(payment.getVoucherNumber());
Assert.assertTrue(payment.isSavingsDeposit());
Assert.assertFalse(payment.isSavingsWithdrawal());
Assert.assertTrue(payment.isSavingsDepositOrWithdrawal());
for (AccountTrxnEntity accountTrxn : payment.getAccountTrxns()) {
Assert.assertEquals(client.getCustomerId(), accountTrxn.getCustomer().getCustomerId());
}
}
}
use of org.mifos.dto.domain.AccountPaymentParametersDto in project head by mifos.
the class StandardAccountServiceIntegrationTest method testValidatePaymentWithInvalidDate.
@Test
public void testValidatePaymentWithInvalidDate() throws Exception {
String paymentAmount = "700";
AccountPaymentParametersDto accountPaymentParametersDto = new AccountPaymentParametersDto(new UserReferenceDto(groupLoan.getPersonnel().getPersonnelId()), new AccountReferenceDto(groupLoan.getAccountId()), new BigDecimal(paymentAmount), new LocalDate(1980, 1, 1), defaultPaymentType, "");
List<InvalidPaymentReason> errors = standardAccountService.validatePayment(accountPaymentParametersDto);
Assert.assertTrue(errors.contains(InvalidPaymentReason.INVALID_DATE));
}
use of org.mifos.dto.domain.AccountPaymentParametersDto in project head by mifos.
the class StandardAccountServiceIntegrationTest method testValidatePaymentWithInvalidNegativePaymentAmount.
@Test
public void testValidatePaymentWithInvalidNegativePaymentAmount() throws Exception {
String paymentAmount = "-1";
AccountPaymentParametersDto accountPaymentParametersDto = new AccountPaymentParametersDto(new UserReferenceDto(groupLoan.getPersonnel().getPersonnelId()), new AccountReferenceDto(groupLoan.getAccountId()), new BigDecimal(paymentAmount), new LocalDate(), defaultPaymentType, "");
List<InvalidPaymentReason> errors = standardAccountService.validatePayment(accountPaymentParametersDto);
Assert.assertTrue(errors.contains(InvalidPaymentReason.INVALID_PAYMENT_AMOUNT));
}
use of org.mifos.dto.domain.AccountPaymentParametersDto in project head by mifos.
the class StandardAccountServiceTest method testDisbursalAmountScaleDifferenceDoesNotMatter.
@Test
public void testDisbursalAmountScaleDifferenceDoesNotMatter() throws Exception {
when(mockLoanAccount.getLoanAmount()).thenReturn(new Money(TestUtils.EURO, "300"));
AccountPaymentParametersDto disbursal = new AccountPaymentParametersDto(new UserReferenceDto((short) 1), new AccountReferenceDto(1), new BigDecimal("300.0000000000000"), new LocalDate(), new PaymentTypeDto((short) 1, "CASH"), "");
List<InvalidPaymentReason> errors = new ArrayList<InvalidPaymentReason>();
standardAccountService.disbursalAmountMatchesFullLoanAmount(disbursal.getPaymentAmount(), errors, mockLoanAccount);
assertThat(errors.isEmpty(), is(true));
}
Aggregations