View Javadoc

1   /*
2    * To change this template, choose Tools | Templates
3    * and open the template in the editor.
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   * @author nwright
32   */
33  @RunWith(SpringJUnit4ClassRunner.class)
34  @ContextConfiguration(locations = {"classpath:process-test-context.xml"})
35  @TransactionConfiguration(transactionManager = "JtaTxManager", defaultRollback = true)
36  @Transactional
37  @Ignore // TODO: re-enable after refactoring
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 }