1
2
3
4
5 package org.kuali.student.r2.core.process;
6
7 import org.junit.After;
8 import org.junit.AfterClass;
9 import org.junit.Before;
10 import org.junit.BeforeClass;
11 import org.junit.Ignore;
12 import org.junit.Test;
13 import org.junit.runner.RunWith;
14 import org.kuali.student.r2.common.dto.ContextInfo;
15 import org.kuali.student.r2.common.dto.ValidationResultInfo;
16 import org.kuali.student.r2.core.process.krms.KRMSProcessEvaluator;
17 import org.springframework.beans.factory.annotation.Autowired;
18 import org.springframework.test.context.ContextConfiguration;
19 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
20 import org.springframework.test.context.transaction.TransactionConfiguration;
21 import org.springframework.transaction.annotation.Transactional;
22
23 import java.util.ArrayList;
24 import java.util.List;
25
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertFalse;
28 import static org.junit.Assert.assertTrue;
29
30
31
32
33 @RunWith(SpringJUnit4ClassRunner.class)
34 @ContextConfiguration(locations = {"classpath:process-test-context.xml"})
35 @TransactionConfiguration(transactionManager = "JtaTxManager", defaultRollback = true)
36 @Transactional
37 @Ignore
38 public class ProcessPocKrmsIntegrationTest {
39
40 private ContextInfo context;
41
42 @Autowired
43 private KRMSProcessEvaluator evaluator;
44
45 public ProcessPocKrmsIntegrationTest() {
46 }
47
48 @BeforeClass
49 public static void setUpClass() throws Exception {
50 }
51
52 @AfterClass
53 public static void tearDownClass() throws Exception {
54 }
55
56 @Autowired
57 private CourseRegistrationServiceProcessCheckDecorator service;
58
59 @Before
60 public void setUp() {
61 context = new ContextInfo();
62 context.setPrincipalId("testPrincipal1");
63 service.setProcessEvaluator(evaluator);
64 }
65
66 @After
67 public void tearDown() {
68 }
69
70 private List<ValidationResultInfo> getErrorsOrWarnings(List<ValidationResultInfo> results) {
71 List<ValidationResultInfo> errors = new ArrayList<ValidationResultInfo>();
72 for (ValidationResultInfo vr : results) {
73 if (vr.isError()) {
74 errors.add(vr);
75 } else if (vr.isWarn()) {
76 errors.add(vr);
77 }
78 }
79 return errors;
80 }
81
82 @Test
83 public void testCase1IsAlive() throws Exception {
84 System.out.println("case 1: is Alive");
85
86 List<ValidationResultInfo> results = null;
87 results = service.checkStudentEligibility(ProcessPocConstants.PERSON_ID_BARBARA_HARRIS_2016, context);
88 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
89 assertEquals(0, errors.size());
90 }
91
92 @Test
93 public void testCase2IsDead() throws Exception {
94 System.out.println("case 2: is dead");
95
96 List<ValidationResultInfo> results = null;
97 results = service.checkStudentEligibility(ProcessPocConstants.PERSON_ID_KARA_STONE_2272, context);
98 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
99 assertEquals(1, errors.size());
100 assertTrue(errors.get(0).isError());
101 assertEquals("A key piece of data is wrong on your biographic record. Please come to the Registrar's office to clear it up.", results.get(0).getMessage());
102 }
103
104 @Test
105 public void testCase3IsDeadShortCircuit() throws Exception {
106 System.out.println("case 3: is dead short circuit");
107
108 List<ValidationResultInfo> results = null;
109 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_KARA_STONE_2272,
110 ProcessPocConstants.FALL_2011_TERM_KEY, context);
111
112 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
113 assertEquals(1, errors.size());
114 assertTrue(errors.get(0).isError());
115 assertEquals("A key piece of data is wrong on your biographic record. Please come to the Registrar's office to clear it up.", results.get(0).getMessage());
116 }
117
118 @Test
119 public void testCase4TooEarly() throws Exception {
120 System.out.println("case 4: Too Early");
121
122 List<ValidationResultInfo> results = null;
123 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_BARBARA_HARRIS_2016,
124 ProcessPocConstants.SPRING_2012_TERM_KEY, context);
125 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
126 assertEquals(1, errors.size());
127 assertTrue(errors.get(0).isError());
128 assertEquals("Registration period for this term has not yet begun", errors.get(0).getMessage());
129 }
130
131 @Test
132 public void testCase5TooLate() throws Exception {
133 System.out.println("case 5: Too Late");
134
135 List<ValidationResultInfo> results = null;
136 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_BARBARA_HARRIS_2016,
137 ProcessPocConstants.SPRING_2011_TERM_KEY, context);
138 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
139 assertEquals(1, errors.size());
140 assertTrue(errors.get(0).isError());
141 assertEquals("Registration period for this term is closed", errors.get(0).getMessage());
142 }
143
144 @Test
145 public void testCase6HasPaidLastTermsBill() throws Exception {
146 System.out.println("case 6: Has Paid Last Term's Bill");
147
148 List<ValidationResultInfo> results = null;
149 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_BARBARA_HARRIS_2016,
150 ProcessPocConstants.FALL_2011_TERM_KEY, context);
151 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
152 assertEquals(0, errors.size());
153 }
154
155 @Test
156 public void testCase7HasNotPaidLastTermsBill() throws Exception {
157 System.out.println("case 7: Has Not Paid Last Term's Bill");
158
159 List<ValidationResultInfo> results = null;
160 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_CLIFFORD_RIDDLE_2397,
161 ProcessPocConstants.FALL_2011_TERM_KEY, context);
162 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
163 assertEquals(1, errors.size());
164 assertTrue(errors.get(0).isError());
165 assertEquals("You have unpaid tuition charges from last term, please contact the bursars office to resolve this matter", errors.get(0).getMessage());
166 }
167
168 @Test
169 public void testCase8HasAnOverdueBook() throws Exception {
170 System.out.println("case 8: Has an Overdue Book");
171
172 List<ValidationResultInfo> results = null;
173 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_BETTY_MARTIN_2005,
174 ProcessPocConstants.FALL_2011_TERM_KEY, context);
175 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
176 assertEquals(1, errors.size());
177 assertTrue(errors.get(0).isWarn());
178 assertFalse(errors.get(0).isError());
179 assertEquals("Please note: you have an overdue library book", errors.get(0).getMessage());
180 }
181
182 @Test
183 public void testCase9HasBothHolds() throws Exception {
184 System.out.println("case 9: Has Both Holds");
185
186 List<ValidationResultInfo> results = null;
187 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_NINA_WELCH_2166,
188 ProcessPocConstants.FALL_2011_TERM_KEY, context);
189 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
190 assertEquals(2, errors.size());
191 assertTrue(errors.get(0).isWarn());
192 assertFalse(errors.get(0).isError());
193 assertEquals("Please note: you have an overdue library book", errors.get(0).getMessage());
194 assertTrue(errors.get(1).isError());
195 assertEquals("You have unpaid tuition charges from last term, please contact the bursars office to resolve this matter", errors.get(1).getMessage());
196 }
197
198 @Test
199 public void testCase10SummerOnlyStudentCannotRegister() throws Exception {
200 System.out.println("case 10: Summer Only Student Cannot Register");
201
202 List<ValidationResultInfo> results = null;
203 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_AMBER_HOPKINS_2155,
204 ProcessPocConstants.FALL_2011_TERM_KEY, context);
205 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
206 assertEquals(1, errors.size());
207 assertTrue(errors.get(0).isError());
208 assertEquals("Summer only students cannot register for fall, winter or spring terms", errors.get(0).getMessage());
209 }
210
211 @Test
212 public void testCase11SummerOnlyStudentCanRegisterBecauseItIsSummer() throws Exception {
213 System.out.println("case 11: Summer Only Student Can Register Because it Is Summer");
214
215 List<ValidationResultInfo> results = null;
216 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_AMBER_HOPKINS_2155,
217 ProcessPocConstants.SUMMER_2011_TERM_KEY, context);
218 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
219 assertEquals(0, errors.size());
220 }
221
222 @Test
223 public void testCase12TooEarlyButHasAnExemption() throws Exception {
224 System.out.println("case 12: Too Early But Has An Exemption");
225
226 List<ValidationResultInfo> results = null;
227 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_JOHNNY_MANNING_2374,
228 ProcessPocConstants.SPRING_2012_TERM_KEY, context);
229 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
230 assertEquals(0, errors.size());
231 }
232
233 @Test
234 public void testCase13TooLateButHasAnExtensionExemption() throws Exception {
235 System.out.println("case 13: Too Late But Has An Extension Exemption");
236
237 List<ValidationResultInfo> results = null;
238 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_EDDIE_PITTMAN_2406,
239 ProcessPocConstants.SPRING_2011_TERM_KEY, context);
240 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
241 assertEquals(0, errors.size());
242 }
243
244 @Test
245 public void testCase14TooLateEvenWithExtensionExemption() throws Exception {
246 System.out.println("case 14: Too Late Even With Extension Exemption");
247
248 List<ValidationResultInfo> results = null;
249 results = service.checkStudentEligibilityForTerm(ProcessPocConstants.PERSON_ID_TRACY_BURTON_2132,
250 ProcessPocConstants.SPRING_2011_TERM_KEY, context);
251 List<ValidationResultInfo> errors = getErrorsOrWarnings(results);
252 assertEquals(1, errors.size());
253 assertTrue(errors.get(0).isError());
254
255 assertEquals("Registration period for this term is closed" + KRMSProcessEvaluator.EXEMPTION_WAS_USED_MESSAGE_SUFFIX, errors.get(0).getMessage());
256 }
257 }