diff options
Diffstat (limited to 'qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java')
-rw-r--r-- | qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java b/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java new file mode 100644 index 0000000000..77ecaa2176 --- /dev/null +++ b/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java @@ -0,0 +1,136 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +package org.apache.qpid.info.test; + +import junit.framework.TestCase; +import org.apache.qpid.info.util.IniFileReader; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Map; +import java.util.Properties; + +/** + * Test the Loading of the ini file reader by first writing + * out a correct ini file. + */ +public class IniFileReaderTest extends TestCase +{ + + public void testLoad() + { + IniFileReader ifr = new IniFileReader(); + File iniFile = null; + try + { + iniFile = File.createTempFile("temp", "ini"); + iniFile.deleteOnExit(); + BufferedWriter writer = new BufferedWriter(new FileWriter(iniFile)); + writer.write("# Global Comment1\n"); + writer.write("globalprop1=globalval1\n"); + writer.write("globalprop2=globalval2\n"); + writer.write("\n"); + writer.write("[Section1] # Comment on Section\n"); + writer.write("key1=val1 # Comment on Value\n"); + writer.write("key2=val2\n"); + writer.write("\n"); + writer.write("#Section2 Comment\n"); + writer.write("[Section2]\n"); + writer.write("key3=val3\n"); + writer.write("key4=val4\n"); + writer.write("key5=val5\n"); + writer.write("\n"); + writer.write("[Section3]\n"); + writer.write("key6=val6\n"); + writer.write("key7=val7\n"); + writer.write("\n"); + writer.close(); + } + catch (IOException e) + { + e.printStackTrace(); + fail("Unable to create temporary File"); + } + ifr.load(iniFile.getAbsolutePath()); + Map<String, Properties> sections = ifr.getSections(); + assertNotNull("Sections not null", sections); + assertEquals("Have 4 sections", sections.keySet().size(), 4); + assertTrue("Get globalprop1", sections.get("").getProperty("globalprop1").equals("globalval1")); + assertTrue("Get globalprop2", sections.get("").getProperty("globalprop2").equals("globalval2")); + assertNotNull("Section1 not null", sections.get("Section1")); + assertEquals("Section1 has 2 properties", sections.get("Section1").size(), 2); + assertTrue("Section1 key1 has val1", sections.get("Section1").getProperty("key1").equals("val1")); + assertTrue("Section1 key2 has val2", sections.get("Section1").getProperty("key2").equals("val2")); + assertEquals("Section2 has 3 properties", sections.get("Section2").size(), 3); + assertTrue("Section2 key3 has val3", sections.get("Section2").getProperty("key3").equals("val3")); + assertTrue("Section2 key4 has val4", sections.get("Section2").getProperty("key4").equals("val4")); + assertTrue("Section2 key5 has val5", sections.get("Section2").getProperty("key5").equals("val5")); + assertEquals("Section3 has 2 properties", sections.get("Section3").size(), 2); + assertTrue("Section3 key6 has val6", sections.get("Section3").getProperty("key6").equals("val6")); + assertTrue("Section3 key7 has val7", sections.get("Section3").getProperty("key7").equals("val7")); + } + + /** + * Test to ensure that the loading of a file with an unclosed section header + * fails to parse. + * + * Section needs to be fully enclosed in square brackets '[<name>]' + */ + public void testIncompleteSection1Load() + { + IniFileReader ifr = new IniFileReader(); + File iniFile = null; + try + { + iniFile = File.createTempFile(getName(), "ini"); + iniFile.deleteOnExit(); + BufferedWriter writer = new BufferedWriter(new FileWriter(iniFile)); + writer.write("# Global Comment1\n"); + writer.write("globalprop1=globalval1\n"); + writer.write("globalprop2=globalval2\n"); + writer.write("\n"); + writer.write("[Section1\n"); // Note '[Section1' not complete + writer.write("key1=val1\n"); + writer.write("key2=val2\n"); + writer.write("\n"); + writer.close(); + } + catch (IOException e) + { + e.printStackTrace(); + fail("Unable to create temporary File"); + } + try + { + ifr.load(iniFile.getAbsolutePath()); + fail("File should fail to parse"); + } + catch (IllegalArgumentException iae) + { + assertEquals("Incorrect Exception", "Section1 is not closed", iae.getMessage()); + } + + } + +} |