1 16 17 package org.apache.commons.configuration; 18 19 import java.io.File ; 20 import java.net.URL ; 21 import java.util.ArrayList ; 22 import java.util.List ; 23 24 import junit.framework.TestCase; 25 import junitx.framework.ListAssert; 26 27 32 public class TestConfigurationUtils extends TestCase 33 { 34 protected Configuration config = new BaseConfiguration(); 35 36 public void testToString() 37 { 38 String lineSeparator = System.getProperty("line.separator"); 39 40 assertEquals("String representation of an empty configuration", "", ConfigurationUtils.toString(config)); 41 42 config.setProperty("one", "1"); 43 assertEquals("String representation of a configuration", "one=1", ConfigurationUtils.toString(config)); 44 45 config.setProperty("two", "2"); 46 assertEquals("String representation of a configuration", "one=1" + lineSeparator + "two=2" , ConfigurationUtils.toString(config)); 47 48 config.clearProperty("one"); 49 assertEquals("String representation of a configuration", "two=2" , ConfigurationUtils.toString(config)); 50 51 config.setProperty("one","1"); 52 assertEquals("String representation of a configuration", "two=2" + lineSeparator + "one=1" , ConfigurationUtils.toString(config)); 53 } 54 55 public void testGetURL() throws Exception 56 { 57 assertEquals( 58 "http://localhost:8080/webapp/config/config.xml", 59 ConfigurationUtils 60 .getURL( 61 "http://localhost:8080/webapp/config/baseConfig.xml", 62 "config.xml") 63 .toString()); 64 assertEquals( 65 "http://localhost:8080/webapp/config/config.xml", 66 ConfigurationUtils 67 .getURL( 68 "http://localhost:8080/webapp/baseConfig.xml", 69 "config/config.xml") 70 .toString()); 71 URL url = ConfigurationUtils.getURL(null, "config.xml"); 72 assertEquals("file", url.getProtocol()); 73 assertEquals("", url.getHost()); 74 75 assertEquals( 76 "http://localhost:8080/webapp/config/config.xml", 77 ConfigurationUtils 78 .getURL( 79 "ftp://ftp.server.com/downloads/baseConfig.xml", 80 "http://localhost:8080/webapp/config/config.xml") 81 .toString()); 82 assertEquals( 83 "http://localhost:8080/webapp/config/config.xml", 84 ConfigurationUtils 85 .getURL(null, "http://localhost:8080/webapp/config/config.xml") 86 .toString()); 87 File absFile = new File ("config.xml").getAbsoluteFile(); 88 assertEquals( 89 absFile.toURL(), 90 ConfigurationUtils.getURL( 91 "http://localhost:8080/webapp/config/baseConfig.xml", 92 absFile.getAbsolutePath())); 93 assertEquals( 94 absFile.toURL(), 95 ConfigurationUtils.getURL(null, absFile.getAbsolutePath())); 96 97 assertEquals(absFile.toURL(), 98 ConfigurationUtils.getURL(absFile.getParent(), "config.xml")); 99 } 100 101 public void testGetBasePath() throws Exception 102 { 103 URL url = new URL ("http://xyz.net/foo/bar.xml"); 104 assertEquals("base path of " + url, "http://xyz.net/foo/", ConfigurationUtils.getBasePath(url)); 105 106 url = new URL ("http://xyz.net/foo/"); 107 assertEquals("base path of " + url, "http://xyz.net/foo/", ConfigurationUtils.getBasePath(url)); 108 109 url = new URL ("http://xyz.net/foo"); 110 assertEquals("base path of " + url, "http://xyz.net/", ConfigurationUtils.getBasePath(url)); 111 112 url = new URL ("http://xyz.net/"); 113 assertEquals("base path of " + url, "http://xyz.net/", ConfigurationUtils.getBasePath(url)); 114 115 url = new URL ("http://xyz.net"); 116 assertEquals("base path of " + url, "http://xyz.net", ConfigurationUtils.getBasePath(url)); 117 } 118 119 public void testGetFileName() throws Exception 120 { 121 assertEquals("file name for a null URL", null, ConfigurationUtils.getFileName(null)); 122 123 URL url = new URL ("http://xyz.net/foo/"); 124 assertEquals("file for a directory URL " + url, null, ConfigurationUtils.getFileName(url)); 125 126 url = new URL ("http://xyz.net/foo/bar.xml"); 127 assertEquals("file name for a valid URL " + url, "bar.xml", ConfigurationUtils.getFileName(url)); 128 } 129 130 public void testCopy() 131 { 132 Configuration conf1 = new BaseConfiguration(); 134 conf1.addProperty("key1", "value1"); 135 conf1.addProperty("key2", "value2"); 136 137 Configuration conf2 = new BaseConfiguration(); 139 conf2.addProperty("key1", "value3"); 140 conf2.addProperty("key2", "value4"); 141 142 ConfigurationUtils.copy(conf1, conf2); 144 145 assertEquals("'key1' property", "value1", conf2.getProperty("key1")); 146 assertEquals("'key2' property", "value2", conf2.getProperty("key2")); 147 } 148 149 public void testAppend() 150 { 151 Configuration conf1 = new BaseConfiguration(); 153 conf1.addProperty("key1", "value1"); 154 conf1.addProperty("key2", "value2"); 155 156 Configuration conf2 = new BaseConfiguration(); 158 conf2.addProperty("key1", "value3"); 159 conf2.addProperty("key2", "value4"); 160 161 ConfigurationUtils.append(conf1, conf2); 163 164 List expected = new ArrayList (); 165 expected.add("value3"); 166 expected.add("value1"); 167 ListAssert.assertEquals("'key1' property", expected, conf2.getList("key1")); 168 169 expected = new ArrayList (); 170 expected.add("value4"); 171 expected.add("value2"); 172 ListAssert.assertEquals("'key2' property", expected, conf2.getList("key2")); 173 } 174 175 public void testGetFile() throws Exception 176 { 177 File directory = new File ("target"); 178 File reference = new File (directory, "test.txt").getAbsoluteFile(); 179 180 assertEquals(reference, ConfigurationUtils.getFile(null, reference.getAbsolutePath())); 181 assertEquals(reference, ConfigurationUtils.getFile(directory.getAbsolutePath(), reference.getAbsolutePath())); 182 assertEquals(reference, ConfigurationUtils.getFile(directory.getAbsolutePath(), reference.getName())); 183 assertEquals(reference, ConfigurationUtils.getFile(directory.toURL().toString(), reference.getName())); 184 assertEquals(reference, ConfigurationUtils.getFile("invalid", reference.toURL().toString())); 185 } 186 } 187 | Popular Tags |