001package org.apache.turbine; 002 003 004/* 005 * Licensed to the Apache Software Foundation (ASF) under one 006 * or more contributor license agreements. See the NOTICE file 007 * distributed with this work for additional information 008 * regarding copyright ownership. The ASF licenses this file 009 * to you under the Apache License, Version 2.0 (the 010 * "License"); you may not use this file except in compliance 011 * with the License. You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, 016 * software distributed under the License is distributed on an 017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 018 * KIND, either express or implied. See the License for the 019 * specific language governing permissions and limitations 020 * under the License. 021 */ 022 023 024import static org.junit.Assert.assertEquals; 025import static org.junit.Assert.assertFalse; 026import static org.junit.Assert.assertNotNull; 027 028import java.io.File; 029import java.net.URL; 030 031import org.apache.commons.configuration.Configuration; 032import org.apache.commons.configuration.FileSystem; 033import org.apache.commons.configuration.PropertiesConfiguration; 034import org.apache.turbine.test.BaseTestCase; 035import org.apache.turbine.util.TurbineConfig; 036import org.apache.turbine.util.TurbineXmlConfig; 037import org.junit.Test; 038 039/** 040 * Tests that the ConfigurationFactory and regular old properties methods both work. 041 * Verify the overriding of properties. 042 * 043 * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a> 044 * @version $Id: ConfigurationTest.java 1695636 2015-08-13 00:45:19Z tv $ 045 */ 046public class ConfigurationTest extends BaseTestCase 047{ 048 public static final String SERVICE_PREFIX = "services."; 049 050 /** 051 * A <code>Service</code> property determining its implementing 052 * class name . 053 */ 054 public static final String CLASSNAME_SUFFIX = ".classname"; 055 056 private TurbineConfig tc = null; 057 private TurbineXmlConfig txc = null; 058 059 @Test 060 public void testCreateTurbineWithConfigurationXML() throws Exception 061 { 062 txc = new TurbineXmlConfig(".", "conf/test/TurbineConfiguration.xml"); 063 064 try 065 { 066 txc.initialize(); 067 068 Configuration configuration = Turbine.getConfiguration(); 069 assertNotNull("No Configuration Object found!", configuration); 070 assertFalse("Make sure we have values", configuration.isEmpty()); 071 072 // overridden value 073 String key = "module.cache"; 074 assertEquals("Read a config value " + key + ", received:" + configuration.getString(key), "true", configuration.getString(key)); 075 076 // non overridden value 077 key = "scheduledjob.cache.size"; 078 assertEquals("Read a config value " + key + ", received:" + configuration.getString(key), "10", configuration.getString(key)); 079 } 080 catch (Exception e) 081 { 082 throw e; 083 } 084 finally 085 { 086 txc.dispose(); 087 } 088 } 089 090 @Test 091 public void testCreateTurbineWithConfiguration() throws Exception 092 { 093 tc = new TurbineConfig(".", "/conf/test/TemplateService.properties"); 094 095 try 096 { 097 tc.initialize(); 098 099 Configuration configuration = Turbine.getConfiguration(); 100 assertNotNull("No Configuration Object found!", configuration); 101 assertFalse("Make sure we have values", configuration.isEmpty()); 102 103 String key = "scheduledjob.cache.size"; 104 assertEquals("Read a config value " + key + ", received:" + configuration.getString(key), "10", configuration.getString(key)); 105 } 106 catch (Exception e) 107 { 108 throw e; 109 } 110 finally 111 { 112 tc.dispose(); 113 } 114 } 115 116 @Test 117 public void testCreateTurbineWithIncludedConfiguration() throws Exception 118 { 119 String confPath = Turbine.getRealPath( "/conf/test/usersettings.properties" ); 120 try 121 { 122 Configuration configuration = new PropertiesConfiguration(confPath); 123 assertNotNull("No Configuration Object found!", configuration); 124 assertFalse("Make sure we have values", configuration.isEmpty()); 125 126 String key = "scheduledjob.cache.size"; 127 assertEquals("Read a config value " + key + ", received:" + configuration.getString(key), "100", configuration.getString(key)); 128 String key2 ="module.cache"; 129 assertEquals("Read a config value " + key2 + ", received:" + configuration.getString(key2), "false", configuration.getString(key2)); 130 } 131 catch (Exception e) 132 { 133 throw e; 134 } 135 } 136 137 @SuppressWarnings("boxing") 138 @Test 139 public void testCreateTurbineWithXMLBuilderConfiguration() throws Exception 140 { 141 String configurationRessourcePath ="conf/test/ConfigurationBuilder.xml"; 142 tc = new TurbineXmlConfig(".",configurationRessourcePath ); 143 144 try 145 { 146 tc.initialize(); 147 148 Configuration configuration = Turbine.getConfiguration(); 149 assertNotNull("No Configuration Object found!", configuration); 150 assertFalse("Make sure we have values", configuration.isEmpty()); 151 152 //assertTrue("Test combined configuration is"+ configuration, configuration instanceof CombinedConfiguration); 153 154 // overridden value 155 String key = "scheduledjob.cache.size"; 156 assertEquals("Read a config value " + key + ", received:" + configuration.getInt(key), 100, configuration.getInt(key)); 157 158 // double overridden value 159 key = "module.cache"; 160 assertEquals("Read a config value " + key + ", received:" + configuration.getBoolean(key), false, configuration.getBoolean(key)); 161 // new property 162 key = "tests.test"; 163 configuration.addProperty( key, 123 ); 164 assertEquals("Read a config value " + key + ", received:" + configuration.getInt(key), 123, configuration.getInt(key)); 165 // not set 166 key="test.nulltest3"; 167 assertEquals("Read a included config value " + key + ", received:" + configuration.getString(key), null, configuration.getString(key)); 168 // overridden value 169 key="services.PullService.earlyInit"; 170 assertEquals("Read a config value " + key + ", received:" + configuration.getBoolean(key), true, configuration.getBoolean(key)); 171 configuration.setProperty( key, false ); 172 assertEquals("Read a config value " + key + ", received:" + configuration.getBoolean(key), false, configuration.getBoolean(key)); 173 174 // converts to URL, cft. RFC2396 175 URL testURL = FileSystem.getDefaultFileSystem().locateFromURL(new File( Turbine.getApplicationRoot()).toURI().toString() , configurationRessourcePath); 176 assertNotNull( "Should be a valid URL",testURL); 177 } 178 finally 179 { 180 tc.dispose(); 181 } 182 } 183 184}