You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ep...@apache.org on 2004/05/13 14:19:16 UTC

cvs commit: jakarta-commons/configuration/src/test/org/apache/commons/configuration TestBaseConfiguration.java

epugh       2004/05/13 05:19:16

  Modified:    configuration/src/test/org/apache/commons/configuration
                        TestBaseConfiguration.java
  Log:
  Extend unit test to verify exception types throw
  
  Revision  Changes    Path
  1.9       +446 -346  jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestBaseConfiguration.java
  
  Index: TestBaseConfiguration.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestBaseConfiguration.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TestBaseConfiguration.java	9 Mar 2004 15:34:02 -0000	1.8
  +++ TestBaseConfiguration.java	13 May 2004 12:19:16 -0000	1.9
  @@ -24,6 +24,7 @@
   import java.util.Properties;
   
   import junit.framework.TestCase;
  +import junitx.framework.ObjectAssert;
   
   /**
    * Tests some basic functions of the BaseConfiguration class
  @@ -32,355 +33,454 @@
    */
   public class TestBaseConfiguration extends TestCase
   {
  -    protected BaseConfiguration eprop = new BaseConfiguration();
  +	protected BaseConfiguration config = new BaseConfiguration();
   
  -    public void testGetProperty()
  -    {
  -        /* should be empty and return null */
  -        assertEquals("This returns null", eprop.getProperty("foo"), null);
  -
  -        /* add a real value, and get it two different ways */
  -        eprop.setProperty("number", "1");
  -        assertEquals("This returns '1'", eprop.getProperty("number"), "1");
  -        assertEquals("This returns '1'", eprop.getString("number"), "1");
  -    }
  -
  -    public void testGetByte()
  -    {
  -        eprop.setProperty("number", "1");
  -        byte oneB = 1, twoB = 2;
  -        assertEquals("This returns 1(byte)", eprop.getByte("number"), oneB);
  -        assertEquals(
  -            "This returns 1(byte)",
  -            eprop.getByte("number", twoB),
  -            oneB);
  -        assertEquals(
  -            "This returns 2(default byte)",
  -            eprop.getByte("numberNotInConfig", twoB),
  -            twoB);
  -        assertEquals(
  -            "This returns 1(Byte)",
  -            eprop.getByte("number", new Byte("2")),
  -            new Byte(oneB));
  -    }
  -
  -    public void testGetShort()
  -    {
  -        eprop.setProperty("numberS", "1");
  -        short oneS = 1, twoS = 2;
  -        assertEquals("This returns 1(short)", eprop.getShort("numberS"), oneS);
  -        assertEquals(
  -            "This returns 1(short)",
  -            eprop.getShort("numberS", twoS),
  -            oneS);
  -        assertEquals(
  -            "This returns 2(default short)",
  -            eprop.getShort("numberNotInConfig", twoS),
  -            twoS);
  -        assertEquals(
  -            "This returns 1(Short)",
  -            eprop.getShort("numberS", new Short("2")),
  -            new Short(oneS));
  -    }
  -
  -    public void testGetLong()
  -    {
  -        eprop.setProperty("numberL", "1");
  -        long oneL = 1, twoL = 2;
  -        assertEquals("This returns 1(long)", eprop.getLong("numberL"), oneL);
  -        assertEquals(
  -            "This returns 1(long)",
  -            eprop.getLong("numberL", twoL),
  -            oneL);
  -        assertEquals(
  -            "This returns 2(default long)",
  -            eprop.getLong("numberNotInConfig", twoL),
  -            twoL);
  -        assertEquals(
  -            "This returns 1(Long)",
  -            eprop.getLong("numberL", new Long("2")),
  -            new Long(oneL));
  -    }
  -
  -    public void testGetFloat()
  -    {
  -        eprop.setProperty("numberF", "1.0");
  -        float oneF = 1, twoF = 2;
  -        assertEquals(
  -            "This returns 1(float)",
  -            eprop.getFloat("numberF"),
  -            oneF,
  -            0);
  -        assertEquals(
  -            "This returns 1(float)",
  -            eprop.getFloat("numberF", twoF),
  -            oneF,
  -            0);
  -        assertEquals(
  -            "This returns 2(default float)",
  -            eprop.getFloat("numberNotInConfig", twoF),
  -            twoF,
  -            0);
  -        assertEquals(
  -            "This returns 1(Float)",
  -            eprop.getFloat("numberF", new Float("2")),
  -            new Float(oneF));
  -    }
  -
  -    public void testGetDouble()
  -    {
  -        eprop.setProperty("numberD", "1.0");
  -        double oneD = 1, twoD = 2;
  -        assertEquals(
  -            "This returns 1(double)",
  -            eprop.getDouble("numberD"),
  -            oneD,
  -            0);
  -        assertEquals(
  -            "This returns 1(double)",
  -            eprop.getDouble("numberD", twoD),
  -            oneD,
  -            0);
  -        assertEquals(
  -            "This returns 2(default double)",
  -            eprop.getDouble("numberNotInConfig", twoD),
  -            twoD,
  -            0);
  -        assertEquals(
  -            "This returns 1(Double)",
  -            eprop.getDouble("numberD", new Double("2")),
  -            new Double(oneD));
  -    }
  -
  -    public void testGetBigDecimal()
  -    {
  -        eprop.setProperty("numberBigD", "123.456");
  -        BigDecimal number = new BigDecimal("123.456");
  -        BigDecimal defaultValue = new BigDecimal("654.321");
  -
  -        assertEquals("Existing key", number, eprop.getBigDecimal("numberBigD"));
  -        assertEquals(
  -            "Existing key with default value",
  -            number,
  -            eprop.getBigDecimal("numberBigD", defaultValue));
  -        assertEquals(
  -            "Missing key with default value",
  -            defaultValue,
  -            eprop.getBigDecimal("numberNotInConfig", defaultValue));
  -    }
  -
  -    public void testGetBigInteger()
  -    {
  -        eprop.setProperty("numberBigI", "1234567890");
  -        BigInteger number = new BigInteger("1234567890");
  -        BigInteger defaultValue = new BigInteger("654321");
  -
  -        assertEquals("Existing key", number, eprop.getBigInteger("numberBigI"));
  -        assertEquals(
  -            "Existing key with default value",
  -            number,
  -            eprop.getBigInteger("numberBigI", defaultValue));
  -        assertEquals(
  -            "Missing key with default value",
  -            defaultValue,
  -            eprop.getBigInteger("numberNotInConfig", defaultValue));
  -    }
  -
  -    public void testGetBoolean()
  -    {
  -        eprop.setProperty("boolA", Boolean.TRUE);
  -        boolean boolT = true, boolF = false;
  -        assertEquals("This returns true", eprop.getBoolean("boolA"), boolT);
  -        assertEquals(
  -            "This returns true, not the default",
  -            eprop.getBoolean("boolA", boolF),
  -            boolT);
  -        assertEquals(
  -            "This returns false(default)",
  -            eprop.getBoolean("boolNotInConfig", boolF),
  -            boolF);
  -        assertEquals(
  -            "This returns true(Boolean)",
  -            eprop.getBoolean("boolA", new Boolean(boolF)),
  -            new Boolean(boolT));
  -    }
  -
  -    public void testGetList()
  -    {
  -        eprop.addProperty("number", "1");
  -        eprop.addProperty("number", "2");
  -        List list = eprop.getList("number");
  -        assertNotNull("The list is null", list);
  -        assertEquals("List size", 2, list.size());
  -        assertTrue("The number 1 is missing from the list", list.contains("1"));
  -        assertTrue("The number 2 is missing from the list", list.contains("2"));
  -
  -        /*
  -         *  now test dan's new fix where we get the first scalar
  -         *  when we access a list valued property
  -         */
  -        try
  -        {
  -            eprop.getString("number");
  -        }
  -        catch (NoSuchElementException nsse)
  -        {
  -            fail("Should return a string");
  -        }
  -    }
  -
  -    public void testCommaSeparatedString()
  -    {
  -        String prop = "hey, that's a test";
  -        eprop.setProperty("prop.string", prop);
  -        try
  -        {
  -            eprop.getList("prop.string");
  -        }
  -        catch (NoSuchElementException nsse)
  -        {
  -            fail("Should return a list");
  -        }
  -
  -        String prop2 = "hey\\, that's a test";
  -        eprop.clearProperty("prop.string");
  -        eprop.setProperty("prop.string", prop2);
  -        try
  -        {
  -            eprop.getString("prop.string");
  -        }
  -        catch (NoSuchElementException nsse)
  -        {
  -            fail("Should return a list");
  -        }
  -
  -    }
  -
  -    public void testPropertyAccess()
  -    {
  -        eprop.clearProperty("prop.properties");
  -        eprop.setProperty("prop.properties", "");
  -        assertEquals(
  -            "This returns an empty Properties object",
  -            eprop.getProperties("prop.properties"),
  -            new Properties());
  -        eprop.clearProperty("prop.properties");
  -        eprop.setProperty("prop.properties", "foo=bar, baz=moo, seal=clubber");
  -
  -        Properties p = new Properties();
  -        p.setProperty("foo", "bar");
  -        p.setProperty("baz", "moo");
  -        p.setProperty("seal", "clubber");
  -        assertEquals(
  -            "This returns a filled in Properties object",
  -            eprop.getProperties("prop.properties"),
  -            p);
  -    }
  -
  -    public void testSubset()
  -    {
  -        /*
  -         * test subset : assure we don't reprocess the data elements
  -         * when generating the subset
  -         */
  -
  -        String prop = "hey, that's a test";
  -        String prop2 = "hey\\, that's a test";
  -        eprop.setProperty("prop.string", prop2);
  -        eprop.setProperty("property.string", "hello");
  -
  -        Configuration subEprop = eprop.subset("prop");
  -
  -        assertEquals(
  -            "Returns the full string",
  -            prop,
  -            subEprop.getString("string"));
  -        try
  -        {
  -            subEprop.getString("string");
  -        }
  -        catch (NoSuchElementException nsse)
  -        {
  -            fail("Should return a string");
  -        }
  -        try
  -        {
  -            subEprop.getList("string");
  -        }
  -        catch (NoSuchElementException nsse)
  -        {
  -            fail("Should return a list");
  -        }
  +	private Class missingElementException = NoSuchElementException.class;
  +	private Class incompatibleElementException = IllegalArgumentException.class;
  +
  +	public void testGetProperty()
  +	{
  +		/* should be empty and return null */
  +		assertEquals("This returns null", config.getProperty("foo"), null);
  +
  +		/* add a real value, and get it two different ways */
  +		config.setProperty("number", "1");
  +		assertEquals("This returns '1'", config.getProperty("number"), "1");
  +		assertEquals("This returns '1'", config.getString("number"), "1");
  +	}
  +
  +	public void testGetByte()
  +	{
  +		config.setProperty("number", "1");
  +		byte oneB = 1;
  +		byte twoB = 2;
  +		assertEquals("This returns 1(byte)", oneB, config.getByte("number"));
  +		assertEquals("This returns 1(byte)", oneB, config.getByte("number", twoB));
  +		assertEquals("This returns 2(default byte)", twoB, config.getByte("numberNotInConfig", twoB));
  +		assertEquals("This returns 1(Byte)", new Byte(oneB), config.getByte("number", new Byte("2")));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getByte("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getByte("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetShort()
  +	{
  +		config.setProperty("numberS", "1");
  +		short oneS = 1;
  +		short twoS = 2;
  +		assertEquals("This returns 1(short)", oneS, config.getShort("numberS"));
  +		assertEquals("This returns 1(short)", oneS, config.getShort("numberS", twoS));
  +		assertEquals("This returns 2(default short)", twoS, config.getShort("numberNotInConfig", twoS));
  +		assertEquals("This returns 1(Short)", new Short(oneS), config.getShort("numberS", new Short("2")));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getShort("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getShort("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetLong()
  +	{
  +		config.setProperty("numberL", "1");
  +		long oneL = 1;
  +		long twoL = 2;
  +		assertEquals("This returns 1(long)", oneL, config.getLong("numberL"));
  +		assertEquals("This returns 1(long)", oneL, config.getLong("numberL", twoL));
  +		assertEquals("This returns 2(default long)", twoL, config.getLong("numberNotInConfig", twoL));
  +		assertEquals("This returns 1(Long)", new Long(oneL), config.getLong("numberL", new Long("2")));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getLong("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getLong("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetFloat()
  +	{
  +		config.setProperty("numberF", "1.0");
  +		float oneF = 1;
  +		float twoF = 2;
  +		assertEquals("This returns 1(float)", oneF, config.getFloat("numberF"), 0);
  +		assertEquals("This returns 1(float)", oneF, config.getFloat("numberF", twoF), 0);
  +		assertEquals("This returns 2(default float)", twoF, config.getFloat("numberNotInConfig", twoF), 0);
  +		assertEquals("This returns 1(Float)", new Float(oneF), config.getFloat("numberF", new Float("2")));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getFloat("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getFloat("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetDouble()
  +	{
  +		config.setProperty("numberD", "1.0");
  +		double oneD = 1;
  +		double twoD = 2;
  +		assertEquals("This returns 1(double)", oneD, config.getDouble("numberD"), 0);
  +		assertEquals("This returns 1(double)", oneD, config.getDouble("numberD", twoD), 0);
  +		assertEquals("This returns 2(default double)", twoD, config.getDouble("numberNotInConfig", twoD), 0);
  +		assertEquals("This returns 1(Double)", new Double(oneD), config.getDouble("numberD", new Double("2")));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getDouble("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getDouble("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetBigDecimal()
  +	{
  +		config.setProperty("numberBigD", "123.456");
  +		BigDecimal number = new BigDecimal("123.456");
  +		BigDecimal defaultValue = new BigDecimal("654.321");
  +
  +		assertEquals("Existing key", number, config.getBigDecimal("numberBigD"));
  +		assertEquals("Existing key with default value", number, config.getBigDecimal("numberBigD", defaultValue));
  +		assertEquals("Missing key with default value", defaultValue, config.getBigDecimal("numberNotInConfig", defaultValue));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getBigDecimal("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getBigDecimal("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetBigInteger()
  +	{
  +		config.setProperty("numberBigI", "1234567890");
  +		BigInteger number = new BigInteger("1234567890");
  +		BigInteger defaultValue = new BigInteger("654321");
  +
  +		assertEquals("Existing key", number, config.getBigInteger("numberBigI"));
  +		assertEquals("Existing key with default value", number, config.getBigInteger("numberBigI", defaultValue));
  +		assertEquals("Missing key with default value", defaultValue, config.getBigInteger("numberNotInConfig", defaultValue));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getBigInteger("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getBigInteger("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetBoolean()
  +	{
  +		config.setProperty("boolA", Boolean.TRUE);
  +		boolean boolT = true, boolF = false;
  +		assertEquals("This returns true", boolT, config.getBoolean("boolA"));
  +		assertEquals("This returns true, not the default", boolT, config.getBoolean("boolA", boolF));
  +		assertEquals("This returns false(default)", boolF, config.getBoolean("boolNotInConfig", boolF));
  +		assertEquals("This returns true(Boolean)", new Boolean(boolT), config.getBoolean("boolA", new Boolean(boolF)));
  +
  +		// missing key without default value
  +		Throwable t = null;
  +		try {
  +			config.getBoolean("numberNotInConfig");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for missing keys", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for missing keys", missingElementException, t);
  +
  +		// existing key with an incompatible value
  +		config.setProperty("test.empty", "");
  +		t = null;
  +		try {
  +			config.getBoolean("test.empty");
  +		} catch (Throwable T) {
  +			t = T;
  +		}
  +		assertNotNull("No exception thrown for incompatible values", t);
  +		ObjectAssert.assertInstanceOf("Exception thrown for incompatible values", incompatibleElementException, t);
  +	}
  +
  +	public void testGetList()
  +	{
  +		config.addProperty("number", "1");
  +		config.addProperty("number", "2");
  +		List list = config.getList("number");
  +		assertNotNull("The list is null", list);
  +		assertEquals("List size", 2, list.size());
  +		assertTrue("The number 1 is missing from the list", list.contains("1"));
  +		assertTrue("The number 2 is missing from the list", list.contains("2"));
  +
  +		/*
  +		 *  now test dan's new fix where we get the first scalar
  +		 *  when we access a list valued property
  +		 */
  +		try
  +		{
  +			config.getString("number");
  +		}
  +		catch (NoSuchElementException nsse)
  +		{
  +			fail("Should return a string");
  +		}
  +	}
  +
  +	public void testCommaSeparatedString()
  +	{
  +		String prop = "hey, that's a test";
  +		config.setProperty("prop.string", prop);
  +		try
  +		{
  +			config.getList("prop.string");
  +		}
  +		catch (NoSuchElementException nsse)
  +		{
  +			fail("Should return a list");
  +		}
  +
  +		String prop2 = "hey\\, that's a test";
  +		config.clearProperty("prop.string");
  +		config.setProperty("prop.string", prop2);
  +		try
  +		{
  +			config.getString("prop.string");
  +		}
  +		catch (NoSuchElementException nsse)
  +		{
  +			fail("Should return a list");
  +		}
  +
  +	}
  +
  +	public void testPropertyAccess()
  +	{
  +		config.clearProperty("prop.properties");
  +		config.setProperty("prop.properties", "");
  +		assertEquals(
  +			"This returns an empty Properties object",
  +			config.getProperties("prop.properties"),
  +			new Properties());
  +		config.clearProperty("prop.properties");
  +		config.setProperty("prop.properties", "foo=bar, baz=moo, seal=clubber");
  +
  +		Properties p = new Properties();
  +		p.setProperty("foo", "bar");
  +		p.setProperty("baz", "moo");
  +		p.setProperty("seal", "clubber");
  +		assertEquals(
  +			"This returns a filled in Properties object",
  +			config.getProperties("prop.properties"),
  +			p);
  +	}
  +
  +	public void testSubset()
  +	{
  +		/*
  +		 * test subset : assure we don't reprocess the data elements
  +		 * when generating the subset
  +		 */
  +
  +		String prop = "hey, that's a test";
  +		String prop2 = "hey\\, that's a test";
  +		config.setProperty("prop.string", prop2);
  +		config.setProperty("property.string", "hello");
  +
  +		Configuration subEprop = config.subset("prop");
  +
  +		assertEquals(
  +			"Returns the full string",
  +			prop,
  +			subEprop.getString("string"));
  +		try
  +		{
  +			subEprop.getString("string");
  +		}
  +		catch (NoSuchElementException nsse)
  +		{
  +			fail("Should return a string");
  +		}
  +		try
  +		{
  +			subEprop.getList("string");
  +		}
  +		catch (NoSuchElementException nsse)
  +		{
  +			fail("Should return a list");
  +		}
           
  -        Iterator it = subEprop.getKeys();
  -        it.next();
  -        assertFalse(it.hasNext());
  +		Iterator it = subEprop.getKeys();
  +		it.next();
  +		assertFalse(it.hasNext());
           
  -        subEprop = eprop.subset("prop.");
  -        it = subEprop.getKeys();
  -        assertFalse(it.hasNext());
  -    }
  -
  -    public void testInterpolation() throws Exception
  -    {
  -        eprop.setProperty("applicationRoot", "/home/applicationRoot");
  -        eprop.setProperty("db", "${applicationRoot}/db/hypersonic");
  -        String unInterpolatedValue = "${applicationRoot2}/db/hypersonic";
  -        eprop.setProperty("dbFailedInterpolate", unInterpolatedValue);
  -        String dbProp = "/home/applicationRoot/db/hypersonic";
  -
  -        //construct a new config, using eprop as the defaults config for it.
  -        BaseConfiguration superProp = eprop;
  -
  -        assertEquals(
  -            "Checking interpolated variable",dbProp,
  -            superProp.getString("db"));
  -        assertEquals(
  -            "lookup fails, leave variable as is",
  -            superProp.getString("dbFailedInterpolate"),
  -            unInterpolatedValue);
  -
  -        superProp.setProperty("arrayInt", "${applicationRoot}/1");
  -        String[] arrayInt = superProp.getStringArray("arrayInt");
  -        assertEquals(
  -            "check first entry was interpolated",
  -            "/home/applicationRoot/1",
  -            arrayInt[0]);
  -    }
  -
  -    public void testMultipleInterpolation() throws Exception
  -    {
  -        eprop.setProperty("test.base-level", "/base-level");
  -        eprop.setProperty("test.first-level", "${test.base-level}/first-level");
  -        eprop.setProperty(
  -            "test.second-level",
  -            "${test.first-level}/second-level");
  -        eprop.setProperty(
  -            "test.third-level",
  -            "${test.second-level}/third-level");
  -
  -        String expectedValue =
  -            "/base-level/first-level/second-level/third-level";
  -
  -        assertEquals(eprop.getString("test.third-level"), expectedValue);
  -    }
  -
  -    public void testInterpolationLoop() throws Exception
  -    {
  -        eprop.setProperty("test.a", "${test.b}");
  -        eprop.setProperty("test.b", "${test.a}");
  -
  -        try
  -        {
  -            eprop.getString("test.a");
  -        }
  -        catch (IllegalStateException e)
  -        {
  -            return;
  -        }
  +		subEprop = config.subset("prop.");
  +		it = subEprop.getKeys();
  +		assertFalse(it.hasNext());
  +	}
  +
  +	public void testInterpolation() throws Exception
  +	{
  +		config.setProperty("applicationRoot", "/home/applicationRoot");
  +		config.setProperty("db", "${applicationRoot}/db/hypersonic");
  +		String unInterpolatedValue = "${applicationRoot2}/db/hypersonic";
  +		config.setProperty("dbFailedInterpolate", unInterpolatedValue);
  +		String dbProp = "/home/applicationRoot/db/hypersonic";
  +
  +		//construct a new config, using config as the defaults config for it.
  +		BaseConfiguration superProp = config;
  +
  +		assertEquals(
  +			"Checking interpolated variable",dbProp,
  +			superProp.getString("db"));
  +		assertEquals(
  +			"lookup fails, leave variable as is",
  +			superProp.getString("dbFailedInterpolate"),
  +			unInterpolatedValue);
  +
  +		superProp.setProperty("arrayInt", "${applicationRoot}/1");
  +		String[] arrayInt = superProp.getStringArray("arrayInt");
  +		assertEquals(
  +			"check first entry was interpolated",
  +			"/home/applicationRoot/1",
  +			arrayInt[0]);
  +	}
  +
  +	public void testMultipleInterpolation() throws Exception
  +	{
  +		config.setProperty("test.base-level", "/base-level");
  +		config.setProperty("test.first-level", "${test.base-level}/first-level");
  +		config.setProperty(
  +			"test.second-level",
  +			"${test.first-level}/second-level");
  +		config.setProperty(
  +			"test.third-level",
  +			"${test.second-level}/third-level");
  +
  +		String expectedValue =
  +			"/base-level/first-level/second-level/third-level";
  +
  +		assertEquals(config.getString("test.third-level"), expectedValue);
  +	}
  +
  +	public void testInterpolationLoop() throws Exception
  +	{
  +		config.setProperty("test.a", "${test.b}");
  +		config.setProperty("test.b", "${test.a}");
  +
  +		try
  +		{
  +			config.getString("test.a");
  +		}
  +		catch (IllegalStateException e)
  +		{
  +			return;
  +		}
   
  -        fail("IllegalStateException should have been thrown for looped property references");
  -    }
  +		fail("IllegalStateException should have been thrown for looped property references");
  +	}
   
       
   }
  +
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org