/* * 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.batch.service; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.kuali.kfs.gl.GeneralLedgerConstants; import org.kuali.kfs.gl.businessobject.OriginEntryTestBase; import org.kuali.kfs.sys.ConfigureContext; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.kfs.sys.context.TestUtils; /** * Tests the PosterService */ @ConfigureContext public class PosterServiceTest extends OriginEntryTestBase { private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(PosterServiceTest.class); private PosterService posterService; /** * * @see org.kuali.kfs.gl.businessobject.OriginEntryTestBase#setUp() */ @Override protected void setUp() throws Exception { super.setUp(); Calendar c = Calendar.getInstance(); c.set(Calendar.DAY_OF_MONTH, 1); c.set(Calendar.MONTH, Calendar.JANUARY); c.set(Calendar.YEAR, TestUtils.getFiscalYearForTesting()); // because of the cutoff time implementation, assume a specific time of day after the cutoff (10:00 am, see RunDateService // for details) c.set(Calendar.HOUR_OF_DAY, 23); c.set(Calendar.MINUTE, 50); c.set(Calendar.SECOND, 0); date = c.getTime(); // Set the run date of the job dateTimeService.setCurrentDate(date); posterService = SpringContext.getBean(PosterService.class,"glMockPosterService"); posterService.setDateTimeService(dateTimeService); } ///** // * Check invalid entries // * // * @throws Exception // */ // // This test succeeds in Eclipse, but fails in Anthill // public void testInvalidEntries() throws Exception { // LOG.debug("testInvalidEntries() started"); // // /* // * These transactions are invalid for one reason or another: // * 0 - bad chartOfAccountsCode // * 1 - bad accountNumber // * 2 - bad objectTypeCode // * 3 - bad balanceTypeCode // * 4 - bad univFiscalYear // * 5 - bad debitCreditCode // * 6 - bad debitCreditCode // * 7 - 19 empty key field // */ // String[] inputTransactions = { // "2007XX6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA9999999-----8000---ACAS07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00C2006-01-05ABCDEFGHIG----------12345678 ", // "2007BA6044900-----8000---ACZZ07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00C2006-01-05ABCDEFGHIG----------12345678 ", // "2007BA6044900-----8000---ZZEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00C2006-01-05ABCDEFGHIG----------12345678 ", // "9999BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. 1445.00 // 2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00X2006-01-05ABCDEFGHIJ----------12345678 ", // // " BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007 6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA -----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900 5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900----- ---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300 ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300--- EE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300---AC 07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300---ACEE CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300---ACEE07 PDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300---ACEE07CHKD BLANKFISC 12345214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", // "2007BA6044900-----5300---ACEE07CHKDPD 12345214090047 EVERETT J PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 // ", // "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 00000214090047 EVERETT J PRESCOTT INC. // 1445.00D2006-01-05ABCDEFGHIJ----------12345678 ", }; // // EntryHolder[] outputTransactions = new EntryHolder[] { // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007XX6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA9999999-----8000---ACAS07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00C2006-01-05ABCDEFGHIG----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----8000---ACZZ07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00C2006-01-05ABCDEFGHIG----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00 2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "9999BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----8000---ZZEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00C2006-01-05ABCDEFGHIG----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00X2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007 6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900 5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 00000214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---ACEE07CHKDPD 12345214090047 EVERETT J PRESCOTT // INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---ACEE07CHKD BLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---ACEE07 PDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---ACEE CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300---AC 07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300--- EE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900-----5300 ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA6044900----- ---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, "2007BA -----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT // INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.SCRUBBER_VALID, " BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007XX6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007 6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00X2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---AC 07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----8000---ACZZ07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00C2006-01-05ABCDEFGHIG----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "9999BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA -----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA9999999-----8000---ACAS07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00C2006-01-05ABCDEFGHIG----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900 5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300--- EE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----8000---ZZEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00C2006-01-05ABCDEFGHIG----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---ACEE CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, " BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900----- ---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300 ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 00000214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---ACEE07CHKDPDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00 2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---ACEE07CHKDPD 12345214090047 EVERETT J PRESCOTT // INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---ACEE07CHKD BLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), // new EntryHolder(OriginEntrySource.MAIN_POSTER_ERROR, "2007BA6044900-----5300---ACEE07 PDBLANKFISC 12345214090047 EVERETT J // PRESCOTT INC. 1445.00D2006-01-05ABCDEFGHIJ----------12345678 "), }; // // clearOriginEntryTables(); // loadInputTransactions(OriginEntrySource.SCRUBBER_VALID, inputTransactions); // // posterService.postMainEntries(); // // assertOriginEntries(3, outputTransactions); // } /** * @see junit.framework.TestCase#tearDown() */ @Override protected void tearDown() throws Exception { super.tearDown(); // return the run date to the current date dateTimeService.setCurrentDate(new java.util.Date()); } /** * Covers the posting of GL entries * * @throws Exception thrown if any exception is encountered for any reason */ public void testPostGlEntry() throws Exception { LOG.debug("testPostGlEntry() started"); String[] inputTransactions = { TestUtils.getFiscalYearForTesting()+"BA6044909-----5300---ACEX07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. 1445.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044909-----5300---ACEX07CHKDPDBLANKFISC 12345214090047 EVERETT J PRESCOTT INC. 1445.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 " }; EntryHolder[] outputTransactions = { new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions[0]), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions[1]) }; clearBatchFiles(); clearGlEntryTable("BA", "6044909"); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions); posterService.postMainEntries(); assertOriginEntries(2, outputTransactions); List glEntries = unitTestSqlDao.sqlSelect("select * from GL_ENTRY_T where fin_coa_cd = 'BA' and account_nbr = '6044909'"); assertEquals("Should be 2 GL entries", 2, glEntries.size()); Map glEntry = (Map) glEntries.get(0); BigDecimal ufy = (BigDecimal) glEntry.get("UNIV_FISCAL_YR"); assertEquals("univ_fiscal_yr wrong", TestUtils.getFiscalYearForTesting().intValue(), ufy.intValue()); assertEquals("fin_coa_cd wrong", "BA", (String) glEntry.get("FIN_COA_CD")); assertEquals("account_nbr wrong", "6044909", (String) glEntry.get("ACCOUNT_NBR")); assertEquals("sub_acct_nbr wrong", "-----", (String) glEntry.get("SUB_ACCT_NBR")); assertEquals("fin_object_cd wrong", "5300", (String) glEntry.get("FIN_OBJECT_CD")); assertEquals("fin_sub_obj_cd wrong", "---", (String) glEntry.get("FIN_SUB_OBJ_CD")); assertEquals("FIN_BALANCE_TYP_CD wrong", "AC", (String) glEntry.get("FIN_BALANCE_TYP_CD")); assertEquals("FIN_OBJ_TYP_CD wrong", "EX", (String) glEntry.get("FIN_OBJ_TYP_CD")); assertEquals("UNIV_FISCAL_PRD_CD wrong", "07", (String) glEntry.get("UNIV_FISCAL_PRD_CD")); assertEquals("FDOC_TYP_CD wrong", "CHKD", (String) glEntry.get("FDOC_TYP_CD")); assertEquals("FS_ORIGIN_CD wrong", "PD", (String) glEntry.get("FS_ORIGIN_CD")); assertEquals("FDOC_NBR wrong", "BLANKFISC", (String) glEntry.get("FDOC_NBR")); BigDecimal tesq = (BigDecimal) glEntry.get("TRN_ENTR_SEQ_NBR"); assertEquals("TRN_ENTR_SEQ_NBR wrong", 1, tesq.intValue()); assertEquals("TRN_LDGR_ENTR_DESC wrong", "214090047 EVERETT J PRESCOTT INC.", (String) glEntry.get("TRN_LDGR_ENTR_DESC")); assertEquals("TRN_LDGR_ENTR_AMT wrong", 1445.00, getAmount(glEntry, "TRN_LDGR_ENTR_AMT"), 0.01); assertEquals("TRN_DEBIT_CRDT_CD wrong", "D", (String) glEntry.get("TRN_DEBIT_CRDT_CD")); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); assertEquals("TRANSACTION_DT wrong", TestUtils.getFiscalYearForTesting()+"-01-05", sdf.format((Date) glEntry.get("TRANSACTION_DT"))); assertEquals("ORG_DOC_NBR wrong", "ABCDEFGHIJ", (String) glEntry.get("ORG_DOC_NBR")); assertEquals("PROJECT_CD wrong", "----------", (String) glEntry.get("PROJECT_CD")); assertEquals("ORG_REFERENCE_ID wrong", "12345678", (String) glEntry.get("ORG_REFERENCE_ID")); assertTrue("FDOC_REF_TYP_CD is not blank, was: '" + glEntry.get("FDOC_REF_TYP_CD") + "'", StringUtils.isEmpty((String) glEntry.get("FDOC_REF_TYP_CD"))); assertTrue("FS_REF_ORIGIN_CD is not blank, was: '" + glEntry.get("FS_REF_ORIGIN_CD") + "'", StringUtils.isEmpty((String) glEntry.get("FS_REF_ORIGIN_CD"))); assertTrue("FDOC_REF_NBR is not blank, was: '" + glEntry.get("FDOC_REF_NBR") + "'", StringUtils.isEmpty((String) glEntry.get("FDOC_REF_NBR"))); assertNull("FDOC_REVERSAL_DT is not null, was: '" + glEntry.get("FDOC_REVERSAL_DT") + "'", glEntry.get("FDOC_REVERSAL_DT")); assertTrue("TRN_ENCUM_UPDT_CD wrong", StringUtils.isBlank((String) glEntry.get("TRN_ENCUM_UPDT_CD"))); // The 2nd one should have a different sequence number glEntry = (Map) glEntries.get(1); tesq = (BigDecimal) glEntry.get("TRN_ENTR_SEQ_NBR"); assertEquals("TRN_ENTR_SEQ_NBR wrong", 2, tesq.intValue()); } /** * Check valid and invalid reversal posting * * @throws Exception thrown if any exception is encountered for any reason */ public void testPostReversal() throws Exception { LOG.debug("testPostReversal() started"); // if this test fails, ensure that the cutoff time is set to 10am. String[] inputTransactions = { TestUtils.getFiscalYearForTesting()+"BA6044900-----5300---ACEX07CHKDPDREVTEST01 12345214090047 EVERETT J PRESCOTT INC. 1445.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "+TestUtils.getFiscalYearForTesting()+"-03-01 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----5300---ACEX07CHKDPDREVTEST01 12345214090047 EVERETT J PRESCOTT INC. 1445.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "+TestUtils.getFiscalYearForTesting()+"-03-01 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----5300---ACEX07CHKDPDREVTEST02 12345214090047 EVERETT J PRESCOTT INC. 1445.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 " }; EntryHolder[] outputTransactions = { new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions[0]), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions[1]), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions[2]) }; clearBatchFiles(); clearReversalTable(); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions); posterService.postMainEntries(); assertOriginEntries(2, outputTransactions); List reversalEntries = unitTestSqlDao.sqlSelect("select * from GL_REVERSAL_T"); assertEquals("Should be 1 reversal row", 2, reversalEntries.size()); Map reversalEntry = (Map) reversalEntries.get(0); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); assertEquals("FDOC_REVERSAL_DT wrong", TestUtils.getFiscalYearForTesting()+"-03-01", sdf.format((Date) reversalEntry.get("FDOC_REVERSAL_DT"))); } /** * Covers entry posting's effects on balances * * @throws Exception thrown if any exception is encountered for any reason */ public void testPostBalance() throws Exception { LOG.debug("testPostBalance() started"); String[] inputTransactions = { TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX01CHKDPDBALTEST01 12345214090047 EVERETT J PRESCOTT INC. 10.01D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX02CHKDPDBALTEST02 12345214090047 EVERETT J PRESCOTT INC. 20.02D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX03CHKDPDBALTEST03 12345214090047 EVERETT J PRESCOTT INC. 30.03D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX04CHKDPDBALTEST04 12345214090047 EVERETT J PRESCOTT INC. 40.04D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX05CHKDPDBALTEST05 12345214090047 EVERETT J PRESCOTT INC. 50.05D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX06CHKDPDBALTEST06 12345214090047 EVERETT J PRESCOTT INC. 60.06D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX07CHKDPDBALTEST07 12345214090047 EVERETT J PRESCOTT INC. 70.07D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX08CHKDPDBALTEST08 12345214090047 EVERETT J PRESCOTT INC. 80.08D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX09CHKDPDBALTEST09 12345214090047 EVERETT J PRESCOTT INC. 90.09D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX10CHKDPDBALTEST10 12345214090047 EVERETT J PRESCOTT INC. 100.10D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX11CHKDPDBALTEST11 12345214090047 EVERETT J PRESCOTT INC. 110.11D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX12CHKDPDBALTEST12 12345214090047 EVERETT J PRESCOTT INC. 120.12D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX13CHKDPDBALTEST12 12345214090047 EVERETT J PRESCOTT INC. 130.13D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEXABCHKDPDBALTEST12 12345214090047 EVERETT J PRESCOTT INC. 140.14D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEXBBCHKDPDBALTEST12 12345214090047 EVERETT J PRESCOTT INC. 150.15D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEXCBCHKDPDBALTEST12 12345214090047 EVERETT J PRESCOTT INC. 160.16D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 " }; EntryHolder[] outputTransactions = new EntryHolder[inputTransactions.length]; for (int i = 0; i < inputTransactions.length; i++) { outputTransactions[i] = new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions[i]); } clearBatchFiles(); clearGlBalanceTable(); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions); posterService.postMainEntries(); assertOriginEntries(2, outputTransactions); List balances = unitTestSqlDao.sqlSelect("select * from GL_BALANCE_T"); assertEquals("Should be 1 row", 1, balances.size()); Map balance = (Map) balances.get(0); BigDecimal a = (BigDecimal) balance.get("UNIV_FISCAL_YR"); assertEquals("UNIV_FISCAL_YR is wrong", TestUtils.getFiscalYearForTesting().intValue(), a.intValue()); assertEquals("FIN_COA_CD is wrong", "BA", balance.get("FIN_COA_CD")); assertEquals("ACCOUNT_NBR is wrong", "6044900", balance.get("ACCOUNT_NBR")); assertEquals("SUB_ACCT_NBR is wrong", "-----", balance.get("SUB_ACCT_NBR")); assertEquals("FIN_OBJECT_CD is wrong", "4166", balance.get("FIN_OBJECT_CD")); assertEquals("FIN_SUB_OBJ_CD is wrong", "---", balance.get("FIN_SUB_OBJ_CD")); assertEquals("FIN_BALANCE_TYP_CD is wrong", "AC", balance.get("FIN_BALANCE_TYP_CD")); assertEquals("FIN_OBJ_TYP_CD is wrong", "EX", balance.get("FIN_OBJ_TYP_CD")); assertEquals("ACLN_ANNL_BAL_AMT is wrong", 1051.05, getAmount(balance, "ACLN_ANNL_BAL_AMT"), 0.01); assertEquals("FIN_BEG_BAL_LN_AMT is wrong", 150.15, getAmount(balance, "FIN_BEG_BAL_LN_AMT"), 0.01); assertEquals("CONTR_GR_BB_AC_AMT is wrong", 160.16, getAmount(balance, "CONTR_GR_BB_AC_AMT"), 0.01); assertEquals("MO1_ACCT_LN_AMT is wrong", 10.01, getAmount(balance, "MO1_ACCT_LN_AMT"), 0.01); assertEquals("MO2_ACCT_LN_AMT is wrong", 20.02, getAmount(balance, "MO2_ACCT_LN_AMT"), 0.01); assertEquals("MO3_ACCT_LN_AMT is wrong", 30.03, getAmount(balance, "MO3_ACCT_LN_AMT"), 0.01); assertEquals("MO4_ACCT_LN_AMT is wrong", 40.04, getAmount(balance, "MO4_ACCT_LN_AMT"), 0.01); assertEquals("MO5_ACCT_LN_AMT is wrong", 50.05, getAmount(balance, "MO5_ACCT_LN_AMT"), 0.01); assertEquals("MO6_ACCT_LN_AMT is wrong", 60.06, getAmount(balance, "MO6_ACCT_LN_AMT"), 0.01); assertEquals("MO7_ACCT_LN_AMT is wrong", 70.07, getAmount(balance, "MO7_ACCT_LN_AMT"), 0.01); assertEquals("MO8_ACCT_LN_AMT is wrong", 80.08, getAmount(balance, "MO8_ACCT_LN_AMT"), 0.01); assertEquals("MO9_ACCT_LN_AMT is wrong", 90.09, getAmount(balance, "MO9_ACCT_LN_AMT"), 0.01); assertEquals("MO10_ACCT_LN_AMT is wrong", 100.10, getAmount(balance, "MO10_ACCT_LN_AMT"), 0.01); assertEquals("MO11_ACCT_LN_AMT is wrong", 110.11, getAmount(balance, "MO11_ACCT_LN_AMT"), 0.01); assertEquals("MO12_ACCT_LN_AMT is wrong", 120.12, getAmount(balance, "MO12_ACCT_LN_AMT"), 0.01); assertEquals("MO13_ACCT_LN_AMT is wrong", 130.13, getAmount(balance, "MO13_ACCT_LN_AMT"), 0.01); String[] inputTransactions2 = { TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX01CHKDPDBALTEST01 12345214090047 EVERETT J PRESCOTT INC. 0.01C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX02CHKDPDBALTEST02 12345214090047 EVERETT J PRESCOTT INC. 0.02C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX03CHKDPDBALTEST03 12345214090047 EVERETT J PRESCOTT INC. 0.03C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX04CHKDPDBALTEST04 12345214090047 EVERETT J PRESCOTT INC. 0.04C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX05CHKDPDBALTEST05 12345214090047 EVERETT J PRESCOTT INC. 0.05C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX06CHKDPDBALTEST06 12345214090047 EVERETT J PRESCOTT INC. 0.06C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX07CHKDPDBALTEST07 12345214090047 EVERETT J PRESCOTT INC. 0.07C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX08CHKDPDBALTEST08 12345214090047 EVERETT J PRESCOTT INC. 0.08C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX09CHKDPDBALTEST09 12345214090047 EVERETT J PRESCOTT INC. 0.09C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX10CHKDPDBALTEST10 12345214090047 EVERETT J PRESCOTT INC. 0.10C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX11CHKDPDBALTEST11 12345214090047 EVERETT J PRESCOTT INC. 0.11C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX12CHKDPDBALTEST12 12345214090047 EVERETT J PRESCOTT INC. 0.12C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX13CHKDPDBALTEST12 12345214090047 EVERETT J PRESCOTT INC. 0.13C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", }; EntryHolder[] outputTransactions2 = new EntryHolder[inputTransactions2.length]; for (int i = 0; i < inputTransactions2.length; i++) { outputTransactions2[i] = new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions2[i]); } clearBatchFiles(); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions2); posterService.postMainEntries(); assertOriginEntries(2, outputTransactions2); balances = unitTestSqlDao.sqlSelect("select * from GL_BALANCE_T"); assertEquals("Should be 1 row", 1, balances.size()); balance = (Map) balances.get(0); a = (BigDecimal) balance.get("UNIV_FISCAL_YR"); assertEquals("2 UNIV_FISCAL_YR is wrong", TestUtils.getFiscalYearForTesting().intValue(), a.intValue()); assertEquals("2 FIN_COA_CD is wrong", "BA", balance.get("FIN_COA_CD")); assertEquals("2 ACCOUNT_NBR is wrong", "6044900", balance.get("ACCOUNT_NBR")); assertEquals("2 SUB_ACCT_NBR is wrong", "-----", balance.get("SUB_ACCT_NBR")); assertEquals("2 FIN_OBJECT_CD is wrong", "4166", balance.get("FIN_OBJECT_CD")); assertEquals("2 FIN_SUB_OBJ_CD is wrong", "---", balance.get("FIN_SUB_OBJ_CD")); assertEquals("2 FIN_BALANCE_TYP_CD is wrong", "AC", balance.get("FIN_BALANCE_TYP_CD")); assertEquals("2 FIN_OBJ_TYP_CD is wrong", "EX", balance.get("FIN_OBJ_TYP_CD")); assertEquals("2 ACLN_ANNL_BAL_AMT is wrong", 1050.14, getAmount(balance, "ACLN_ANNL_BAL_AMT"), 0.01); assertEquals("2 FIN_BEG_BAL_LN_AMT is wrong", 150.15, getAmount(balance, "FIN_BEG_BAL_LN_AMT"), 0.01); assertEquals("2 CONTR_GR_BB_AC_AMT is wrong", 160.16, getAmount(balance, "CONTR_GR_BB_AC_AMT"), 0.01); assertEquals("2 MO1_ACCT_LN_AMT is wrong", 10.00, getAmount(balance, "MO1_ACCT_LN_AMT"), 0.01); assertEquals("2 MO2_ACCT_LN_AMT is wrong", 20.00, getAmount(balance, "MO2_ACCT_LN_AMT"), 0.01); assertEquals("2 MO3_ACCT_LN_AMT is wrong", 30.00, getAmount(balance, "MO3_ACCT_LN_AMT"), 0.01); assertEquals("2 MO4_ACCT_LN_AMT is wrong", 40.00, getAmount(balance, "MO4_ACCT_LN_AMT"), 0.01); assertEquals("2 MO5_ACCT_LN_AMT is wrong", 50.00, getAmount(balance, "MO5_ACCT_LN_AMT"), 0.01); assertEquals("2 MO6_ACCT_LN_AMT is wrong", 60.00, getAmount(balance, "MO6_ACCT_LN_AMT"), 0.01); assertEquals("2 MO7_ACCT_LN_AMT is wrong", 70.00, getAmount(balance, "MO7_ACCT_LN_AMT"), 0.01); assertEquals("2 MO8_ACCT_LN_AMT is wrong", 80.00, getAmount(balance, "MO8_ACCT_LN_AMT"), 0.01); assertEquals("2 MO9_ACCT_LN_AMT is wrong", 90.00, getAmount(balance, "MO9_ACCT_LN_AMT"), 0.01); assertEquals("2 MO10_ACCT_LN_AMT is wrong", 100.00, getAmount(balance, "MO10_ACCT_LN_AMT"), 0.01); assertEquals("2 MO11_ACCT_LN_AMT is wrong", 110.00, getAmount(balance, "MO11_ACCT_LN_AMT"), 0.01); assertEquals("2 MO12_ACCT_LN_AMT is wrong", 120.00, getAmount(balance, "MO12_ACCT_LN_AMT"), 0.01); assertEquals("2 MO13_ACCT_LN_AMT is wrong", 130.00, getAmount(balance, "MO13_ACCT_LN_AMT"), 0.01); } /** * Covers entry posting's effects on encumbrances * * @throws Exception thrown if any exception is encountered for any reason */ public void testPostEncumbrance() throws Exception { LOG.debug("testPostEncumbrance() started"); String[] inputTransactions = { TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---IEEX06CHKDPDENCTEST01 12345214090047 EVERETT J PRESCOTT INC. 100.01D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 D ", TestUtils.getFiscalYearForTesting()+"BA6044900-----5215---IEEX06CHKDPDENCTEST01 12345214090047 EVERETT J PRESCOTT INC. 200.02D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 D ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---IEEX06CHKDPDENCTEST02 12345214090047 EVERETT J PRESCOTT INC. 50.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678CHKDPDENCTEST01 R ", TestUtils.getFiscalYearForTesting()+"BA6044900-----5215---IEEX06CHKDPDENCTEST02 12345214090047 EVERETT J PRESCOTT INC. 60.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678CHKDPDENCTEST01 R ", TestUtils.getFiscalYearForTesting()+"BA6044900-----5215---ACEX06CHKDPDENCTEST02 12345214090047 EVERETT J PRESCOTT INC. 60.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", }; EntryHolder[] outputTransactions = new EntryHolder[] { new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---IEEX06CHKDPDENCTEST01 12345214090047 EVERETT J PRESCOTT INC. 100.01D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 D "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----5215---IEEX06CHKDPDENCTEST01 12345214090047 EVERETT J PRESCOTT INC. 200.02D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 D "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---IEEX06CHKDPDENCTEST02 12345214090047 EVERETT J PRESCOTT INC. 50.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678CHKDPDENCTEST01 R "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----5215---IEEX06CHKDPDENCTEST02 12345214090047 EVERETT J PRESCOTT INC. 60.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678CHKDPDENCTEST01 R "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----5215---ACEX06CHKDPDENCTEST02 12345214090047 EVERETT J PRESCOTT INC. 60.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ") }; clearBatchFiles(); clearEncumbranceTable(); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions); posterService.postMainEntries(); assertOriginEntries(2, outputTransactions); List encumbrances = unitTestSqlDao.sqlSelect("select * from GL_ENCUMBRANCE_T order by fin_object_cd"); assertEquals("Should be 2 encumbrances", 2, encumbrances.size()); Map enc4166 = (Map) encumbrances.get(0); Map enc5215 = (Map) encumbrances.get(1); BigDecimal a = (BigDecimal) enc4166.get("UNIV_FISCAL_YR"); assertEquals("UNIV_FISCAL_YR is wrong", TestUtils.getFiscalYearForTesting().intValue(), a.intValue()); assertEquals("FIN_COA_CD is wrong", "BA", enc4166.get("FIN_COA_CD")); assertEquals("ACCOUNT_NBR is wrong", "6044900", enc4166.get("ACCOUNT_NBR")); assertEquals("SUB_ACCT_NBR is wrong", "-----", enc4166.get("SUB_ACCT_NBR")); assertEquals("FIN_OBJECT_CD is wrong", "4166", enc4166.get("FIN_OBJECT_CD")); assertEquals("FIN_SUB_OBJ_CD is wrong", "---", enc4166.get("FIN_SUB_OBJ_CD")); assertEquals("FIN_BALANCE_TYP_CD is wrong", "IE", enc4166.get("FIN_BALANCE_TYP_CD")); assertEquals("FDOC_TYP_CD is wrong", "CHKD", enc4166.get("FDOC_TYP_CD")); assertEquals("FS_ORIGIN_CD is wrong", "PD", enc4166.get("FS_ORIGIN_CD")); assertEquals("FDOC_NBR is wrong", "ENCTEST01", enc4166.get("FDOC_NBR")); assertEquals("TRN_ENCUM_DESC is wrong", "214090047 EVERETT J PRESCOTT INC.", enc4166.get("TRN_ENCUM_DESC")); assertEquals("ACLN_ENCUM_AMT is wrong", 100.01, getAmount(enc4166, "ACLN_ENCUM_AMT"), 0.01); assertEquals("ACLN_ENCUM_CLS_AMT is wrong", 50, getAmount(enc4166, "ACLN_ENCUM_CLS_AMT"), 0.01); a = (BigDecimal) enc5215.get("UNIV_FISCAL_YR"); assertEquals("UNIV_FISCAL_YR is wrong", TestUtils.getFiscalYearForTesting().intValue(), a.intValue()); assertEquals("FIN_COA_CD is wrong", "BA", enc5215.get("FIN_COA_CD")); assertEquals("ACCOUNT_NBR is wrong", "6044900", enc5215.get("ACCOUNT_NBR")); assertEquals("SUB_ACCT_NBR is wrong", "-----", enc5215.get("SUB_ACCT_NBR")); assertEquals("FIN_OBJECT_CD is wrong", "5215", enc5215.get("FIN_OBJECT_CD")); assertEquals("FIN_SUB_OBJ_CD is wrong", "---", enc5215.get("FIN_SUB_OBJ_CD")); assertEquals("FIN_BALANCE_TYP_CD is wrong", "IE", enc5215.get("FIN_BALANCE_TYP_CD")); assertEquals("FDOC_TYP_CD is wrong", "CHKD", enc5215.get("FDOC_TYP_CD")); assertEquals("FS_ORIGIN_CD is wrong", "PD", enc5215.get("FS_ORIGIN_CD")); assertEquals("FDOC_NBR is wrong", "ENCTEST01", enc5215.get("FDOC_NBR")); assertEquals("TRN_ENCUM_DESC is wrong", "214090047 EVERETT J PRESCOTT INC.", enc5215.get("TRN_ENCUM_DESC")); assertEquals("ACLN_ENCUM_AMT is wrong", 200.02, getAmount(enc5215, "ACLN_ENCUM_AMT"), 0.01); assertEquals("ACLN_ENCUM_CLS_AMT is wrong", 60, getAmount(enc5215, "ACLN_ENCUM_CLS_AMT"), 0.01); } /** * Covers posting entry's effects on account balances * * @throws Exception thrown if any exception is encountered for any reason */ public void testPostGlAccountBalance() throws Exception { LOG.debug("testPostGlAccountBalance() started"); String[] inputTransactions = { TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---TREX07CHKDPDGLACCTBA1 12345DESCRIPTION 123.45D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX07CHKDPDGLACCTBA1 12345DESCRIPTION 1445.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---TREX07CHKDPDGLACCTBA1 12345DESCRIPTION 345.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---CBEX07CHKDPDGLACCTBA1 12345DESCRIPTION 222.00 "+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX07CHKDPDGLACCTBA1 12345DESCRIPTION 5.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---TREX07CHKDPDGLACCTBA1 12345DESCRIPTION 5.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---CBEX07CHKDPDGLACCTBA1 12345DESCRIPTION -2.00 "+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 " }; EntryHolder[] outputTransactions = new EntryHolder[] { new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---TREX07CHKDPDGLACCTBA1 12345DESCRIPTION 123.45D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX07CHKDPDGLACCTBA1 12345DESCRIPTION 1445.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---TREX07CHKDPDGLACCTBA1 12345DESCRIPTION 345.00D"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---CBEX07CHKDPDGLACCTBA1 12345DESCRIPTION 222.00 "+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---ACEX07CHKDPDGLACCTBA1 12345DESCRIPTION 5.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---TREX07CHKDPDGLACCTBA1 12345DESCRIPTION 5.00C"+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA6044900-----4166---CBEX07CHKDPDGLACCTBA1 12345DESCRIPTION -2.00 "+TestUtils.getFiscalYearForTesting()+"-01-05ABCDEFGHIJ----------12345678 ") }; clearBatchFiles(); clearGlAccountBalanceTable(); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions); posterService.postMainEntries(); assertOriginEntries(2, outputTransactions); List balances = unitTestSqlDao.sqlSelect("select * from GL_ACCT_BALANCES_T"); assertEquals("Should be 1 balance", 1, balances.size()); Map bal = (Map) balances.get(0); BigDecimal a = (BigDecimal) bal.get("UNIV_FISCAL_YR"); assertEquals("UNIV_FISCAL_YR is wrong", TestUtils.getFiscalYearForTesting().intValue(), a.intValue()); assertEquals("FIN_COA_CD is wrong", "BA", bal.get("FIN_COA_CD")); assertEquals("ACCOUNT_NBR is wrong", "6044900", bal.get("ACCOUNT_NBR")); assertEquals("SUB_ACCT_NBR is wrong", "-----", bal.get("SUB_ACCT_NBR")); assertEquals("FIN_OBJECT_CD is wrong", "4166", bal.get("FIN_OBJECT_CD")); assertEquals("FIN_SUB_OBJ_CD is wrong", "---", bal.get("FIN_SUB_OBJ_CD")); assertEquals("CURR_BDLN_BAL_AMT is wrong", 220.00, getAmount(bal, "CURR_BDLN_BAL_AMT"), 0.01); assertEquals("ACLN_ACTLS_BAL_AMT is wrong", 1440.00, getAmount(bal, "ACLN_ACTLS_BAL_AMT"), 0.01); assertEquals("ACLN_ENCUM_BAL_AMT is wrong", 0.00, getAmount(bal, "ACLN_ENCUM_BAL_AMT"), 0.01); } /** * Covers posting entry's effects on expenditure transactions * * @throws Exception thrown if any exception is encountered for any reason */ // @RelatesTo(RelatesTo.JiraIssue.KULRNE4797) public void testPostExpenditureTransaction() throws Exception { LOG.debug("testPostExpenditureTransaction() started"); String[] inputTransactions = { // Not posted because icr type cd = 10 TestUtils.getFiscalYearForTesting()+ "BL2231499-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 11000.00D2006-01-05ABCDEFGHIJ----------12345678 ", // Not posted because icr type cd is null TestUtils.getFiscalYearForTesting()+"BA9019993-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 11000.00D2006-01-05ABCDEFGHIJ----------12345678 ", // Not posted because the period code is AB, BB or CB TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEXABCHKDPDET0000011 12345DESCRIPTION 12000.00D2006-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEXBBCHKDPDET0000011 12345DESCRIPTION 0.12C2006-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEXCBCHKDPDET0000011 12345DESCRIPTION 12000.00D2006-01-05ABCDEFGHIJ----------12345678 ", // Posted TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 12000.00D2006-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 0.12C2006-01-05ABCDEFGHIJ----------12345678 ", // Posted TestUtils.getFiscalYearForTesting()+"BL4131406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 12.00C2006-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BL4131406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 2.00D2006-01-05ABCDEFGHIJ----------12345678 ", // Not posted - excluded account TestUtils.getFiscalYearForTesting()+"BL4431406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 33.00C2006-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BL4431406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 4.00D2006-01-05ABCDEFGHIJ----------12345678 ", // Not posted - excluded type (23) TestUtils.getFiscalYearForTesting()+"BL4431407-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 44.00C2006-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BL4431407-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 5.00D2006-01-05ABCDEFGHIJ----------12345678 ", // Posted, non-CS sub acct TestUtils.getFiscalYearForTesting()+"BL4631464XXX 4166---ACEX07CHKDPDET0000021 12345DESCRIPTION 25.00D2006-01-05ABCDEFGHIJ----------12345678 ", TestUtils.getFiscalYearForTesting()+"BL4631464XXX 4166---ACEX07CHKDPDET0000021 12345DESCRIPTION 2.00C2006-01-05ABCDEFGHIJ----------12345678 ", }; EntryHolder[] outputTransactions = new EntryHolder[] { new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL2231499-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 11000.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BA9019993-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 11000.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEXABCHKDPDET0000011 12345DESCRIPTION 12000.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEXBBCHKDPDET0000011 12345DESCRIPTION 0.12C2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEXCBCHKDPDET0000011 12345DESCRIPTION 12000.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 12000.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4031407-----4166---ACEX07CHKDPDET0000011 12345DESCRIPTION 0.12C2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4131406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 12.00C2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4131406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 2.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4431406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 33.00C2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4431406-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 4.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4431407-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 44.00C2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4431407-----2400---ACEX07CHKDPDET0000011 12345DESCRIPTION 5.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4631464XXX 4166---ACEX07CHKDPDET0000021 12345DESCRIPTION 25.00D2006-01-05ABCDEFGHIJ----------12345678 "), new EntryHolder(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, TestUtils.getFiscalYearForTesting()+"BL4631464XXX 4166---ACEX07CHKDPDET0000021 12345DESCRIPTION 2.00C2006-01-05ABCDEFGHIJ----------12345678 "), }; clearBatchFiles(); clearExpenditureTable(); // Add sub account for testing unitTestSqlDao.sqlCommand("delete from CA_SUB_ACCT_T where fin_coa_cd = 'BL' and account_nbr = '4631464' and sub_acct_nbr = 'XXX'"); unitTestSqlDao.sqlCommand("delete from CA_A21_SUB_ACCT_T where fin_coa_cd = 'BL' and account_nbr = '4631464' and sub_acct_nbr = 'XXX'"); unitTestSqlDao.sqlCommand("insert into CA_SUB_ACCT_T (FIN_COA_CD,ACCOUNT_NBR,SUB_ACCT_NBR,OBJ_ID,VER_NBR,SUB_ACCT_NM,SUB_ACCT_ACTV_CD,FIN_RPT_CHRT_CD,FIN_RPT_ORG_CD,FIN_RPT_CD) values ('BL','4631464','XXX','" + java.util.UUID.randomUUID().toString() + "',1,'XXX','N',null,null,null)"); unitTestSqlDao.sqlCommand("INSERT INTO CA_A21_SUB_ACCT_T (FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, OBJ_ID, VER_NBR, SUB_ACCT_TYP_CD, ICR_TYP_CD, FIN_SERIES_ID, ICR_FIN_COA_CD, ICR_ACCOUNT_NBR, OFF_CMP_CD, CST_SHR_COA_CD, CST_SHRSRCACCT_NBR, CST_SRCSUBACCT_NBR) VALUES ('BL','4631464','XXX','" + java.util.UUID.randomUUID().toString() + "',1,'EX',null,'000',null,null,null,'BL','1031400',null)"); // Modify account for testing unitTestSqlDao.sqlCommand("update CA_ACCOUNT_T set fin_series_id = '11' where account_nbr = '9019993'"); // Exclude account unitTestSqlDao.sqlCommand("delete from CA_ICR_EXCL_ACCT_T where account_nbr = '4431406'"); unitTestSqlDao.sqlCommand("insert into CA_ICR_EXCL_ACCT_T (FIN_COA_CD, ACCOUNT_NBR, FIN_OBJ_COA_CD, FIN_OBJECT_CD, OBJ_ID, VER_NBR) values ('BL','4431406','BL','2400','" + java.util.UUID.randomUUID().toString() + "',1)"); // Exclude type unitTestSqlDao.sqlCommand("delete from CA_ICR_EXCL_TYPE_T where acct_icr_typ_cd = '23' and fin_coa_cd = 'BL'"); unitTestSqlDao.sqlCommand("insert into CA_ICR_EXCL_TYPE_T (ACCT_ICR_TYP_CD, FIN_COA_CD, FIN_OBJECT_CD, OBJ_ID, VER_NBR, ACCT_ICR_EXCL_TYP_ACTV_IND) values ('23','BL','2401','" + java.util.UUID.randomUUID().toString() + "',1,'Y')"); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions); posterService.postMainEntries(); assertOriginEntries(2, outputTransactions); List trans = unitTestSqlDao.sqlSelect("select * from GL_EXPEND_TRN_MT order by account_nbr"); assertEquals("Wrong number of transactions", 4, trans.size()); Map acct4031407 = (Map) trans.get(0); assertEquals("Account wrong", "4031407", acct4031407.get("ACCOUNT_NBR")); assertEquals("Amount wrong", 11999.88, getAmount(acct4031407, "ACCT_OBJ_DCST_AMT"), 0.01); Map acct4131406 = (Map) trans.get(1); assertEquals("Account wrong", "4131406", acct4131406.get("ACCOUNT_NBR")); assertEquals("Amount wrong", -10.00, getAmount(acct4131406, "ACCT_OBJ_DCST_AMT"), 0.01); Map acct4631464 = (Map) trans.get(3); assertEquals("Account wrong", "4631464", acct4631464.get("ACCOUNT_NBR")); assertEquals("Amount wrong", 23.00, getAmount(acct4631464, "ACCT_OBJ_DCST_AMT"), 0.01); } /** * Covers the reversal poster * * @throws Exception thrown if any exception is encountered for any reason */ public void testReversalPoster() throws Exception { LOG.debug("testPostReversalPosting() started"); // First post these entries to the reversal table String[] inputTransactions = { TestUtils.getFiscalYearForTesting()+"BL2231408-----5300---ACEX07CHKDPDREVTEST01 12345214090047 EVERETT J PRESCOTT INC. 1445.00D2008-01-05ABCDEFGHIJ----------12345678 2007-10-01 ", TestUtils.getFiscalYearForTesting()+"BL2231408-----5300---ACEX07CHKDPDREVTEST02 12345214090047 EVERETT J PRESCOTT INC. 1445.00D2008-01-05ABCDEFGHIJ----------12345678 2007-12-31 ", TestUtils.getFiscalYearForTesting()+"BL2231408-----5300---ACEX07CHKDPDREVTEST03 12345214090047 EVERETT J PRESCOTT INC. 1445.00D2008-01-05ABCDEFGHIJ----------12345678 2008-01-01 ", TestUtils.getFiscalYearForTesting()+"BL2231408-----5300---ACEX07CHKDPDREVTEST04 12345214090047 EVERETT J PRESCOTT INC. 1445.00D2008-01-05ABCDEFGHIJ----------12345678 2008-01-02 ", TestUtils.getFiscalYearForTesting()+"BL2231408-----5300---ACEX07CHKDPDREVTEST05 12345214090047 EVERETT J PRESCOTT INC. 1445.00D2008-01-05ABCDEFGHIJ----------12345678 2009-03-01 " }; clearBatchFiles(); clearReversalTable(); loadInputTransactions(GeneralLedgerConstants.BatchFileSystem.POSTER_INPUT_FILE, inputTransactions); posterService.postMainEntries(); unitTestSqlDao.clearCache(); // Now post the reversal entries clearGlEntryTable("BL", "2231408"); posterService.postReversalEntries(); List results = unitTestSqlDao.sqlSelect("select * from GL_ENTRY_T where account_nbr = '2231408' order by fdoc_nbr"); assertEquals("Wrong number of posted entries", 5, results.size()); Map row1 = (Map) results.get(0); Map row2 = (Map) results.get(1); Map row3 = (Map) results.get(2); Map row4 = (Map) results.get(3); Map row5 = (Map) results.get(4); assertEquals("Wrong doc nbr", "REVTEST01", row1.get("FDOC_NBR")); assertEquals("Wrong doc nbr", "REVTEST02", row2.get("FDOC_NBR")); assertEquals("Wrong doc nbr", "REVTEST03", row3.get("FDOC_NBR")); assertEquals("Wrong doc nbr", "REVTEST04", row4.get("FDOC_NBR")); assertEquals("Wrong doc nbr", "REVTEST05", row5.get("FDOC_NBR")); } // // /** // * Covers poster ICR generation // * // * @throws Exception thrown if any exception is encountered for any reason // */ // @RelatesTo(JiraIssue.KFSMI833) // public void testIcrGeneration() throws Exception { // LOG.debug("testIcrGeneration() started"); // // Load the expenditure table // unitTestSqlDao.sqlCommand("delete from GL_EXPEND_TRN_MT"); // // // This one shouldn't generate any entries // unitTestSqlDao.sqlCommand("INSERT INTO GL_EXPEND_TRN_MT (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, FIN_BALANCE_TYP_CD, FIN_OBJ_TYP_CD, UNIV_FISCAL_PRD_CD, PROJECT_CD, ORG_REFERENCE_ID, ACCT_OBJ_DCST_AMT) VALUES ('2004', 'BL', '1031400', '-----', '4166', '---', 'AC', 'EX', '07', '----------', '12345678', 10000)"); // // // This one is fin_series_id 001 3.13% to 1 account (2 gl entries) // unitTestSqlDao.sqlCommand("INSERT INTO GL_EXPEND_TRN_MT (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, FIN_BALANCE_TYP_CD, FIN_OBJ_TYP_CD, UNIV_FISCAL_PRD_CD, PROJECT_CD, ORG_REFERENCE_ID, ACCT_OBJ_DCST_AMT) VALUES ('2004', 'BL', '4531407', '-----', '4166', '---', 'AC', 'EX', '07', '----------', '12345678', 10000)"); // // // This one is fin_series_id 002 3.8% to 2 accounts (2.0% & 1.8%) // unitTestSqlDao.sqlCommand("INSERT INTO GL_EXPEND_TRN_MT (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, FIN_BALANCE_TYP_CD, FIN_OBJ_TYP_CD, UNIV_FISCAL_PRD_CD, PROJECT_CD, ORG_REFERENCE_ID, ACCT_OBJ_DCST_AMT) VALUES ('2004', 'BL', '4531408', '-----', '4166', '---', 'AC', 'EX', '07', '----------', '12345678', 10000)"); // // // Clear origin entry & origin entry group // clearOriginEntryTables(); // // posterService.generateIcrTransactions(); // // List results = unitTestSqlDao.sqlSelect("select * from GL_EXPEND_TRN_MT"); // assertEquals("Should be no expenditure rows left", 0, results.size()); // // results = unitTestSqlDao.sqlSelect("select * from gl_origin_entry_t order by origin_entry_id"); // assertEquals("Wrong number of transactions generated", 10, results.size()); // // Map row = (Map) results.get(0); // assertEquals("0 account number wrong", "4531407", row.get("ACCOUNT_NBR")); // assertEquals("0 object code wrong", "5500", row.get("FIN_OBJECT_CD")); // assertEquals("0 amount wrong", 313.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(1); // assertEquals("1 account number wrong", "4531407", row.get("ACCOUNT_NBR")); // assertEquals("1 object code wrong", "8000", row.get("FIN_OBJECT_CD")); // assertEquals("1 amount wrong", 313.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(2); // assertEquals("2 account number wrong", "1023287", row.get("ACCOUNT_NBR")); // assertEquals("2 object code wrong", "1803", row.get("FIN_OBJECT_CD")); // assertEquals("2 amount wrong", 313.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(3); // assertEquals("3 account number wrong", "1023287", row.get("ACCOUNT_NBR")); // assertEquals("3 object code wrong", "8000", row.get("FIN_OBJECT_CD")); // assertEquals("3 amount wrong", 313.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(4); // assertEquals("4 account number wrong", "4531408", row.get("ACCOUNT_NBR")); // assertEquals("4 object code wrong", "5500", row.get("FIN_OBJECT_CD")); // assertEquals("4 amount wrong", 380.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(5); // assertEquals("5 account number wrong", "4531408", row.get("ACCOUNT_NBR")); // assertEquals("5 object code wrong", "8000", row.get("FIN_OBJECT_CD")); // assertEquals("5 amount wrong", 380.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(6); // assertEquals("6 account number wrong", "1023287", row.get("ACCOUNT_NBR")); // assertEquals("6 object code wrong", "1803", row.get("FIN_OBJECT_CD")); // assertEquals("6 amount wrong", 200.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(7); // assertEquals("7 account number wrong", "1023287", row.get("ACCOUNT_NBR")); // assertEquals("7 object code wrong", "8000", row.get("FIN_OBJECT_CD")); // assertEquals("7 amount wrong", 200.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(8); // assertEquals("8 account number wrong", "1031400", row.get("ACCOUNT_NBR")); // assertEquals("8 object code wrong", "1803", row.get("FIN_OBJECT_CD")); // assertEquals("8 amount wrong", 180.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // // row = (Map) results.get(9); // assertEquals("9 account number wrong", "1031400", row.get("ACCOUNT_NBR")); // assertEquals("9 object code wrong", "8000", row.get("FIN_OBJECT_CD")); // assertEquals("9 amount wrong", 180.0, getAmount(row, "TRN_LDGR_ENTR_AMT"), 0.01); // } /** * Converts an amount in a Map to a double (to make it easier to compare) * * @param map the Map with values in it * @param field the key of the Map with a double in it * @return a double from that map */ private double getAmount(Map map, String field) { BigDecimal amt = (BigDecimal) map.get(field); if (amt == null) { return Double.NaN; } else { return amt.doubleValue(); } } }