001/**
002 * Copyright 2004-2014 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.opensource.org/licenses/ecl2.php
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 */
016package org.kuali.student.datadictionary.mojo;
017
018import java.io.File;
019import java.util.ArrayList;
020import java.util.HashMap;
021import java.util.List;
022import java.util.Map;
023
024import org.apache.maven.project.MavenProject;
025import org.junit.After;
026import org.junit.AfterClass;
027import org.junit.Before;
028import org.junit.BeforeClass;
029import org.junit.Test;
030import org.kuali.student.validation.decorator.mojo.ValidationDecoratorWriterForOneService;
031import org.slf4j.Logger;
032import org.slf4j.LoggerFactory;
033
034/**
035 *
036 * @author nwright
037 */
038public class KSDictionaryCreatorMojoTest {
039    
040    private static Logger log = LoggerFactory.getLogger(KSDictionaryCreatorMojoTest.class);
041    
042
043    private static final String CORE_DIRECTORY =
044            "C:/svn/ks-1.3/ks-core/ks-core-api/src/main/java";
045    // "C:/svn/maven-dictionary-generator/trunk/src/main/java/org/kuali/student/core";
046    private static final String COMMON_DIRECTORY =
047            "C:/svn/ks-1.3/ks-common/ks-common-api/src/main/java";
048    private static final String ENROLL_PROJECT_SRC_MAIN = "C:/svn/ks-1.3/ks-enroll/ks-enroll-api/src/main";
049    private static final String ENROLL_PROJECT_JAVA_DIRECTORY = ENROLL_PROJECT_SRC_MAIN + "/java";
050    private static final String ENROLL_PROJECT_RESOURCES_DIRECTORY = ENROLL_PROJECT_SRC_MAIN + "/resources";
051    private static final String LUM_DIRECTORY =
052            "C:/svn/ks-1.3/ks-lum/ks-lum-api/src/main/java";
053    private static final String RICE_DIRECTORY =
054            "C:/svn/rice/rice-release-1-0-2-1-br/api/src/main/java";
055    private static final String TEST_SOURCE_DIRECTORY =
056            "src/test/java/org/kuali/student/contract/model/test/source";
057    private static final String TARGET_GENERATED_SOURCES = "target/generated-sources";
058    private static final String RESOURCES_DIRECTORY =
059            // "C:/svn/student/ks-core/ks-core-api/src/main/java";
060            "src/main/resources";
061    private static final String PESC_CORE_MAIN = RESOURCES_DIRECTORY
062            + "/CoreMain_v1.8.0.xsd";
063
064    public KSDictionaryCreatorMojoTest() {
065    }
066
067    @BeforeClass
068    public static void setUpClass() throws Exception {
069    }
070
071    @AfterClass
072    public static void tearDownClass() throws Exception {
073    }
074
075    @Before
076    public void setUp() {
077    }
078
079    @After
080    public void tearDown() {
081    }
082
083    /**
084     * Test of execute method, of class KSDictionaryCreatorMojo.
085     */
086    @Test
087    public void testExecute() throws Exception {
088        log.info("execute");
089        List<String> srcDirs = new ArrayList<String>();
090        srcDirs.add(TEST_SOURCE_DIRECTORY);
091//        srcDirs.add(ENROLL_PROJECT_JAVA_DIRECTORY);
092        
093//              srcDirs.add(CORE_DIRECTORY);
094//              srcDirs.add(COMMON_DIRECTORY);
095//              srcDirs.add(LUM_DIRECTORY);
096        KSDictionaryCreatorMojo instance = new KSDictionaryCreatorMojo();
097        Map pluginContext = new HashMap ();
098        MavenProject project = new MavenProject ();
099        pluginContext.put("project", project);
100        instance.setPluginContext(pluginContext);
101        instance.setSourceDirs(srcDirs);
102        instance.setOutputDirectory(new File(TARGET_GENERATED_SOURCES)); 
103//        instance.setOutputDirectory(new File(ENROLL_PROJECT_RESOURCES_DIRECTORY));
104        // Be careful when you uncomment this one it will overwrite stuff in another project
105//        instance.setOutputDirectory(new File(ENROLL_PROJECT_RESOURCES_DIRECTORY));
106        instance.setWriteManual(true);
107        instance.setWriteGenerated(true);
108        instance.setThrowExceptionIfNotAllFilesProcessed(false);
109        List<String> classNames = new ArrayList();
110        // Atp
111//        classNames.add("AtpInfo");
112//        classNames.add("MilestoneInfo");
113//        classNames.add("AtpMilestoneRelationInfo");
114//        classNames.add("AtpAtpRelationInfo");
115//        // Acal
116//        classNames.add("AcademicCalendarInfo");
117//        classNames.add("CampusCalendarInfo");
118//        classNames.add("TermInfo");
119//        classNames.add("RegistrationDateGroupInfo");
120//        classNames.add("HolidayInfo");
121//        classNames.add("KeyDateInfo");
122//        // LPR 
123//        classNames.add("LuiPersonRelationInfo");
124//        classNames.add("LprRosterInfo");
125//        classNames.add("LprRosterEntryInfo");
126//        classNames.add("LprTransactionInfo");
127//        classNames.add("LprTransactionItemInfo");
128//        classNames.add("RequestOptionInfo");
129//        classNames.add("LprTransactionItemResultInfo");
130//        // Hold
131//        classNames.add("HoldInfo");
132//        classNames.add("IssueInfo");
133//        classNames.add("RestrictionInfo");
134//        // LUI 
135//        classNames.add("LuiInfo");
136//        classNames.add("LuiIdentifierInfo");
137//        classNames.add("LuCodeInfo");
138//        classNames.add("FeeInfo");
139//        classNames.add("CurrencyAmountInfo");
140//        classNames.add("RevenueInfo");
141//        classNames.add("AffiliatedOrgInfo");
142//        classNames.add("MeetingScheduleInfo");
143//        classNames.add("LuiLuiRelationInfo");
144//        classNames.add("LuiCapacityInfo");
145        
146//        // Course Offering
147//        classNames.add("CourseOfferingInfo");
148//        classNames.add("CourseWaitlistEntryInfo");
149//        classNames.add("OfferingInstructorInfo");
150//        classNames.add("ActivityOfferingInfo");
151//        classNames.add("RegistrationGroupInfo");
152//        classNames.add("SeatPoolDefinitionInfo");
153//        classNames.add("StatementTreeViewInfo");
154//        classNames.add("ReqComponentInfo");
155//        classNames.add("ReqCompFieldInfo");
156
157//        // Course registration
158//        classNames.add("CourseRegistrationInfo");
159//        classNames.add("ActivityRegistrationInfo");
160//        classNames.add("RegGroupRegistrationInfo");
161//        classNames.add("RegRequestInfo");
162//        classNames.add("RegRequestItemInfo");
163//        classNames.add("RegResponseInfo");
164//        classNames.add("RegResponseItemInfo");
165//
166//          // Exemption
167//        classNames.add("ExemptionInfo");
168//        classNames.add("ExemptionRequestInfo");
169//
170//        // Grading
171//        classNames.add("GradeRosterInfo");
172//        classNames.add("GradeRosterEntryInfo");
173//        classNames.add("GradeValuesGroupInfo"); 
174//        
175//        // LRR
176//        classNames.add("LearningResultRecordInfo");
177//        classNames.add("ResultSourceInfo");       
178//        
179//        // LRC
180//        classNames.add("ResultValuesGroupInfo");
181//        classNames.add("ResultValueInfo");     
182//        classNames.add("ResultScaleInfo"); 
183        
184        instance.execute();
185//        assertTrue(new File(instance.getOutputDirectory() + "/" + "ks-LprInfo-dictionary.xml").exists());
186    }
187}