001    package org.kuali.student.lum.statement.config.context;
002    
003    import java.util.ArrayList;
004    import java.util.Date;
005    import java.util.HashMap;
006    import java.util.List;
007    import java.util.Map;
008    
009    import org.junit.Assert;
010    import org.junit.Before;
011    import org.junit.Test;
012    import org.kuali.student.common.dictionary.dto.ObjectStructureDefinition;
013    import org.kuali.student.common.dto.StatusInfo;
014    import org.kuali.student.common.exceptions.AlreadyExistsException;
015    import org.kuali.student.common.exceptions.DataValidationErrorException;
016    import org.kuali.student.common.exceptions.DoesNotExistException;
017    import org.kuali.student.common.exceptions.InvalidParameterException;
018    import org.kuali.student.common.exceptions.MissingParameterException;
019    import org.kuali.student.common.exceptions.OperationFailedException;
020    import org.kuali.student.common.exceptions.PermissionDeniedException;
021    import org.kuali.student.common.exceptions.VersionMismatchException;
022    import org.kuali.student.common.search.dto.SearchCriteriaTypeInfo;
023    import org.kuali.student.common.search.dto.SearchRequest;
024    import org.kuali.student.common.search.dto.SearchResult;
025    import org.kuali.student.common.search.dto.SearchResultTypeInfo;
026    import org.kuali.student.common.search.dto.SearchTypeInfo;
027    import org.kuali.student.common.validation.dto.ValidationResultInfo;
028    import org.kuali.student.core.atp.dto.AtpDurationTypeInfo;
029    import org.kuali.student.core.atp.dto.AtpInfo;
030    import org.kuali.student.core.atp.dto.AtpSeasonalTypeInfo;
031    import org.kuali.student.core.atp.dto.AtpTypeInfo;
032    import org.kuali.student.core.atp.dto.DateRangeInfo;
033    import org.kuali.student.core.atp.dto.DateRangeTypeInfo;
034    import org.kuali.student.core.atp.dto.MilestoneInfo;
035    import org.kuali.student.core.atp.dto.MilestoneTypeInfo;
036    import org.kuali.student.core.atp.service.AtpService;
037    import org.kuali.student.core.statement.dto.ReqCompFieldInfo;
038    import org.kuali.student.core.statement.dto.ReqComponentInfo;
039    
040    public class AtpContextImplTest {
041            private AtpService atpService = new AtpServiceMock();
042            private AtpContextImpl atpContext = new AtpContextImpl();
043            private ReqComponentInfo reqComponent1;
044            private ReqComponentInfo reqComponent2;
045            
046            private void setupReqComponent1() {
047                    reqComponent1 = new ReqComponentInfo();
048            List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>();
049            ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo();
050            reqCompField1.setType("kuali.reqComponent.field.type.duration");
051            reqCompField1.setValue("2");
052            reqCompFieldList.add(reqCompField1);
053            ReqCompFieldInfo reqCompField2 = new ReqCompFieldInfo();
054            reqCompField2.setType("kuali.reqComponent.field.type.durationType.id");
055            reqCompField2.setValue("kuali.atp.duration.Year");
056            reqCompFieldList.add(reqCompField2);
057    
058                    reqComponent1.setReqCompFields(reqCompFieldList);
059            }
060            
061            private void setupReqComponent2() {
062                    reqComponent2 = new ReqComponentInfo();
063            List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>();
064            ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo();
065            reqCompField1.setType("kuali.reqComponent.field.type.duration");
066            reqCompField1.setValue(null);
067            reqCompFieldList.add(reqCompField1);
068            ReqCompFieldInfo reqCompField2 = new ReqCompFieldInfo();
069            reqCompField2.setType("kuali.reqComponent.field.type.durationType.id");
070            reqCompField2.setValue(null);
071            reqCompFieldList.add(reqCompField2);
072    
073                    reqComponent2.setReqCompFields(reqCompFieldList);
074            }
075            
076            @Before
077            public void beforeMethod() {
078                    atpContext.setAtpService(atpService);
079                    setupReqComponent1();
080                    setupReqComponent2();
081            }
082    
083            @Test
084        public void testCreateContextMap_ContainsTokens() throws OperationFailedException {
085                    Map<String, Object> contextMap = atpContext.createContextMap(reqComponent1);
086                    Assert.assertNotNull(contextMap);
087                    Assert.assertTrue(contextMap.containsKey(AtpContextImpl.DURATION_TOKEN));
088                    Assert.assertTrue(contextMap.containsKey(AtpContextImpl.DURATION_TYPE_TOKEN));
089        }
090    
091            @Test
092        public void testCreateContextMap_TokenValues() throws OperationFailedException {
093                    Map<String, Object> contextMap = atpContext.createContextMap(reqComponent1);
094                    String duration = (String) contextMap.get(AtpContextImpl.DURATION_TOKEN);
095                    AtpDurationTypeInfo type = (AtpDurationTypeInfo) contextMap.get(AtpContextImpl.DURATION_TYPE_TOKEN);
096                    
097                    Assert.assertEquals("2", duration);
098                    Assert.assertEquals("kuali.atp.duration.Year", type.getId());
099        }
100    
101            @Test
102        public void testCreateContextMap_NullTokenValues() throws OperationFailedException {
103                    Map<String, Object> contextMap = atpContext.createContextMap(reqComponent2);
104                    String duration = (String) contextMap.get(AtpContextImpl.DURATION_TOKEN);
105                    AtpDurationTypeInfo type = (AtpDurationTypeInfo) contextMap.get(AtpContextImpl.DURATION_TYPE_TOKEN);
106                    
107                    Assert.assertEquals(null, duration);
108                    Assert.assertEquals(null, type);
109        }
110    
111            private static class AtpServiceMock implements AtpService {
112    
113                    private Map<String, AtpDurationTypeInfo> durationTypeMap = new HashMap<String, AtpDurationTypeInfo>();
114    
115                    public AtpServiceMock() {
116                            AtpDurationTypeInfo type1 = new AtpDurationTypeInfo();
117                            type1.setId("kuali.atp.duration.Year");
118                            type1.setName("Year");
119                            durationTypeMap.put("kuali.atp.duration.Year", type1);
120    
121                            AtpDurationTypeInfo type2 = new AtpDurationTypeInfo();
122                            type2.setId("kuali.atp.duration.Term");
123                            type2.setName("Term");
124                            durationTypeMap.put("kuali.atp.duration.Term", type2);
125                    }
126                    
127                    @Override
128                    public DateRangeInfo addDateRange(String atpKey, String dateRangeKey,
129                                    DateRangeInfo dateRangeInfo) throws AlreadyExistsException,
130                                    DataValidationErrorException, InvalidParameterException,
131                                    MissingParameterException, OperationFailedException,
132                                    PermissionDeniedException {
133                            // TODO Auto-generated method stub
134                            return null;
135                    }
136    
137                    @Override
138                    public MilestoneInfo addMilestone(String atpKey, String milestoneKey,
139                                    MilestoneInfo milestoneInfo) throws AlreadyExistsException,
140                                    DataValidationErrorException, InvalidParameterException,
141                                    MissingParameterException, OperationFailedException,
142                                    PermissionDeniedException {
143                            // TODO Auto-generated method stub
144                            return null;
145                    }
146    
147                    @Override
148                    public AtpInfo createAtp(String atpTypeKey, String atpKey,
149                                    AtpInfo atpInfo) throws AlreadyExistsException,
150                                    DataValidationErrorException, InvalidParameterException,
151                                    MissingParameterException, OperationFailedException,
152                                    PermissionDeniedException {
153                            // TODO Auto-generated method stub
154                            return null;
155                    }
156    
157                    @Override
158                    public StatusInfo deleteAtp(String atpKey)
159                                    throws DoesNotExistException, InvalidParameterException,
160                                    MissingParameterException, OperationFailedException,
161                                    PermissionDeniedException {
162                            // TODO Auto-generated method stub
163                            return null;
164                    }
165    
166                    @Override
167                    public AtpInfo getAtp(String atpKey) throws DoesNotExistException,
168                                    InvalidParameterException, MissingParameterException,
169                                    OperationFailedException {
170                            // TODO Auto-generated method stub
171                            return null;
172                    }
173    
174                    @Override
175                    public AtpDurationTypeInfo getAtpDurationType(String atpDurationTypeKey)
176                                    throws DoesNotExistException, InvalidParameterException,
177                                    MissingParameterException, OperationFailedException {
178                            return durationTypeMap.get(atpDurationTypeKey);
179                    }
180    
181                    @Override
182                    public List<AtpDurationTypeInfo> getAtpDurationTypes()
183                                    throws OperationFailedException {
184                            // TODO Auto-generated method stub
185                            return null;
186                    }
187    
188                    @Override
189                    public AtpSeasonalTypeInfo getAtpSeasonalType(String atpSeasonalTypeKey)
190                                    throws DoesNotExistException, InvalidParameterException,
191                                    MissingParameterException, OperationFailedException {
192                            // TODO Auto-generated method stub
193                            return null;
194                    }
195    
196                    @Override
197                    public List<AtpSeasonalTypeInfo> getAtpSeasonalTypes()
198                                    throws OperationFailedException {
199                            // TODO Auto-generated method stub
200                            return null;
201                    }
202    
203                    @Override
204                    public AtpTypeInfo getAtpType(String atpTypeKey)
205                                    throws DoesNotExistException, InvalidParameterException,
206                                    MissingParameterException, OperationFailedException {
207                            // TODO Auto-generated method stub
208                            return null;
209                    }
210    
211                    @Override
212                    public List<AtpTypeInfo> getAtpTypes() throws OperationFailedException {
213                            // TODO Auto-generated method stub
214                            return null;
215                    }
216    
217                    @Override
218                    public List<AtpInfo> getAtpsByAtpType(String atpTypeKey)
219                                    throws InvalidParameterException, MissingParameterException,
220                                    OperationFailedException {
221                            // TODO Auto-generated method stub
222                            return null;
223                    }
224    
225                    @Override
226                    public List<AtpInfo> getAtpsByDate(Date searchDate)
227                                    throws InvalidParameterException, MissingParameterException,
228                                    OperationFailedException {
229                            // TODO Auto-generated method stub
230                            return null;
231                    }
232    
233                    @Override
234                    public List<AtpInfo> getAtpsByDates(Date startDate, Date endDate)
235                                    throws InvalidParameterException, MissingParameterException,
236                                    OperationFailedException {
237                            // TODO Auto-generated method stub
238                            return null;
239                    }
240    
241                    @Override
242                    public DateRangeInfo getDateRange(String dateRangeKey)
243                                    throws DoesNotExistException, InvalidParameterException,
244                                    MissingParameterException, OperationFailedException {
245                            // TODO Auto-generated method stub
246                            return null;
247                    }
248    
249                    @Override
250                    public DateRangeTypeInfo getDateRangeType(String dateRangeTypeKey)
251                                    throws DoesNotExistException, InvalidParameterException,
252                                    MissingParameterException, OperationFailedException {
253                            // TODO Auto-generated method stub
254                            return null;
255                    }
256    
257                    @Override
258                    public List<DateRangeTypeInfo> getDateRangeTypes()
259                                    throws OperationFailedException {
260                            // TODO Auto-generated method stub
261                            return null;
262                    }
263    
264                    @Override
265                    public List<DateRangeTypeInfo> getDateRangeTypesForAtpType(
266                                    String atpTypeKey) throws DoesNotExistException,
267                                    InvalidParameterException, MissingParameterException,
268                                    OperationFailedException {
269                            // TODO Auto-generated method stub
270                            return null;
271                    }
272    
273                    @Override
274                    public List<DateRangeInfo> getDateRangesByAtp(String atpKey)
275                                    throws InvalidParameterException, MissingParameterException,
276                                    OperationFailedException {
277                            // TODO Auto-generated method stub
278                            return null;
279                    }
280    
281                    @Override
282                    public List<DateRangeInfo> getDateRangesByDate(Date searchDate)
283                                    throws InvalidParameterException, MissingParameterException,
284                                    OperationFailedException {
285                            // TODO Auto-generated method stub
286                            return null;
287                    }
288    
289                    @Override
290                    public MilestoneInfo getMilestone(String milestoneKey)
291                                    throws DoesNotExistException, InvalidParameterException,
292                                    MissingParameterException, OperationFailedException {
293                            // TODO Auto-generated method stub
294                            return null;
295                    }
296    
297                    @Override
298                    public MilestoneTypeInfo getMilestoneType(String milestoneTypeKey)
299                                    throws DoesNotExistException, InvalidParameterException,
300                                    MissingParameterException, OperationFailedException {
301                            // TODO Auto-generated method stub
302                            return null;
303                    }
304    
305                    @Override
306                    public List<MilestoneTypeInfo> getMilestoneTypes()
307                                    throws OperationFailedException {
308                            // TODO Auto-generated method stub
309                            return null;
310                    }
311    
312                    @Override
313                    public List<MilestoneTypeInfo> getMilestoneTypesForAtpType(
314                                    String atpTypeKey) throws DoesNotExistException,
315                                    InvalidParameterException, MissingParameterException,
316                                    OperationFailedException {
317                            // TODO Auto-generated method stub
318                            return null;
319                    }
320    
321                    @Override
322                    public List<MilestoneInfo> getMilestonesByAtp(String atpKey)
323                                    throws InvalidParameterException, MissingParameterException,
324                                    OperationFailedException {
325                            // TODO Auto-generated method stub
326                            return null;
327                    }
328    
329                    @Override
330                    public List<MilestoneInfo> getMilestonesByDates(Date startDate,
331                                    Date endDate) throws InvalidParameterException,
332                                    MissingParameterException, OperationFailedException {
333                            // TODO Auto-generated method stub
334                            return null;
335                    }
336    
337                    @Override
338                    public List<MilestoneInfo> getMilestonesByDatesAndType(
339                                    String milestoneTypeKey, Date startDate, Date endDate)
340                                    throws InvalidParameterException, MissingParameterException,
341                                    OperationFailedException {
342                            // TODO Auto-generated method stub
343                            return null;
344                    }
345    
346                    @Override
347                    public StatusInfo removeDateRange(String dateRangeKey)
348                                    throws DoesNotExistException, InvalidParameterException,
349                                    MissingParameterException, OperationFailedException,
350                                    PermissionDeniedException {
351                            // TODO Auto-generated method stub
352                            return null;
353                    }
354    
355                    @Override
356                    public StatusInfo removeMilestone(String milestoneKey)
357                                    throws DoesNotExistException, InvalidParameterException,
358                                    MissingParameterException, OperationFailedException,
359                                    PermissionDeniedException {
360                            // TODO Auto-generated method stub
361                            return null;
362                    }
363    
364                    @Override
365                    public AtpInfo updateAtp(String atpKey, AtpInfo atpInfo)
366                                    throws DataValidationErrorException, DoesNotExistException,
367                                    InvalidParameterException, MissingParameterException,
368                                    OperationFailedException, PermissionDeniedException,
369                                    VersionMismatchException {
370                            // TODO Auto-generated method stub
371                            return null;
372                    }
373    
374                    @Override
375                    public DateRangeInfo updateDateRange(String dateRangeKey,
376                                    DateRangeInfo dateRangeInfo)
377                                    throws DataValidationErrorException, DoesNotExistException,
378                                    InvalidParameterException, MissingParameterException,
379                                    OperationFailedException, PermissionDeniedException,
380                                    VersionMismatchException {
381                            // TODO Auto-generated method stub
382                            return null;
383                    }
384    
385                    @Override
386                    public MilestoneInfo updateMilestone(String milestoneKey,
387                                    MilestoneInfo milestoneInfo)
388                                    throws DataValidationErrorException, DoesNotExistException,
389                                    InvalidParameterException, MissingParameterException,
390                                    OperationFailedException, PermissionDeniedException,
391                                    VersionMismatchException {
392                            // TODO Auto-generated method stub
393                            return null;
394                    }
395    
396                    @Override
397                    public List<ValidationResultInfo> validateAtp(String validationType,
398                                    AtpInfo atpInfo) throws DoesNotExistException,
399                                    InvalidParameterException, MissingParameterException,
400                                    OperationFailedException {
401                            // TODO Auto-generated method stub
402                            return null;
403                    }
404    
405                    @Override
406                    public List<ValidationResultInfo> validateDateRange(
407                                    String validationType, DateRangeInfo dateRangeInfo)
408                                    throws DoesNotExistException, InvalidParameterException,
409                                    MissingParameterException, OperationFailedException {
410                            // TODO Auto-generated method stub
411                            return null;
412                    }
413    
414                    @Override
415                    public List<ValidationResultInfo> validateMilestone(
416                                    String validationType, MilestoneInfo milestoneInfo)
417                                    throws DoesNotExistException, InvalidParameterException,
418                                    MissingParameterException, OperationFailedException {
419                            // TODO Auto-generated method stub
420                            return null;
421                    }
422    
423                    @Override
424                    public SearchCriteriaTypeInfo getSearchCriteriaType(
425                                    String searchCriteriaTypeKey) throws DoesNotExistException,
426                                    InvalidParameterException, MissingParameterException,
427                                    OperationFailedException {
428                            // TODO Auto-generated method stub
429                            return null;
430                    }
431    
432                    @Override
433                    public List<SearchCriteriaTypeInfo> getSearchCriteriaTypes()
434                                    throws OperationFailedException {
435                            // TODO Auto-generated method stub
436                            return null;
437                    }
438    
439                    @Override
440                    public SearchResultTypeInfo getSearchResultType(
441                                    String searchResultTypeKey) throws DoesNotExistException,
442                                    InvalidParameterException, MissingParameterException,
443                                    OperationFailedException {
444                            // TODO Auto-generated method stub
445                            return null;
446                    }
447    
448                    @Override
449                    public List<SearchResultTypeInfo> getSearchResultTypes()
450                                    throws OperationFailedException {
451                            // TODO Auto-generated method stub
452                            return null;
453                    }
454    
455                    @Override
456                    public SearchTypeInfo getSearchType(String searchTypeKey)
457                                    throws DoesNotExistException, InvalidParameterException,
458                                    MissingParameterException, OperationFailedException {
459                            // TODO Auto-generated method stub
460                            return null;
461                    }
462    
463                    @Override
464                    public List<SearchTypeInfo> getSearchTypes()
465                                    throws OperationFailedException {
466                            // TODO Auto-generated method stub
467                            return null;
468                    }
469    
470                    @Override
471                    public List<SearchTypeInfo> getSearchTypesByCriteria(
472                                    String searchCriteriaTypeKey) throws DoesNotExistException,
473                                    InvalidParameterException, MissingParameterException,
474                                    OperationFailedException {
475                            // TODO Auto-generated method stub
476                            return null;
477                    }
478    
479                    @Override
480                    public List<SearchTypeInfo> getSearchTypesByResult(
481                                    String searchResultTypeKey) throws DoesNotExistException,
482                                    InvalidParameterException, MissingParameterException,
483                                    OperationFailedException {
484                            // TODO Auto-generated method stub
485                            return null;
486                    }
487    
488                    @Override
489                    public SearchResult search(SearchRequest searchRequest)
490                                    throws MissingParameterException {
491                            // TODO Auto-generated method stub
492                            return null;
493                    }
494    
495            @Override
496            public ObjectStructureDefinition getObjectStructure(String objectTypeKey) {
497                // TODO Kamal - THIS METHOD NEEDS JAVADOCS
498                return null;
499            }
500    
501            @Override
502            public List<String> getObjectTypes() {
503                // TODO Kamal - THIS METHOD NEEDS JAVADOCS
504                return null;
505            }
506                    
507            }
508    }