1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.gl.batch;
20
21 import java.util.Calendar;
22 import java.util.GregorianCalendar;
23
24 import org.kuali.kfs.gl.batch.service.EncumbranceClosingOriginEntryGenerationService;
25 import org.kuali.kfs.gl.batch.service.impl.OriginEntryOffsetPair;
26 import org.kuali.kfs.gl.businessobject.Encumbrance;
27 import org.kuali.kfs.gl.businessobject.OriginEntryTestBase;
28 import org.kuali.kfs.sys.ConfigureContext;
29 import org.kuali.kfs.sys.KFSConstants;
30 import org.kuali.kfs.sys.context.SpringContext;
31 import org.kuali.kfs.sys.context.TestUtils;
32 import org.kuali.rice.core.api.util.type.KualiDecimal;
33
34
35
36
37 @ConfigureContext
38 public class ForwardEncumbranceTest extends OriginEntryTestBase {
39 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ForwardEncumbranceTest.class);
40
41
42
43
44
45 enum ENCUMBRANCE_FIXTURE {
46 COST_SHARE_ENCUMBRANCE("BL", "4531413", "CS001", "7100", "EX", "EE");
47
48
49
50
51
52
53
54
55 private String chart;
56 private String accountNumber;
57 private String subAccountNumber;
58 private String objectCode;
59 private String balanceType;
60 private String objectTypeCode;
61
62
63
64
65
66
67
68
69
70
71 private ENCUMBRANCE_FIXTURE(String chart, String accountNumber, String subAccountNumber, String objectCode, String balanceType, String objectTypeCode) {
72 this.chart = chart;
73 this.accountNumber = accountNumber;
74 this.subAccountNumber = subAccountNumber;
75 this.objectCode = objectCode;
76 this.balanceType = balanceType;
77 this.objectTypeCode = objectTypeCode;
78 }
79
80
81
82
83
84
85 public Encumbrance convertToEncumbrance() {
86 Encumbrance e = new Encumbrance();
87 Integer fy = TestUtils.getFiscalYearForTesting().intValue() - 1;
88 e.setUniversityFiscalYear(fy);
89 e.setChartOfAccountsCode(chart);
90 e.setAccountNumber(accountNumber);
91 e.setSubAccountNumber(subAccountNumber);
92 e.setObjectCode(objectCode);
93 e.setSubObjectCode(KFSConstants.getDashFinancialSubObjectCode());
94 e.setBalanceTypeCode(balanceType);
95 e.setDocumentTypeCode("EXEN");
96 e.setOriginCode("EP");
97 e.setDocumentNumber("000001");
98 GregorianCalendar lastYear = new GregorianCalendar();
99 lastYear.set(Calendar.YEAR, (TestUtils.getFiscalYearForTesting().intValue() - 1));
100 e.setTransactionEncumbranceDate(new java.sql.Date(lastYear.getTimeInMillis()));
101 e.setTransactionEncumbranceDescription("MONKEYS-R-US IS THE NEWEST AND GREATEST STORE IN THE ENTIRE TRI-STATE AREA");
102 e.setAccountLineEncumbranceAmount(new KualiDecimal(1000));
103 e.setAccountLineEncumbranceClosedAmount(KualiDecimal.ZERO);
104 return e;
105 }
106
107
108
109
110
111
112 public String getObjectType() {
113 return this.objectTypeCode;
114 }
115 }
116
117
118
119
120 public void testEncumbranceSelection() {
121 final EncumbranceClosingOriginEntryGenerationService encumbranceClosingOriginEntryGenerationService = SpringContext.getBean(EncumbranceClosingOriginEntryGenerationService.class);
122
123 assertTrue(encumbranceClosingOriginEntryGenerationService.shouldForwardEncumbrance(ENCUMBRANCE_FIXTURE.COST_SHARE_ENCUMBRANCE.convertToEncumbrance()));
124 }
125
126
127
128
129
130
131 public void testCostShareSelection() throws Exception {
132 final EncumbranceClosingOriginEntryGenerationService encumbranceClosingOriginEntryGenerationService = SpringContext.getBean(EncumbranceClosingOriginEntryGenerationService.class);
133
134 Encumbrance encumbrance = ENCUMBRANCE_FIXTURE.COST_SHARE_ENCUMBRANCE.convertToEncumbrance();
135 final Integer postingYear = new Integer(TestUtils.getFiscalYearForTesting().intValue() - 1);
136 OriginEntryOffsetPair entryPair = encumbranceClosingOriginEntryGenerationService.createBeginningBalanceEntryOffsetPair(encumbrance, postingYear, new java.sql.Date(new GregorianCalendar().getTimeInMillis()));
137
138 assertTrue(encumbranceClosingOriginEntryGenerationService.shouldForwardCostShareForEncumbrance(entryPair.getEntry(), entryPair.getOffset(), encumbrance, ENCUMBRANCE_FIXTURE.COST_SHARE_ENCUMBRANCE.getObjectType()));
139
140 OriginEntryOffsetPair costShareEntryPair = encumbranceClosingOriginEntryGenerationService.createCostShareBeginningBalanceEntryOffsetPair(encumbrance, new java.sql.Date(new GregorianCalendar().getTimeInMillis()));
141 assertFalse( "Should not have had a fatal error: " + costShareEntryPair, costShareEntryPair.isFatalErrorFlag() );
142 LOG.info(costShareEntryPair.getEntry().getLine());
143 LOG.info(costShareEntryPair.getOffset().getLine());
144
145 assertTrue(costShareEntryPair.getOffset().getLine().indexOf("GENERATED") >= 0);
146 }
147 }