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.document.dto.DocumentInfo;
14 import org.kuali.student.core.document.dto.RefDocRelationInfo;
15 import org.springframework.context.ApplicationContext;
16 import org.springframework.context.support.ClassPathXmlApplicationContext;
17 import static org.junit.Assert.*;
18
19 public class TestDocumentDictionary {
20
21 @Test
22 public void testLoadAtpDictionary() {
23 System.out.println("testing atp dictionary");
24 Set<String> startingClasses = new LinkedHashSet();
25 startingClasses.add(DocumentInfo.class.getName());
26 startingClasses.add(RefDocRelationInfo.class.getName());
27 String contextFile = "ks-document-dictionary-context";
28 String outFile = "target/" + contextFile + ".txt";
29 DictionaryTesterHelper helper = new DictionaryTesterHelper(outFile, startingClasses, contextFile + ".xml", false);
30 List<String> errors = helper.doTest();
31 if (errors.size() > 0) {
32 fail("failed dictionary validation:\n" + formatAsString(errors));
33 }
34 }
35
36 private String formatAsString(List<String> errors) {
37 int i = 0;
38 StringBuilder builder = new StringBuilder();
39 for (String error : errors) {
40 i++;
41 builder.append(i + ". " + error + "\n");
42 }
43 return builder.toString();
44 }
45
46 @Test
47 public void testDocumentInfoValidation() throws OperationFailedException {
48 ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:ks-document-dictionary-context.xml");
49 System.out.println("h2. Validation Test");
50 DefaultValidatorImpl val = new DefaultValidatorImpl();
51 val.setDateParser(new ServerDateParser());
52 val.setSearchDispatcher(new MockSearchDispatcher());
53 DocumentInfo info = new DocumentInfo();
54 ObjectStructureDefinition os = (ObjectStructureDefinition) ac.getBean(info.getClass().getName());
55 List<ValidationResultInfo> validationResults = val.validateObject(info, os);
56 System.out.println("h3. With just a blank");
57 for (ValidationResultInfo vr : validationResults) {
58 System.out.println(vr.getElement() + " " + vr.getMessage());
59 }
60 assertEquals(2, validationResults.size());
61 }
62 }