View Javadoc

1   package org.kuali.student.core.dictionary.service;
2   
3   import java.util.Arrays;
4   import java.util.LinkedHashSet;
5   import java.util.List;
6   import java.util.Set;
7   import org.junit.Test;
8   import org.kuali.student.common.dictionary.dto.ObjectStructureDefinition;
9   import org.kuali.student.common.dictionary.service.impl.DictionaryTesterHelper;
10  import org.kuali.student.common.exceptions.OperationFailedException;
11  import org.kuali.student.common.validation.dto.ValidationResultInfo;
12  import org.kuali.student.common.validator.DefaultValidatorImpl;
13  import org.kuali.student.common.validator.ServerDateParser;
14  import org.kuali.student.core.statement.dto.ReqCompFieldInfo;
15  import org.kuali.student.core.statement.dto.ReqComponentInfo;
16  import org.kuali.student.core.statement.dto.StatementInfo;
17  import org.kuali.student.core.statement.dto.StatementTreeViewInfo;
18  import org.springframework.context.ApplicationContext;
19  import org.springframework.context.support.ClassPathXmlApplicationContext;
20  import static org.junit.Assert.*;
21  
22  public class TestStatementDictionary {
23  
24  	@Test
25  	public void testLoadStatementInfoDictionary() {
26    System.out.println ("testing statement dictionary");
27  		Set<String> startingClasses = new LinkedHashSet();
28  		startingClasses.add(StatementInfo.class.getName ());
29  		startingClasses.add(ReqComponentInfo.class.getName ());
30  		startingClasses.add(StatementTreeViewInfo.class.getName ());
31  		String contextFile = "ks-statement-dictionary-context";
32  		String outFile = "target/" + contextFile + ".txt";
33  		DictionaryTesterHelper helper = new DictionaryTesterHelper(outFile,
34  				startingClasses, contextFile + ".xml", false);
35  	 List<String> errors = helper.doTest ();
36    if (errors.size () > 0)
37    {
38     fail ("failed dictionary validation:\n" + formatAsString (errors));
39    }
40   }
41  
42   private String formatAsString (List<String> errors)
43   {
44    int i = 0;
45    StringBuilder builder = new StringBuilder ();
46    for (String error : errors)
47    {
48     i ++;
49     builder.append (i + ". " + error + "\n");
50    }
51    return builder.toString ();
52   }
53  
54  
55  	@Test
56  	public void testStatementInfoValidation() throws OperationFailedException {
57  		ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:ks-statement-dictionary-context.xml");
58  		System.out.println("h2. Validation Test");
59  		DefaultValidatorImpl val = new DefaultValidatorImpl();
60  		val.setDateParser(new ServerDateParser());
61  		val.setSearchDispatcher(new MockSearchDispatcher());
62  		StatementInfo info = new StatementInfo();
63  		ObjectStructureDefinition os = (ObjectStructureDefinition) ac.getBean(info.getClass().getName());
64  		List<ValidationResultInfo> validationResults = val.validateObject(info,	os);
65  		System.out.println("h3. With just a blank StatementInfo");
66  		for (ValidationResultInfo vr : validationResults)
67    {
68     System.out.println (vr.getElement () + " " + vr.getMessage ());
69    }
70  		assertEquals(1, validationResults.size());
71  	}
72  
73   @Test
74  	public void testRequirementComponentInfoValidation() throws OperationFailedException {
75  		ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:ks-statement-dictionary-context.xml");
76  		System.out.println("h2. Validation Test");
77  		DefaultValidatorImpl val = new DefaultValidatorImpl();
78  		val.setDateParser(new ServerDateParser());
79  		val.setSearchDispatcher(new MockSearchDispatcher());
80  		ReqComponentInfo info = new ReqComponentInfo();
81  		ObjectStructureDefinition os = (ObjectStructureDefinition) ac.getBean(info.getClass().getName());
82  		List<ValidationResultInfo> validationResults = val.validateObject(info,	os);
83  		System.out.println("h3. With just a blank ReqComponentInfo");
84  		for (ValidationResultInfo vr : validationResults)
85    {
86     System.out.println (vr.getElement () + " " + vr.getMessage ());
87    }
88  		assertEquals(0, validationResults.size());
89  
90    ReqCompFieldInfo fieldInfo = new ReqCompFieldInfo ();
91    fieldInfo.setType ("kuali.reqComponent.field.type.gradeType.id");
92    fieldInfo.setValue ("kuali.resultComponent.grade.letter");
93    info.setReqCompFields (Arrays.asList (fieldInfo));
94    validationResults = val.validateObject(info,	os);
95  		System.out.println("h3. With just a blank ReqComponentInfo");
96  		for (ValidationResultInfo vr : validationResults)
97    {
98     System.out.println (vr.getElement () + " " + vr.getMessage ());
99    }
100 		assertEquals(0, validationResults.size());
101 
102   fieldInfo = new ReqCompFieldInfo ();
103   fieldInfo.setType ("kuali.reqComponent.field.type.gradeType.id");
104   fieldInfo.setValue ("bad with an embedded space in value");
105   info.setReqCompFields (Arrays.asList (fieldInfo));
106   validationResults = val.validateObject(info,	os);
107 		System.out.println("h3. With just a blank ReqComponentInfo");
108 		for (ValidationResultInfo vr : validationResults)
109   {
110    System.out.println (vr.getElement () + " " + vr.getMessage ());
111   }
112 		assertEquals(1, validationResults.size());
113 
114 	}
115 }