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