1 package org.kuali.student.core.dictionary.service;
2
3 import java.util.LinkedHashSet;
4 import java.util.List;
5 import java.util.Set;
6 import org.junit.Test;
7 import org.kuali.student.common.dictionary.dto.ObjectStructureDefinition;
8 import org.kuali.student.common.dictionary.service.impl.DictionaryTesterHelper;
9 import org.kuali.student.common.exceptions.OperationFailedException;
10 import org.kuali.student.common.validation.dto.ValidationResultInfo;
11 import org.kuali.student.common.validator.DefaultValidatorImpl;
12 import org.kuali.student.common.validator.ServerDateParser;
13 import org.kuali.student.core.atp.dto.AtpInfo;
14 import org.kuali.student.core.atp.dto.DateRangeInfo;
15 import org.kuali.student.core.atp.dto.MilestoneInfo;
16 import org.springframework.context.ApplicationContext;
17 import org.springframework.context.support.ClassPathXmlApplicationContext;
18 import static org.junit.Assert.*;
19
20 public class TestAtpDictionary {
21
22 @Test
23 public void testLoadAtpDictionary() {
24 System.out.println ("testing atp dictionary");
25 Set<String> startingClasses = new LinkedHashSet();
26 startingClasses.add(AtpInfo.class.getName ());
27 startingClasses.add(MilestoneInfo.class.getName ());
28 startingClasses.add(DateRangeInfo.class.getName ());
29 String contextFile = "ks-atp-dictionary-context";
30 String outFile = "target/" + contextFile + ".txt";
31 DictionaryTesterHelper helper = new DictionaryTesterHelper(outFile,
32 startingClasses, contextFile + ".xml", false);
33 List<String> errors = helper.doTest ();
34 if (errors.size () > 0)
35 {
36 fail ("failed dictionary validation:\n" + formatAsString (errors));
37 }
38 }
39
40 private String formatAsString (List<String> errors)
41 {
42 int i = 0;
43 StringBuilder builder = new StringBuilder ();
44 for (String error : errors)
45 {
46 i ++;
47 builder.append (i + ". " + error + "\n");
48 }
49 return builder.toString ();
50 }
51
52
53 @Test
54 public void testAtpInfoValidation() throws OperationFailedException {
55 ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:ks-atp-dictionary-context.xml");
56 System.out.println("h2. Validation Test");
57 DefaultValidatorImpl val = new DefaultValidatorImpl();
58 val.setDateParser(new ServerDateParser());
59 val.setSearchDispatcher(new MockSearchDispatcher());
60 AtpInfo info = new AtpInfo ();
61 ObjectStructureDefinition os = (ObjectStructureDefinition) ac.getBean(info.getClass().getName());
62 List<ValidationResultInfo> validationResults = val.validateObject(info, os);
63 System.out.println("h3. With just a blank StatementInfo");
64 for (ValidationResultInfo vr : validationResults)
65 {
66 System.out.println (vr.getElement () + " " + vr.getMessage ());
67 }
68 assertEquals(3, validationResults.size());
69 }
70
71 }