/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * Licensed 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. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.accounts.business; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; import org.mifos.accounts.loan.business.LoanBO; import org.mifos.application.servicefacade.ApplicationContextProvider; import org.mifos.customers.personnel.persistence.LegacyPersonnelDao; import org.mifos.framework.util.helpers.TestObjectFactory; public class AccountTestUtils { public static void addAccountActionDate(AccountActionDateEntity accountAction, AccountBO account) { account.addAccountActionDate(accountAction); } public static void addToAccountStatusChangeHistory(LoanBO loan, AccountStatusChangeHistoryEntity accountStatusChangeHistoryEntity) { loan.addAccountStatusChangeHistory(accountStatusChangeHistoryEntity); } public static void addAccountFees(AccountFeesEntity fees, AccountBO account) { account.addAccountFees(fees); } public static void addAccountFlag(AccountStateFlagEntity flagDetail, AccountBO account) { account.addAccountFlag(flagDetail); } public static void addAccountPayment(AccountPaymentEntity payment, AccountBO account) { account.addAccountPayment(payment); } public static List<AccountTrxnEntity> reversalAdjustment(String adjustmentComment, AccountPaymentEntity lastPayment) throws Exception { return lastPayment.reversalAdjustment(ApplicationContextProvider.getBean(LegacyPersonnelDao.class).getPersonnel(TestObjectFactory.getContext() .getId()), adjustmentComment); } /** * Changes <em>all</em> installment dates to yesterday. In production, * multiple installments should never have the same ACTION_DATE. */ public static void changeInstallmentDatesToPreviousDate(AccountBO accountBO) { Calendar currentDateCalendar = new GregorianCalendar(); int year = currentDateCalendar.get(Calendar.YEAR); int month = currentDateCalendar.get(Calendar.MONTH); int day = currentDateCalendar.get(Calendar.DAY_OF_MONTH); currentDateCalendar = new GregorianCalendar(year, month, day - 1); for (AccountActionDateEntity accountActionDateEntity : accountBO.getAccountActionDates()) { accountActionDateEntity.setActionDate(new java.sql.Date(currentDateCalendar.getTimeInMillis())); } } public static void changeInstallmentDatesToPreviousDateExceptLastInstallment(AccountBO accountBO, int noOfInstallmentsToBeChanged) { Calendar currentDateCalendar = new GregorianCalendar(); int year = currentDateCalendar.get(Calendar.YEAR); int month = currentDateCalendar.get(Calendar.MONTH); int day = currentDateCalendar.get(Calendar.DAY_OF_MONTH); currentDateCalendar = new GregorianCalendar(year, month, day - 1); for (int i = 1; i <= noOfInstallmentsToBeChanged; i++) { AccountActionDateEntity accountActionDateEntity = accountBO.getAccountActionDate(Integer.valueOf(i) .shortValue()); accountActionDateEntity.setActionDate(new java.sql.Date(currentDateCalendar.getTimeInMillis())); } } }