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