001 /** 002 * Copyright 2005-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.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 */ 016 package org.kuali.rice.krad.datadictionary; 017 018 import org.apache.log4j.Logger; 019 import org.junit.After; 020 import org.junit.Before; 021 import org.junit.Test; 022 023 import static org.junit.Assert.assertTrue; 024 import static org.junit.Assert.fail; 025 026 /** 027 * This class is used to test the DataDictionaryBuilder. 028 * 029 * 030 */ 031 032 public class DataDictionaryBuilderTest { 033 protected final Logger LOG = Logger.getLogger(getClass()); 034 035 static final String PACKAGE_CORE_BO = "org/kuali/rice/krad/bo/datadictionary/"; 036 037 static final String PACKAGE_CORE_DOCUMENT = "org/kuali/rice/krad/document/datadictionary/"; 038 039 static final String PACKAGE_KFS = "org/kuali/kfs/datadictionary/"; 040 041 static final String PACKAGE_CHART = "org/kuali/module/chart/datadictionary/"; 042 043 static final String PACKAGE_CG = "org/kuali/module/cg/datadictionary/"; 044 045 static final String PACKAGE_KRA_BUDGET = "org/kuali/module/kra/budget/datadictionary/"; 046 047 static final String PACKAGE_KRA_ROUTINGFORM = "org/kuali/module/kra/routingform/datadictionary/"; 048 049 static final String TESTPACKAGE_INVALID = "org/kuali/rice/krad/datadictionary/test/invalid/"; 050 051 DataDictionary dd = null; 052 053 @Before 054 public void setUp() throws Exception { 055 056 dd = new DataDictionary(); 057 } 058 059 @After 060 public void tearDown() throws Exception { 061 dd = null; 062 } 063 064 @Test 065 public final void testDataDictionaryBuilder_source_invalid() throws Exception { 066 boolean failedAsExpected = false; 067 068 try { 069 dd.addConfigFileLocation(null); 070 } catch (DataDictionaryException e) { 071 failedAsExpected = true; 072 } 073 074 assertTrue(failedAsExpected); 075 } 076 077 @Test 078 public final void testDataDictionaryBuilder_source_unknownFile() throws Exception { 079 String INPUT_FILE = TESTPACKAGE_INVALID + "foo.xml"; 080 081 boolean failedAsExpected = false; 082 083 try { 084 dd.addConfigFileLocation(INPUT_FILE); 085 } catch (DataDictionaryException e) { 086 failedAsExpected = true; 087 } 088 089 assertTrue(failedAsExpected); 090 } 091 092 @Test 093 public final void testDataDictionaryBuilder_source_unknownPackage() throws Exception { 094 String UNKNOWN_PACKAGE = TESTPACKAGE_INVALID + "foo/"; 095 096 boolean failedAsExpected = false; 097 098 try { 099 dd.addConfigFileLocation(UNKNOWN_PACKAGE); 100 } catch (DataDictionaryException e) { 101 failedAsExpected = true; 102 } 103 104 assertTrue(failedAsExpected); 105 } 106 107 @Test 108 public final void testDataDictionaryBuilder_invalidXml() throws Exception { 109 String INPUT_FILE = TESTPACKAGE_INVALID + "InvalidXml.xml"; 110 111 boolean failedAsExpected = false; 112 113 try { 114 dd.addConfigFileLocation(INPUT_FILE); 115 dd.parseDataDictionaryConfigurationFiles( false ); 116 } catch (DataDictionaryException e) { 117 failedAsExpected = true; 118 } catch (Exception e) { 119 LOG.error("Error loading DD files", e); 120 fail("Data Dictionary file load failed but with wrong exception type '" + e.getClass().getName() + "'"); 121 } 122 123 assertTrue(failedAsExpected); 124 } 125 126 @Test 127 public final void testDataDictionaryBuilder_getInvalidDictionary() throws Exception { 128 String INPUT_FILE = TESTPACKAGE_INVALID + "InvalidXml.xml"; 129 130 boolean failedAsExpected = false; 131 132 try { 133 dd.addConfigFileLocation(INPUT_FILE); 134 dd.parseDataDictionaryConfigurationFiles( false ); 135 } catch (DataDictionaryException e) { 136 failedAsExpected = true; 137 } catch (Exception e) { 138 LOG.error("Error loading DD files", e); 139 fail("Data Dictionary file load failed but with wrong exception type '" + e.getClass().getName() + "'"); 140 } 141 142 assertTrue(failedAsExpected); 143 } 144 145 }