use of org.mifos.accounts.savings.business.SavingsActivityEntity in project head by mifos.
the class SavingsPostInterestTest method whenPostingInterestASavingsAcitvityIsAddedForInterestPostingEvent.
@Test
public void whenPostingInterestASavingsAcitvityIsAddedForInterestPostingEvent() {
// setup
InterestScheduledEvent postingSchedule = new MonthlyOnLastDayOfMonthInterestScheduledEvent(1);
DateTime activationDate = new DateTime().withDate(2010, 7, 20);
savingsAccount = new SavingsAccountBuilder().active().withActivationDate(activationDate).withSavingsProduct(savingsProduct).withCustomer(client).build();
// pre verification
List<SavingsActivityEntity> preSavingsActivityityDetails = new ArrayList<SavingsActivityEntity>(savingsAccount.getSavingsActivityDetails());
assertThat(preSavingsActivityityDetails.size(), is(0));
InterestCalculationPeriodResult calculationPeriod = new InterestCalculationPeriodResultBuilder().withCalculatedInterest("100").build();
InterestPostingPeriodResult interestPostingPeriodResult = new InterestPostingPeriodResultBuilder().with(calculationPeriod).build();
PersonnelBO createdBy = new PersonnelBuilder().build();
// exercise
savingsAccount.postInterest(postingSchedule, interestPostingPeriodResult, createdBy);
// verification
List<SavingsActivityEntity> savingsActivityityDetails = new ArrayList<SavingsActivityEntity>(savingsAccount.getSavingsActivityDetails());
assertThat(savingsActivityityDetails.size(), is(1));
}
use of org.mifos.accounts.savings.business.SavingsActivityEntity in project head by mifos.
the class SavingsDaoHibernate method prepareForInterestRecalculation.
@Override
public void prepareForInterestRecalculation(SavingsBO savingsAccount, Date fromDate) {
List<AccountPaymentEntity> paymentsForRemoval = savingsAccount.getInterestPostingPaymentsForRemoval(fromDate);
this.save(savingsAccount);
for (AccountPaymentEntity payment : paymentsForRemoval) {
this.baseDao.delete(payment);
}
List<SavingsActivityEntity> activitesForRemoval = savingsAccount.getInterestPostingActivitesForRemoval(fromDate);
for (SavingsActivityEntity activity : activitesForRemoval) {
this.baseDao.delete(activity);
}
}
use of org.mifos.accounts.savings.business.SavingsActivityEntity in project head by mifos.
the class SavingsPostInterestTest method whenPostingInterestASavingsAcitvityIsAddedWithCorrectDetails.
@Test
public void whenPostingInterestASavingsAcitvityIsAddedWithCorrectDetails() {
// setup
InterestScheduledEvent postingSchedule = new MonthlyOnLastDayOfMonthInterestScheduledEvent(1);
DateTime activationDate = new DateTime().withDate(2010, 7, 20);
DateTime nextInterestPostingDate = new DateTime().withDate(2010, 7, 31);
savingsAccount = new SavingsAccountBuilder().active().withActivationDate(activationDate).withNextInterestPostingDateOf(nextInterestPostingDate).withSavingsProduct(savingsProduct).withCustomer(client).build();
// pre verification
assertThat(new LocalDate(savingsAccount.getNextIntPostDate()), is(nextInterestPostingDate.toLocalDate()));
InterestCalculationPeriodResult calculationPeriod = new InterestCalculationPeriodResultBuilder().withCalculatedInterest("100").build();
InterestPostingPeriodResult interestPostingPeriodResult = new InterestPostingPeriodResultBuilder().from(nextInterestPostingDate.toLocalDate()).to(nextInterestPostingDate.toLocalDate()).with(calculationPeriod).build();
PersonnelBO createdBy = new PersonnelBuilder().build();
// exercise
savingsAccount.postInterest(postingSchedule, interestPostingPeriodResult, createdBy);
// verification
List<SavingsActivityEntity> savingsActivityityDetails = new ArrayList<SavingsActivityEntity>(savingsAccount.getSavingsActivityDetails());
SavingsActivityEntity interestPostingActivity = savingsActivityityDetails.get(0);
assertThat(interestPostingActivity.getAccount(), is((AccountBO) savingsAccount));
assertThat(interestPostingActivity.getActivity().getId(), is(AccountActionTypes.SAVINGS_INTEREST_POSTING.getValue()));
assertThat(interestPostingActivity.getAmount(), is(TestUtils.createMoney("100")));
assertThat(datePartOf(interestPostingActivity.getTrxnCreatedDate()), is(nextInterestPostingDate.toLocalDate()));
}
use of org.mifos.accounts.savings.business.SavingsActivityEntity in project head by mifos.
the class SavingsAdjustmentTest method accountActivitysRecordAdjustmentOfLastTransactionWithAReversalAndWithdrawalTransactions.
@Test
public void accountActivitysRecordAdjustmentOfLastTransactionWithAReversalAndWithdrawalTransactions() {
savingsAccount = new SavingsAccountBuilder().active().withSavingsProduct(savingsProduct).withCustomer(client).withBalanceOf(TestUtils.createMoney("100")).withWithdrawalOf("15").build();
Money amountAdjustedTo = TestUtils.createMoney("25");
String adjustmentNote = "testAdjustment";
PersonnelBO updatedBy = new PersonnelBuilder().build();
// pre verification
List<SavingsActivityEntity> activitysBefore = new ArrayList<SavingsActivityEntity>(savingsAccount.getSavingsActivityDetails());
assertThat(activitysBefore.size(), is(1));
// exercise test
savingsAccount.adjustLastUserAction(amountAdjustedTo, adjustmentNote, updatedBy);
// verification
List<SavingsActivityEntity> activitysAfter = new ArrayList<SavingsActivityEntity>(savingsAccount.getSavingsActivityDetails());
assertThat(activitysAfter.size(), is(3));
}
use of org.mifos.accounts.savings.business.SavingsActivityEntity in project head by mifos.
the class SavingsAdjustmentTest method accountActivitysRecordAdjustmentOfLastTransactionWithAReversalAndDepositTransactions.
@Test
public void accountActivitysRecordAdjustmentOfLastTransactionWithAReversalAndDepositTransactions() {
savingsAccount = new SavingsAccountBuilder().active().withSavingsProduct(savingsProduct).withCustomer(client).withBalanceOf(TestUtils.createMoney("0")).withDepositOf("15").build();
Money amountAdjustedTo = TestUtils.createMoney("25");
String adjustmentNote = "testAdjustment";
PersonnelBO updatedBy = new PersonnelBuilder().build();
// pre verification
List<SavingsActivityEntity> activitysBefore = new ArrayList<SavingsActivityEntity>(savingsAccount.getSavingsActivityDetails());
assertThat(activitysBefore.size(), is(1));
// exercise test
savingsAccount.adjustLastUserAction(amountAdjustedTo, adjustmentNote, updatedBy);
// verification
List<SavingsActivityEntity> activitysAfter = new ArrayList<SavingsActivityEntity>(savingsAccount.getSavingsActivityDetails());
assertThat(activitysAfter.size(), is(3));
}
Aggregations