/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.gl.service;
import java.io.File;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.kuali.kfs.coa.service.OrganizationReversionService;
import org.kuali.kfs.coa.service.PriorYearAccountService;
import org.kuali.kfs.gl.GeneralLedgerConstants;
import org.kuali.kfs.gl.batch.service.OrganizationReversionCategoryLogic;
import org.kuali.kfs.gl.batch.service.OrganizationReversionProcess;
import org.kuali.kfs.gl.batch.service.OrganizationReversionProcessService;
import org.kuali.kfs.gl.batch.service.OrganizationReversionUnitOfWorkService;
import org.kuali.kfs.gl.batch.service.impl.CashOrganizationReversionCategoryLogic;
import org.kuali.kfs.gl.batch.service.impl.OrganizationReversionMockServiceImpl;
import org.kuali.kfs.gl.businessobject.Balance;
import org.kuali.kfs.gl.businessobject.OriginEntryFull;
import org.kuali.kfs.gl.businessobject.OriginEntryInformation;
import org.kuali.kfs.gl.businessobject.OriginEntryTestBase;
import org.kuali.kfs.sys.ConfigureContext;
import org.kuali.kfs.sys.KFSConstants;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.sys.context.TestUtils;
import org.kuali.kfs.sys.service.impl.KfsParameterConstants;
import org.kuali.rice.core.api.config.property.ConfigurationService;
import org.kuali.rice.core.api.datetime.DateTimeService;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.coreservice.framework.parameter.ParameterService;
import org.kuali.rice.krad.service.BusinessObjectService;
/**
* Tests that the Organization Reversion process generates the proper origin entries under
* certain circumstances with each of the Org Reversion logics: A, C1, C2, N1, N2, R1, R2
*/
@ConfigureContext
public class OrganizationReversionLogicTest extends OriginEntryTestBase {
private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OrganizationReversionLogicTest.class);
public static final String DEFAULT_BALANCE_CHART = "BL";
public static final String DEFAULT_BALANCE_ACCOUNT_NBR = "1031400";
private OrganizationReversionService organizationReversionService;
private BalanceService balanceService;
private OrganizationReversionCategoryLogic cashOrganizationReversionCategoryLogic;
private OrganizationReversionProcessService organizationReversionProcessService;
private PriorYearAccountService priorYearAccountService;
private OrganizationReversionUnitOfWorkService orgReversionUnitOfWorkService;
private OrganizationReversionProcess orgRevProcess;
private Integer currentFiscalYear;
private Integer previousFiscalYear;
private String batchDirectory;
/**
* These enums are balance fixtures to test. These fixtures come from the spreadsheet org+reversion.xls, posted as an attachment to JIRA KULRNE-5652
* A quick summary is this:
* Each scenario needs a fixture for current balance and actual balance; scenarios 4 - 7 also have encumbrances.
* Scenario 1: Budget exceeds actual
* Scenario 2: Actual exceeds budget
* Scenario 3: Budget equals actual
* Scenario 4: Budget exceeds actual + encumbrance
* Scenario 5: Budget equals actual + encumbrance
* Scenario 6: Actual + encumbrance exceeds budget
* Scenario 7: Actual exceeds budget, and there's an encumbrance to boot
*/
enum BALANCE_FIXTURE {
SCENARIO1_CURRENT_BUDGET_BALANCE("CB", new KualiDecimal(5000)), SCENARIO1_ACTUAL_BALANCE("AC", new KualiDecimal(3000)),
SCENARIO2_CURRENT_BUDGET_BALANCE("CB", new KualiDecimal(4000)), SCENARIO2_ACTUAL_BALANCE("AC", new KualiDecimal(7000)),
SCENARIO3_CURRENT_BUDGET_BALANCE("CB", new KualiDecimal(2000)), SCENARIO3_ACTUAL_BALANCE("AC", new KualiDecimal(2000)),
SCENARIO4_CURRENT_BUDGET_BALANCE("CB", new KualiDecimal(5000)), SCENARIO4_ACTUAL_BALANCE("AC", new KualiDecimal(3000)), SCENARIO4_ENCUMBRANCE_BALANCE("IE", new KualiDecimal(500)),
SCENARIO5_CURRENT_BUDGET_BALANCE("CB", new KualiDecimal(5000)), SCENARIO5_ACTUAL_BALANCE("AC", new KualiDecimal(3000)), SCENARIO5_ENCUMBRANCE_BALANCE("IE", new KualiDecimal(2000)),
SCENARIO6_CURRENT_BUDGET_BALANCE("CB", new KualiDecimal(5000)), SCENARIO6_ACTUAL_BALANCE("AC", new KualiDecimal(3000)), SCENARIO6_ENCUMBRANCE_BALANCE("IE", new KualiDecimal(2500)),
SCENARIO7_CURRENT_BUDGET_BALANCE("CB", new KualiDecimal(4000)), SCENARIO7_ACTUAL_BALANCE("AC", new KualiDecimal(7000)), SCENARIO7_ENCUMBRANCE_BALANCE("IE", new KualiDecimal(500));
private String objectCode;
private String balanceTypeCode;
private String objectTypeCode;
private KualiDecimal amount;
private Date timestamp;
private static final String DATE_FORMAT = "yyyy-MM-dd";
private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(BALANCE_FIXTURE.class);
/**
* Constructs a OrganizationReversionLogicTest.BALANCE_FIXTURE instance
* @param balanceTypeCode the type code of the balance to create
* @param amount the amount of the balance to create
*/
private BALANCE_FIXTURE(String balanceTypeCode, KualiDecimal amount) {
this.balanceTypeCode = balanceTypeCode;
this.amount = amount;
}
/**
* Sets the object code of the object (so the same fixture can be used for multiple categories)
* @param objectCode the object code to set
*/
public void setObjectCode(String objectCode) {
this.objectCode = objectCode;
}
/**
* Converts the fixture into a balance to test
*
* @return a balance represented by this fixture
*/
public Balance convertToBalance() {
Balance balance = new Balance();
balance.setUniversityFiscalYear(TestUtils.getFiscalYearForTesting());
balance.setChartOfAccountsCode(DEFAULT_BALANCE_CHART);
balance.setAccountNumber(DEFAULT_BALANCE_ACCOUNT_NBR);
balance.setSubAccountNumber(KFSConstants.getDashSubAccountNumber());
balance.setObjectCode(objectCode);
balance.setSubObjectCode(KFSConstants.getDashFinancialSubObjectCode());
balance.setBalanceTypeCode(balanceTypeCode);
balance.setObjectTypeCode("EX");
balance.setAccountLineAnnualBalanceAmount(amount);
balance.setBeginningBalanceLineAmount(KualiDecimal.ZERO);
balance.setContractsGrantsBeginningBalanceAmount(KualiDecimal.ZERO);
balance.setMonth1Amount(amount);
balance.setMonth2Amount(KualiDecimal.ZERO);
balance.setMonth3Amount(KualiDecimal.ZERO);
balance.setMonth4Amount(KualiDecimal.ZERO);
balance.setMonth5Amount(KualiDecimal.ZERO);
balance.setMonth6Amount(KualiDecimal.ZERO);
balance.setMonth7Amount(KualiDecimal.ZERO);
balance.setMonth8Amount(KualiDecimal.ZERO);
balance.setMonth9Amount(KualiDecimal.ZERO);
balance.setMonth10Amount(KualiDecimal.ZERO);
balance.setMonth11Amount(KualiDecimal.ZERO);
balance.setMonth12Amount(KualiDecimal.ZERO);
balance.setMonth13Amount(KualiDecimal.ZERO);
try {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
java.util.Date jud = sdf.parse(SpringContext.getBean(ParameterService.class).getParameterValueAsString(KfsParameterConstants.GENERAL_LEDGER_BATCH.class, GeneralLedgerConstants.ANNUAL_CLOSING_TRANSACTION_DATE_PARM));
balance.setTimestamp(new java.sql.Date(jud.getTime()));
}
catch (ParseException e) {
LOG.debug("Parse date exception while parsing transaction date");
}
balance.refresh();
return balance;
}
};
/**
* Fixtures that have object codes that will go into certain categories. OrganizationReversionMockServiceImpl
* makes certain that each category represents different logic.
* @see org.kuali.kfs.gl.batch.service.impl.OrganizationReversionMockServiceImpl
*/
enum OBJECT_CODE_FIXTURE {
C01_ORG_WAGES_CODE("3000"), // C01 = A logic
C02_SALARY_FRINGES_CODE("2400"), // C02 = C1 logic
C03_FINANCIAL_AID_CODE("5880"), // C03 = C2 logic
C04_CAPITAL_EQUIP_CODE("7200"), // C04 = N1 logic
C05_RESERVE_CODE("7990"), // C05 = N2 logic
C08_TRAVEL_CODE("6000"), // C08 = R1 logic
C09_OTHER_EXPENSE_CODE("4100"); // C09 = R2 logic
private String code;
/**
* Constructs a OrganizationReversionLogicTest.OBJECT_CODE_FIXTURE instance
* @param code the object code represented by this fixture
*/
private OBJECT_CODE_FIXTURE(String code) {
this.code = code;
}
/**
* Returns the object code
* @return the object code
*/
public String getCode() {
return this.code;
}
}
/**
* Does the prelinary work of setting up the test...getting the org reversion mock, setting up
* the parameters for the job, and creates the OrganizationReversionProcessImpl object that will actually
* complete the job
* @see org.kuali.kfs.gl.businessobject.OriginEntryTestBase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
organizationReversionService = SpringContext.getBean(OrganizationReversionService.class,"glOrganizationReversionMockService");
DateTimeService dtService = SpringContext.getBean(DateTimeService.class);
balanceService = SpringContext.getBean(BalanceService.class);
cashOrganizationReversionCategoryLogic = SpringContext.getBean(CashOrganizationReversionCategoryLogic.class);
priorYearAccountService = SpringContext.getBean(PriorYearAccountService.class);
orgReversionUnitOfWorkService = SpringContext.getBean(OrganizationReversionUnitOfWorkService.class);
organizationReversionProcessService = SpringContext.getBean(OrganizationReversionProcessService.class);
batchDirectory = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString("staging.directory")+"/gl/test_directory/originEntry";
File batchDirectoryFile = new File(SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString("staging.directory")+"/gl/test_directory");
batchDirectoryFile.mkdir();
batchDirectoryFile = new File(batchDirectory);
batchDirectoryFile.mkdir();
orgRevProcess = SpringContext.getBean(OrganizationReversionProcess.class,"glOrganizationReversionTestProcess");
}
/**
* Makes sure that a new OrganizationReversionProcessImpl will be used for the next test
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
orgRevProcess = null;
File batchDirectoryFile = new File(batchDirectory);
for (File f : batchDirectoryFile.listFiles()) {
f.delete();
}
batchDirectoryFile.delete();
batchDirectoryFile = new File(SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString("staging.directory")+"/gl/test_directory");
batchDirectoryFile.delete();
}
/**
* Given a list of balances, saves those balances and runs the organization reversion process on them
*
* @param balancesToTestAgainst the balances for the specific test
* @return an OriginEntryGroup where the resultant origin entries were saved
*/
protected List<? extends OriginEntryInformation> runOrganizationReversionProcess(List<Balance> balancesToTestAgainst) {
clearGlBalanceTable();
clearBatchFiles();
//we do not need to call clearCache() since no dao and jdbc calls mixted in this method.
//refer to KFSMI-7637
// persistenceService.clearCache();
Map<String, ?> jobParameters = organizationReversionProcessService.getJobParameters();
currentFiscalYear = new Integer(((Number)jobParameters.get(KFSConstants.UNIV_FISCAL_YR)).intValue() + 1);
previousFiscalYear = new Integer(((Number)jobParameters.get(KFSConstants.UNIV_FISCAL_YR)).intValue());
Map<String, Integer> organizationReversionCounts = new HashMap<String, Integer>();
for (Balance bal : balancesToTestAgainst) {
bal.setUniversityFiscalYear(previousFiscalYear);
SpringContext.getBean(BusinessObjectService.class).save(bal);
}
orgRevProcess.setHoldGeneratedOriginEntries(true);
orgRevProcess.organizationReversionProcess(jobParameters, organizationReversionCounts);
// ye olde sanity check
assertEquals("Balances Read", new Integer(balancesToTestAgainst.size()), new Integer(orgRevProcess.getBalancesRead()));
return orgRevProcess.getGeneratedOriginEntries();
}
/**
* Asserts that certain fields in the given origin entry equal given parameters
* @param originEntry the actual origin entry
* @param fiscalYear the expected fiscal year
* @param periodCode the expected period code
* @param chart the expected chart
* @param account the expected account
* @param objectCode the expected object code
* @param balanceType the expected balance type
* @param objectType the expected object type
* @param amount the expected amount
*/
private void assertOriginEntry(OriginEntryInformation originEntry, Integer fiscalYear, String periodCode, String chart, String account, String objectCode, String balanceType, String objectType, KualiDecimal amount) {
assertEquals("Origin Entry " + originEntry.toString() + " Fiscal Year", fiscalYear, originEntry.getUniversityFiscalYear());
assertEquals("Origin Entry " + originEntry.toString() + " Fiscal Period", periodCode, originEntry.getUniversityFiscalPeriodCode());
assertEquals("Origin Entry " + originEntry.toString() + " Chart of Accounts", chart, originEntry.getChartOfAccountsCode());
assertEquals("Origin Entry " + originEntry.toString() + " Account Number", account, originEntry.getAccountNumber());
assertEquals("Origin Entry " + originEntry.toString() + " Object Code", objectCode, originEntry.getFinancialObjectCode());
assertEquals("Origin Entry " + originEntry.toString() + " Balance Type", balanceType, originEntry.getFinancialBalanceTypeCode());
assertEquals("Origin Entry " + originEntry.toString() + " Object Type", objectType, originEntry.getFinancialObjectTypeCode());
assertEquals("Origin Entry " + originEntry.toString() + " Amount", amount, originEntry.getTransactionLedgerEntryAmount());
}
/**
* Takes all of the origin entries in an Iterator of entries and puts them into a List, for easier
* manipulation.
*
* @param originEntriesIterator an Iterator of origin entries
* @return all of the entries in a list
*/
private List<OriginEntryFull> putOriginEntriesInList(Iterator<OriginEntryFull> originEntriesIterator) {
List<OriginEntryFull> entries = new ArrayList<OriginEntryFull>();
while (originEntriesIterator.hasNext()) {
entries.add(originEntriesIterator.next());
}
return entries;
}
/**
* Logs all the entries in a list of origin entries
*
* @param originEntries the origin entries to log
*/
private void logAllEntries(List<? extends OriginEntryInformation> originEntries) {
for (OriginEntryInformation entry : originEntries) {
LOG.info(entry.getLine());
}
}
/*
* ************** SCENARIO 1 *****************
*/
/**
* Tests that Logic A generates the correct origin entries for Scenario 1, budget exceeds actual
*/
public void testBudgetGreaterThanActualNoEncumbrancesLogicA() {
LOG.info("budget greater than actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check A
Balance cbBalance = BALANCE_FIXTURE.SCENARIO1_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO1_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(2), new Integer(generatedEntries.size()));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C1 generates the correct origin entries for Scenario 1, budget exceeds actual
*/
public void testBudgetGreaterThanActualNoEncumbrancesLogicC1() {
LOG.info("budget greater than actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO1_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO1_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C2 generates the correct origin entries for Scenario 1, budget exceeds actual
*/
public void testBudgetGreaterThanActualNoEncumbrancesLogicC2() {
LOG.info("budget greater than actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO1_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO1_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic N1 generates the correct origin entries for Scenario 1, budget exceeds actual
*/
public void testBudgetGreaterThanActualNoEncumbrancesLogicN1() {
LOG.info("budget greater than actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO1_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO1_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic N2 generates the correct origin entries for Scenario 1, budget exceeds actual
*/
public void testBudgetGreaterThanActualNoEncumbrancesLogicN2() {
LOG.info("budget greater than actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO1_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO1_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic R1 generates the correct origin entries for Scenario 1, budget exceeds actual
*/
public void testBudgetGreaterThanActualNoEncumbrancesLogicR1() {
LOG.info("budget greater than actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO1_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO1_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic R2 generates the correct origin entries for Scenario 1, budget exceeds actual
*/
public void testBudgetGreaterThanActualNoEncumbrancesLogicR2() {
LOG.info("budget greater than actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO1_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO1_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/*
* ************** SCENARIO 2 *****************
*/
/**
* Tests that Logic A generates the correct origin entries for Scenario 2, actual exceeds budget
*/
public void testBudgetLessThanActualNoEncumbrancesALogic() {
LOG.info("actual greater than budget, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check A
Balance cbBalance = BALANCE_FIXTURE.SCENARIO2_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO2_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(-3000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic C1 generates the correct origin entries for Scenario 2, actual exceeds budget
*/
public void testBudgetLessThanActualNoEncumbrancesC1Logic() {
LOG.info("actual greater than budget, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO2_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO2_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic C2 generates the correct origin entries for Scenario 2, actual exceeds budget
*/
public void testBudgetLessThanActualNoEncumbrancesC2Logic() {
LOG.info("actual greater than budget, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO2_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO2_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic N1 generates the correct origin entries for Scenario 2, actual exceeds budget
*/
public void testBudgetLessThanActualNoEncumbrancesN1Logic() {
LOG.info("actual greater than budget, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO2_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO2_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(-3000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, "1031400", "5000", "CB", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic N2 generates the correct origin entries for Scenario 2, actual exceeds budget
*/
public void testBudgetLessThanActualNoEncumbrancesN2Logic() {
LOG.info("actual greater than budget, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO2_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO2_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(-3000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic R1 generates the correct origin entries for Scenario 2, actual exceeds budget
*/
public void testBudgetLessThanActualNoEncumbrancesR1Logic() {
LOG.info("actual greater than budget, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO2_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO2_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic R2 generates the correct origin entries for Scenario 2, actual exceeds budget
*/
public void testBudgetLessThanActualNoEncumbrancesR2Logic() {
LOG.info("actual greater than budget, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO2_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO2_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
/*
* ************** SCENARIO 3 *****************
*/
/**
* Tests that Logic A generates the correct origin entries for Scenario 3, budget equals actual
*/
public void testBudgetEqualsActualNoEncumbrancesALogic() {
LOG.info("budget equals actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check A
Balance cbBalance = BALANCE_FIXTURE.SCENARIO3_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO3_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(0));
}
/**
* Tests that Logic C1 generates the correct origin entries for Scenario 3, budget equals actual
*/
public void testBudgetEqualsActualNoEncumbrancesC1Logic() {
LOG.info("budget equals actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO3_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO3_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(0));
}
/**
* Tests that Logic C2 generates the correct origin entries for Scenario 3, budget equals actual
*/
public void testBudgetEqualsActualNoEncumbrancesC2Logic() {
LOG.info("budget equals actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO3_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO3_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(0));
}
/**
* Tests that Logic N1 generates the correct origin entries for Scenario 3, budget equals actual
*/
public void testBudgetEqualsActualNoEncumbrancesN1Logic() {
LOG.info("budget equals actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO3_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO3_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(0));
}
/**
* Tests that Logic N2 generates the correct origin entries for Scenario 3, budget equals actual
*/
public void testBudgetEqualsActualNoEncumbrancesN2Logic() {
LOG.info("budget equals actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO3_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO3_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(0));
}
/**
* Tests that Logic R1 generates the correct origin entries for Scenario 3, budget equals actual
*/
public void testBudgetEqualsActualNoEncumbrancesR1Logic() {
LOG.info("budget equals actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO3_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO3_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(0));
}
/**
* Tests that Logic R2 generates the correct origin entries for Scenario 3, budget equals actual
*/
public void testBudgetEqualsActualNoEncumbrancesR2Logic() {
LOG.info("budget equals actual, no encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO3_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO3_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(0));
}
/*
* ************** SCENARIO 4 *****************
*/
/**
* Tests that Logic A generates the correct origin entries for Scenario 4, budget exceeds actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceGreaterThanEncumbrancesLogicA() {
LOG.info("budget greater than actual, variance greater than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check A
Balance cbBalance = BALANCE_FIXTURE.SCENARIO4_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO4_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO4_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C1 generates the correct origin entries for Scenario 4, budget exceeds actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceGreaterThanEncumbrancesLogicC1() {
LOG.info("budget greater than actual, variance greater than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO4_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO4_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO4_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C2 generates the correct origin entries for Scenario 4, budget exceeds actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceGreaterThanEncumbrancesLogicC2() {
LOG.info("budget greater than actual, variance greater than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO4_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO4_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO4_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic N1 generates the correct origin entries for Scenario 4, budget exceeds actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceGreaterThanEncumbrancesLogicN1() {
LOG.info("budget greater than actual, variance greater than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO4_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO4_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO4_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(4));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-1500));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(1500));
assertOriginEntry(generatedEntries.get(2), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(500));
assertOriginEntry(generatedEntries.get(3), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(500));
}
/**
* Tests that Logic N2 generates the correct origin entries for Scenario 4, budget exceeds actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceGreaterThanEncumbrancesLogicN2() {
LOG.info("budget greater than actual, variance greater than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO4_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO4_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO4_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic R1 generates the correct origin entries for Scenario 4, budget exceeds actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceGreaterThanEncumbrancesLogicR1() {
LOG.info("budget greater than actual, variance greater than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO4_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO4_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO4_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(4));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-1500));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(1500));
assertOriginEntry(generatedEntries.get(2), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(500));
assertOriginEntry(generatedEntries.get(3), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(500));
}
/**
* Tests that LogicR2 generates the correct origin entries for Scenario 4, budget exceeds actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceGreaterThanEncumbrancesLogicR2() {
LOG.info("budget greater than actual, variance greater than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO4_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO4_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO4_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/*
* ************** SCENARIO 5 *****************
*/
/**
* Tests that Logic A generates the correct origin entries for Scenario 5, budget equals actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceEqualsEncumbrancesLogicA() {
LOG.info("budget greater than actual, variance equals encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check A
Balance cbBalance = BALANCE_FIXTURE.SCENARIO5_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO5_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO5_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C1 generates the correct origin entries for Scenario 5, budget equals actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceEqualsEncumbrancesLogicC1() {
LOG.info("budget greater than actual, variance equals encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO5_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO5_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO5_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C2 generates the correct origin entries for Scenario 5, budget equals actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceEqualsEncumbrancesLogicC2() {
LOG.info("budget greater than actual, variance equals encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO5_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO5_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO5_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic N1 generates the correct origin entries for Scenario 5, budget equals actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceEqualsEncumbrancesLogicN1() {
LOG.info("budget greater than actual, variance equals encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO5_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO5_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO5_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic N2 generates the correct origin entries for Scenario 5, budget equals actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceEqualsEncumbrancesLogicN2() {
LOG.info("budget greater than actual, variance equals encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO5_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO5_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO5_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic R1 generates the correct origin entries for Scenario 5, budget equals actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceEqualsEncumbrancesLogicR1() {
LOG.info("budget greater than actual, variance equals encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO5_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO5_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO5_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic R2 generates the correct origin entries for Scenario 5, budget equals actual + encumbrance
*/
public void testBudgetGreaterThanActualVarianceEqualsEncumbrancesLogicR2() {
LOG.info("budget greater than actual, variance equals encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO5_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO5_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO5_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/*
* ************** SCENARIO 6 *****************
*/
/**
* Tests that Logic A generates the correct origin entries for Scenario 6, Actual + encumbrance exceeds budget
*/
public void testBudgetGreaterThanActualVariancesLessThanEncumbrancesLogicA() {
LOG.info("budget great than actual, variance less than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check A
Balance cbBalance = BALANCE_FIXTURE.SCENARIO6_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO6_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO6_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C1 generates the correct origin entries for Scenario 6, Actual + encumbrance exceeds budget
*/
public void testBudgetGreaterThanActualVariancesLessThanEncumbrancesLogicC1() {
LOG.info("budget great than actual, variance less than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO6_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO6_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO6_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic C2 generates the correct origin entries for Scenario 6, Actual + encumbrance exceeds budget
*/
public void testBudgetGreaterThanActualVariancesLessThanEncumbrancesLogicC2() {
LOG.info("budget great than actual, variance less than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO6_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO6_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO6_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic N1 generates the correct origin entries for Scenario 6, Actual + encumbrance exceeds budget
*/
public void testBudgetGreaterThanActualVariancesLessThanEncumbrancesLogicN1() {
LOG.info("budget great than actual, variance less than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO6_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO6_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO6_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic N2 generates the correct origin entries for Scenario 6, Actual + encumbrance exceeds budget
*/
public void testBudgetGreaterThanActualVariancesLessThanEncumbrancesLogicN2() {
LOG.info("budget great than actual, variance less than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO6_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO6_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO6_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic R1 generates the correct origin entries for Scenario 6, Actual + encumbrance exceeds budget
*/
public void testBudgetGreaterThanActualVariancesLessThanEncumbrancesLogicR1() {
LOG.info("budget great than actual, variance less than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO6_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO6_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO6_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(2000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(2000));
}
/**
* Tests that Logic R2 generates the correct origin entries for Scenario 6, Actual + encumbrance exceeds budget
*/
public void testBudgetGreaterThanActualVariancesLessThanEncumbrancesLogicR2() {
LOG.info("budget great than actual, variance less than encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO6_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO6_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO6_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(-2000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(2000));
}
/*
* ************** SCENARIO 7 *****************
*/
/**
* Tests that Logic A generates the correct origin entries for Scenario 7, Actual exceeds budget, and there's an encumbrance
*/
public void testActualGreaterThanBudgetWithEncumbrancesLogicA() {
LOG.info("actual greater than budget, with encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check A
Balance cbBalance = BALANCE_FIXTURE.SCENARIO7_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO7_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO7_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C01_ORG_WAGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(-3000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic C1 generates the correct origin entries for Scenario 7, Actual exceeds budget, and there's an encumbrance
*/
public void testActualGreaterThanBudgetWithEncumbrancesLogicC1() {
LOG.info("actual greater than budget, with encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO7_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO7_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO7_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C02_SALARY_FRINGES_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic C2 generates the correct origin entries for Scenario 7, Actual exceeds budget, and there's an encumbrance
*/
public void testActualGreaterThanBudgetWithEncumbrancesLogicC2() {
LOG.info("actual greater than budget, with encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check C2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO7_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO7_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO7_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C03_FINANCIAL_AID_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic N1 generates the correct origin entries for Scenario 7, Actual exceeds budget, and there's an encumbrance
*/
public void testActualGreaterThanBudgetWithEncumbrancesLogicN1() {
LOG.info("actual greater than budget, with encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO7_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO7_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO7_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C04_CAPITAL_EQUIP_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(-3000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic N2 generates the correct origin entries for Scenario 7, Actual exceeds budget, and there's an encumbrance
*/
public void testActualGreaterThanBudgetWithEncumbrancesLogicN2() {
LOG.info("actual greater than budget, with encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check N2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO7_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO7_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO7_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C05_RESERVE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "0110", "CB", "IN", new KualiDecimal(-3000));
assertOriginEntry(generatedEntries.get(1), currentFiscalYear, "01", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "5000", "CB", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic R1 generates the correct origin entries for Scenario 7, Actual exceeds budget, and there's an encumbrance
*/
public void testActualGreaterThanBudgetWithEncumbrancesLogicR1() {
LOG.info("actual greater than budget, with encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R1
Balance cbBalance = BALANCE_FIXTURE.SCENARIO7_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO7_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO7_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C08_TRAVEL_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
/**
* Tests that Logic R2 generates the correct origin entries for Scenario 7, Actual exceeds budget, and there's an encumbrance
*/
public void testActualGreaterThanBudgetWithEncumbrancesLogicR2() {
LOG.info("actual greater than budget, with encumbrances test started...");
List<Balance> balancesToCheck = new ArrayList<Balance>();
// add balances to check R2
Balance cbBalance = BALANCE_FIXTURE.SCENARIO7_CURRENT_BUDGET_BALANCE.convertToBalance();
cbBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance acBalance = BALANCE_FIXTURE.SCENARIO7_ACTUAL_BALANCE.convertToBalance();
acBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
Balance encumbranceBalance = BALANCE_FIXTURE.SCENARIO7_ENCUMBRANCE_BALANCE.convertToBalance();
encumbranceBalance.setObjectCode(OBJECT_CODE_FIXTURE.C09_OTHER_EXPENSE_CODE.getCode());
balancesToCheck.add(cbBalance);
balancesToCheck.add(acBalance);
balancesToCheck.add(encumbranceBalance);
List<? extends OriginEntryInformation> generatedEntries = runOrganizationReversionProcess(balancesToCheck);
// sanity check - all the balances were selected?
assertEquals("balances to check were all selected? ", new Integer(balancesToCheck.size()), new Integer(orgRevProcess.getBalancesSelected()));
logAllEntries(generatedEntries);
assertEquals("correct number of origin entries returned? ", new Integer(generatedEntries.size()), new Integer(2));
// check the origin entries
assertOriginEntry(generatedEntries.get(0), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, DEFAULT_BALANCE_ACCOUNT_NBR, "7900", "RE", "EX", new KualiDecimal(3000));
assertOriginEntry(generatedEntries.get(1), previousFiscalYear, "13", DEFAULT_BALANCE_CHART, OrganizationReversionMockServiceImpl.DEFAULT_BUDGET_REVERSION_ACCOUNT, "7900", "RE", "EX", new KualiDecimal(-3000));
}
}