001 /*
002 * Copyright 2011 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.osedu.org/licenses/ECL-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.student.contract.model.util;
017
018 import org.kuali.student.contract.model.impl.ServiceContractModelPescXsdLoader;
019 import java.io.File;
020 import java.util.ArrayList;
021 import java.util.Collection;
022 import java.util.List;
023 import org.junit.After;
024 import org.junit.AfterClass;
025 import org.junit.Before;
026 import org.junit.BeforeClass;
027 import org.junit.Test;
028 import org.kuali.student.contract.model.ServiceContractModel;
029 import org.kuali.student.contract.model.impl.ServiceContractModelCache;
030 import org.kuali.student.contract.model.impl.ServiceContractModelQDoxLoader;
031 import org.kuali.student.contract.model.validation.ServiceContractModelValidator;
032
033
034 import static org.junit.Assert.*;
035
036 /**
037 *
038 * @author nwright
039 */
040 public class HtmlContractWriterTest {
041
042 public HtmlContractWriterTest() {
043 }
044
045 @BeforeClass
046 public static void setUpClass() throws Exception {
047 }
048
049 @AfterClass
050 public static void tearDownClass() throws Exception {
051 }
052
053 @Before
054 public void setUp() {
055 }
056
057 @After
058 public void tearDown() {
059 }
060 private static final String CORE_DIRECTORY =
061 "C:/svn/ks-1.3/ks-core/ks-core-api/src/main/java";
062 // "C:/svn/maven-dictionary-generator/trunk/src/main/java/org/kuali/student/core";
063 private static final String COMMON_DIRECTORY =
064 "C:/svn/ks-1.3/ks-common/ks-common-api/src/main/java";
065 private static final String ENROLL_PROJECT_SOURCE_DIRECTORY =
066 "C:/svn/ks-1.3/ks-enroll/ks-enroll-api/src/main/java";
067 private static final String LUM_DIRECTORY =
068 "C:/svn/ks-1.3/ks-lum/ks-lum-api/src/main/java";
069 private static final String RICE_DIRECTORY =
070 "C:/svn/rice/rice-release-1-0-2-1-br/api/src/main/java";
071 private static final String RICE_CORE_API_DIRECTORY = "C:/svn/rice/trunk/core/api/src/main/java";
072 private static final String RICE_KIM_API_DIRECTORY = "C:/svn/rice/trunk/kim/kim-api/src/main/java";
073 private static final String RICE_LOCATION_API_DIRECTORY = "C:/svn/rice/trunk/location/api/src/main/java";
074 private static final String RICE_KEW_API_DIRECTORY = "C:/svn/rice/trunk/kew/api/src/main/java";
075 private static final String RICE_KEN_API_DIRECTORY = "C:/svn/rice/trunk/ken/api/src/main/java";
076 private static final String RICE_KSB_API_DIRECTORY = "C:/svn/rice/trunk/ksb/api/src/main/java";
077 private static final String RICE_KRMS_API_DIRECTORY = "C:/svn/rice/trunk/krms/api/src/main/java";
078 private static final String RICE_KRMS_IMPL_DIRECTORY = "C:/svn/rice/trunk/krms/impl/src/main/java";
079 private static final String TEST_SOURCE_DIRECTORY =
080 "src/test/java/org/kuali/student/contract/model/test/source";
081 private static final String HTML_CONTRACT_DIRECTORY = "target/html/contract";
082 private static final String HTML_CONTRACT_DIRECTORY_TEST = HTML_CONTRACT_DIRECTORY + "/test";
083 private static final String HTML_CONTRACT_DIRECTORY_ENROLL = HTML_CONTRACT_DIRECTORY + "/enroll";
084 private static final String HTML_CONTRACT_DIRECTORY_RICE = HTML_CONTRACT_DIRECTORY + "/rice";
085 private static final String HTML_CONTRACT_DIRECTORY_PESC = HTML_CONTRACT_DIRECTORY + "/pesc";
086 private static final String RESOURCES_DIRECTORY =
087 // "C:/svn/student/ks-core/ks-core-api/src/main/java";
088 "src/main/resources";
089
090 private ServiceContractModel getTestModel() {
091 List<String> srcDirs = new ArrayList<String>();
092 srcDirs.add(TEST_SOURCE_DIRECTORY);
093 // srcDirs.add(ENROLL_PROJECT_SOURCE_DIRECTORY);
094 // srcDirs.add(CORE_DIRECTORY);
095 // srcDirs.add(COMMON_DIRECTORY);
096 // srcDirs.add(LUM_DIRECTORY);
097 ServiceContractModel instance = new ServiceContractModelQDoxLoader(
098 srcDirs);
099 return new ServiceContractModelCache(instance);
100
101 }
102
103 private ServiceContractModel getRiceModel() {
104 List<String> srcDirs = new ArrayList<String>();
105 // srcDirs.add(TEST_SOURCE_DIRECTORY);
106 srcDirs.add(RICE_CORE_API_DIRECTORY);
107 srcDirs.add(RICE_KIM_API_DIRECTORY);
108 srcDirs.add(RICE_LOCATION_API_DIRECTORY);
109 srcDirs.add(RICE_KEW_API_DIRECTORY);
110 srcDirs.add(RICE_KEN_API_DIRECTORY);
111 srcDirs.add(RICE_KSB_API_DIRECTORY);
112 srcDirs.add(RICE_KRMS_API_DIRECTORY);
113 srcDirs.add(RICE_KRMS_IMPL_DIRECTORY);
114 // srcDirs.add(CORE_DIRECTORY);
115 // srcDirs.add(COMMON_DIRECTORY);
116 // srcDirs.add(LUM_DIRECTORY);
117 ServiceContractModel instance = new ServiceContractModelQDoxLoader(
118 srcDirs, false);
119 return new ServiceContractModelCache(instance);
120
121 }
122
123 private ServiceContractModel getEnrollModel() {
124 List<String> srcDirs = new ArrayList<String>();
125 // srcDirs.add(TEST_SOURCE_DIRECTORY);
126 srcDirs.add(ENROLL_PROJECT_SOURCE_DIRECTORY);
127 // srcDirs.add(CORE_DIRECTORY);
128 // srcDirs.add(COMMON_DIRECTORY);
129 // srcDirs.add(LUM_DIRECTORY);
130 ServiceContractModel instance = new ServiceContractModelQDoxLoader(
131 srcDirs);
132 return new ServiceContractModelCache(instance);
133
134 }
135 // pesc stuff
136 private static final String PESC_DIRECTORY =
137 RESOURCES_DIRECTORY + "/pesc";
138 private static final String PESC_CORE_MAIN = PESC_DIRECTORY + "/CoreMain.xsd";
139 private static final String PESC_ACAD_REC = PESC_DIRECTORY + "/AcademicRecord_v1.5.0.xsd";
140 private static final String PESC_COLL_TRANS = PESC_DIRECTORY + "/CollegeTranscript_v1.2.0.xsd";
141
142 private ServiceContractModel getPescModel() {
143 List<String> xsdFileNames = new ArrayList();
144 // xsdFileNames.add(PESC_CORE_MAIN);
145 // xsdFileNames.add(PESC_ACAD_REC);
146 xsdFileNames.add(PESC_COLL_TRANS);
147 ServiceContractModel instance = new ServiceContractModelPescXsdLoader(xsdFileNames);
148 instance = new ServiceContractModelCache(instance);
149 validate(instance);
150 return instance;
151 }
152
153
154 private void validate(ServiceContractModel model) {
155 Collection<String> errors =
156 new ServiceContractModelValidator(model).validate();
157 if (errors.size() > 0) {
158 StringBuilder buf = new StringBuilder();
159 buf.append(errors.size()).append(" errors found while validating the data.");
160 int cnt = 0;
161 for (String msg : errors) {
162 cnt++;
163 buf.append("\n");
164 buf.append("*error*").append(cnt).append(":").append(msg);
165 }
166
167 fail(buf.toString());
168 }
169 }
170
171 /**
172 * Test of run
173 */
174 // @Test
175 public void testRunPesc() {
176 ServiceContractModel model = null;
177 HtmlContractWriter writer = null;
178
179 model = this.getPescModel();
180 this.validate(model);
181 writer = new HtmlContractWriter(HTML_CONTRACT_DIRECTORY_PESC, model);
182 writer.write();
183
184 assertTrue(new File(HTML_CONTRACT_DIRECTORY_PESC + "/" + "index.html").exists());
185 }
186
187 /**
188 * Test of run
189 */
190 @Test
191 public void testTestRun () {
192 ServiceContractModel model = null;
193 HtmlContractWriter writer = null;
194
195 model = this.getTestModel();
196 this.validate(model);
197 writer = new HtmlContractWriter(HTML_CONTRACT_DIRECTORY_TEST, model);
198 writer.write();
199
200 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "index.html").exists());
201 assertTrue(
202 new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "LprService.html").exists());
203 assertTrue(
204 new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "LprInfo.html").exists());
205 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "ContextInfo.html").exists());
206 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "RichTextInfo.html").exists());
207 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "MetaInfo.html").exists());
208
209 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "StateService.html").exists());
210 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "StateInfo.html").exists());
211
212 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "TypeService.html").exists());
213 assertTrue(new File(HTML_CONTRACT_DIRECTORY_TEST + "/" + "TypeInfo.html").exists());
214 }
215
216
217 /**
218 * Test of run
219 */
220 // @Test
221 public void testEnrollRun () {
222 ServiceContractModel model = null;
223 HtmlContractWriter writer = null;
224
225 model = this.getEnrollModel();
226 this.validate(model);
227 writer = new HtmlContractWriter(HTML_CONTRACT_DIRECTORY_ENROLL, model);
228 writer.write();
229
230 // assertTrue(new File(HTML_CONTRACT_DIRECTORY_ENROLL + "/" + "index.html").exists());
231 }
232
233 /**
234 * Test of run
235 */
236 // @Test
237 public void testRiceRun () {
238 ServiceContractModel model = null;
239 HtmlContractWriter writer = null;
240
241 model = this.getRiceModel();
242 this.validate(model);
243 writer = new HtmlContractWriter(HTML_CONTRACT_DIRECTORY_RICE, model);
244 writer.write();
245
246 // assertTrue(new File(HTML_CONTRACT_DIRECTORY_ENROLL + "/" + "index.html").exists());
247 }
248 }