/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestXml2Config.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.config; import com.uwyn.rife.config.exceptions.ConfigErrorException; import com.uwyn.rife.resources.ResourceFinderClasspath; import com.uwyn.rife.tools.ExceptionUtils; import java.util.Collection; import java.util.Iterator; import junit.framework.TestCase; public class TestXml2Config extends TestCase { public TestXml2Config(String name) { super(name); } public void testInstantiation() { Xml2Config xml2config = new Xml2Config(); assertNotNull(xml2config); } public void testParse() { Config config = null; try { config = new Config("xml/test_xml2config.xml", ResourceFinderClasspath.getInstance()); } catch (ConfigErrorException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertTrue(config.hasParameter("paramstring")); assertTrue(config.hasParameter("parambool")); assertTrue(config.hasParameter("paramchar")); assertTrue(config.hasParameter("paramint")); assertTrue(config.hasParameter("paramlong")); assertTrue(config.hasParameter("paramfloat")); assertTrue(config.hasParameter("paramdouble")); assertTrue(config.hasParameter("paramproperty")); assertTrue(config.hasParameter("paramfinal")); assertEquals(config.countParameters(), 9); assertEquals(config.getString("paramstring"), "astring"); assertEquals(config.getBool("parambool"), true); assertEquals(config.getChar("paramchar"), 'C'); assertEquals(config.getInt("paramint"), 5133); assertEquals(config.getLong("paramlong"), 8736478L); assertEquals(config.getFloat("paramfloat"), 545.2546f, 0); assertEquals(config.getDouble("paramdouble"), 7863.3434353d, 0); assertEquals(config.getString("paramproperty"), "begin:property_test_value:end"); assertEquals(config.getString("paramfinal"), "initial value"); assertFalse(config.isFinalParameter("paramstring")); assertFalse(config.isFinalParameter("parambool")); assertFalse(config.isFinalParameter("paramchar")); assertFalse(config.isFinalParameter("paramint")); assertFalse(config.isFinalParameter("paramlong")); assertFalse(config.isFinalParameter("paramfloat")); assertFalse(config.isFinalParameter("paramdouble")); assertFalse(config.isFinalParameter("paramproperty")); assertTrue(config.isFinalParameter("paramfinal")); assertTrue(config.hasList("list1")); assertTrue(config.hasList("list2")); assertTrue(config.hasList("listfinal")); assertEquals(config.countLists(), 3); assertFalse(config.isFinalList("list1")); assertFalse(config.isFinalList("list2")); assertTrue(config.isFinalList("listfinal")); Collection<String> items = null; Iterator<String> item_it = null; items = config.getStringItems("list1"); assertEquals(items.size(), 3); item_it = items.iterator(); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item1"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item2"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item3"); assertEquals(item_it.hasNext(), false); items = config.getStringItems("list2"); assertEquals(items.size(), 3); item_it = items.iterator(); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item4"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item5"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "start:property_test_value:finish"); assertEquals(item_it.hasNext(), false); items = config.getStringItems("listfinal"); assertEquals(items.size(), 2); item_it = items.iterator(); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item6"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item7"); assertEquals(item_it.hasNext(), false); } public void testIncluding() { Config config = null; try { config = new Config("xml/test_xml2config_including.xml", ResourceFinderClasspath.getInstance()); } catch (ConfigErrorException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertTrue(config.hasParameter("includingstring")); assertTrue(config.hasParameter("paramstring")); assertTrue(config.hasParameter("parambool")); assertTrue(config.hasParameter("paramchar")); assertTrue(config.hasParameter("paramint")); assertTrue(config.hasParameter("paramlong")); assertTrue(config.hasParameter("paramfloat")); assertTrue(config.hasParameter("paramdouble")); assertTrue(config.hasParameter("paramincluding")); assertTrue(config.hasParameter("paramproperty")); assertTrue(config.hasParameter("paramfinal")); assertEquals(config.countParameters(), 11); assertEquals(config.getString("includingstring"), "the including value goes to the included file : "); assertEquals(config.getString("paramstring"), "the including value goes to the included file : astring"); assertEquals(config.getBool("parambool"), true); assertEquals(config.getChar("paramchar"), 'C'); assertEquals(config.getInt("paramint"), 9999); assertEquals(config.getLong("paramlong"), 8736478L); assertEquals(config.getFloat("paramfloat"), 545.2546f, 0); assertEquals(config.getDouble("paramdouble"), 7863.3434353d, 0); assertEquals(config.getString("paramincluding"), "it's including : C"); assertEquals(config.getString("paramproperty"), "begin:property_test_value:end"); assertEquals(config.getString("paramfinal"), "initial value"); assertFalse(config.isFinalParameter("paramstring")); assertFalse(config.isFinalParameter("parambool")); assertFalse(config.isFinalParameter("paramchar")); assertTrue(config.isFinalParameter("paramint")); assertFalse(config.isFinalParameter("paramlong")); assertFalse(config.isFinalParameter("paramfloat")); assertFalse(config.isFinalParameter("paramdouble")); assertFalse(config.isFinalParameter("paramproperty")); assertTrue(config.isFinalParameter("paramfinal")); assertTrue(config.hasList("list1")); assertTrue(config.hasList("list2")); assertTrue(config.hasList("listfinal")); assertEquals(config.countLists(), 3); Collection<String> items = null; Iterator<String> item_it = null; items = config.getStringItems("list1"); assertEquals(items.size(), 1); item_it = items.iterator(); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item10"); assertEquals(item_it.hasNext(), false); items = config.getStringItems("list2"); assertEquals(items.size(), 4); item_it = items.iterator(); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item13"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item14"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item15"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item16"); assertEquals(item_it.hasNext(), false); items = config.getStringItems("listfinal"); assertEquals(items.size(), 2); item_it = items.iterator(); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item6"); assertEquals(item_it.hasNext(), true); assertEquals(item_it.next(), "item7"); assertEquals(item_it.hasNext(), false); } public void testSelectedShortClassname() { Config config = null; try { config = new Config("TestSelectorConfig", ResourceFinderClasspath.getInstance()); } catch (ConfigErrorException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertTrue(config.hasParameter("selectedparamstring")); } public void testSelectedFullClassname() { Config config = null; try { config = new Config("com.uwyn.rife.selector.TestSelectorConfig", ResourceFinderClasspath.getInstance()); } catch (ConfigErrorException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertTrue(config.hasParameter("selectedparamstring")); } public void testUnavailableXmlFile() { Config config = null; try { config = new Config("xml/this_file_is_not_there.xml", ResourceFinderClasspath.getInstance()); fail(); assertNotNull(config); } catch (IllegalArgumentException e) { assertTrue(true); } catch (ConfigErrorException e) { assertTrue(true); } } }