blob: e320cf7377fb290b63a1e8f2c155f6d710665821 [file] [log] [blame]
package org.apache.fulcrum.parser;
/*
* 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.
*/
import static org.junit.jupiter.api.Assertions.*;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Locale;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.fulcrum.testcontainer.BaseUnit5Test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
/**
* Testing of the BaseValueParser class
*
* @author <a href="mailto:quintonm@bellsouth.net">Quinton McCombs</a>
* @version $Id: BaseValueParserTest.java 222043 2004-12-06 17:47:33Z painter $
*/
public class BaseValueParserTest extends BaseUnit5Test
{
private BaseValueParser parser;
private ParserService parserService;
/**
* Performs any initialization that must happen before each test is run.
* @throws Exception if parser service not found
*/
@BeforeEach
public void setUp() throws Exception
{
try
{
parserService = (ParserService)this.lookup(ParserService.ROLE);
parser = parserService.getParser(BaseValueParser.class);
}
catch (ComponentException e)
{
e.printStackTrace();
fail(e.getMessage());
}
}
/**
* Clean up after each test is run.
*/
@AfterEach
public void tearDown()
{
parserService.putParser(parser);
this.release(parserService);
}
@Test
public void testDate()
{
parser.clear();
parser.setLocale(Locale.US);
assertEquals(0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", "03/21/2008");
Calendar cal = Calendar.getInstance(Locale.US);
cal.clear();
cal.set(2008, 2, 21, 0, 0, 0);
assertEquals( cal.getTime(), parser.getDate("foo"), "Wrong Date value (US)");
parser.clear();
parser.setLocale(Locale.GERMANY);
parser.add("foo", "21.03.2008");
cal = Calendar.getInstance(Locale.GERMANY);
cal.clear();
cal.set(2008, 2, 21, 0, 0, 0);
assertEquals( cal.getTime(), parser.getDate("foo"), "Wrong Date value (German)");
}
@Test
public void testGetByte()
{
// no param
byte result = parser.getByte("invalid");
assertEquals(result, 0);
// default
result = parser.getByte("default", (byte)3);
assertEquals(result, 3);
// param exists
parser.add("exists", "1");
result = parser.getByte("exists");
assertEquals(result, 1);
// unparsable value
parser.add("unparsable", "a");
result = parser.getByte("unparsable");
assertEquals(result, 0);
}
@Test
public void testGetByteObject()
{
// no param
Byte result = parser.getByteObject("invalid");
assertNull(result);
// default
result = parser.getByteObject("default", new Byte((byte)3));
assertEquals(result, new Byte((byte)3));
// param exists
parser.add("exists", "1");
result = parser.getByteObject("exists");
assertEquals(result, new Byte((byte)1));
// unparsable value
parser.add("unparsable", "a");
result = parser.getByteObject("unparsable");
assertNull(result);
}
@Test
public void testGetInt()
{
// no param
int result = parser.getInt("invalid");
assertEquals(result, 0);
// default
result = parser.getInt("default", 3);
assertEquals(result, 3);
// param exists
parser.add("exists", "1");
result = parser.getInt("exists");
assertEquals(result, 1);
// unparsable value
parser.add("unparsable", "a");
result = parser.getInt("unparsable");
assertEquals(result, 0);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
int arrayResult[] = parser.getInts("array");
int compare[] = {1,2,3};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
int arrayResult2[] = parser.getInts("array2");
int compare2[] = {1,0,3};
assertEquals(arrayResult2.length, compare2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals(compare2[i], arrayResult2[i] );
}
}
@Test
public void testGetIntObject()
{
// no param
Integer result = parser.getIntObject("invalid");
assertNull(result);
// default
result = parser.getIntObject("default", new Integer(3));
assertEquals(result, new Integer(3));
// param exists
parser.add("exists", "1");
result = parser.getIntObject("exists");
assertEquals(result, new Integer(1));
// unparsable value
parser.add("unparsable", "a");
result = parser.getIntObject("unparsable");
assertNull(result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
Integer arrayResult[] = parser.getIntObjects("array");
Integer compare[] = {new Integer(1), new Integer(2), new Integer(3)};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
Integer arrayResult2[] = parser.getIntObjects("array2");
Integer compare2[] = {new Integer(1), null, new Integer(3)};
assertEquals(arrayResult2.length, compare2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals(compare2[i], arrayResult2[i] );
}
}
@Test
public void testGetFloat()
{
// no param
float result = parser.getFloat("invalid");
assertEquals(0, result);
// default
result = parser.getFloat("default", 3);
assertEquals(3, result);
// param exists
parser.add("exists", "1");
result = parser.getFloat("exists");
assertEquals(1, result);
// unparsable value
parser.add("unparsable", "a");
result = parser.getFloat("unparsable");
assertEquals(0, result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
float arrayResult[] = parser.getFloats("array");
float compare[] = {1,2,3};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
float arrayResult2[] = parser.getFloats("array2");
float compare2[] = {1,0,3};
assertEquals(compare2.length, arrayResult2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals(compare2[i], arrayResult2[i]);
}
}
@Test
public void testGetFloatObject()
{
// no param
Float result = parser.getFloatObject("invalid");
assertNull(result);
// default
result = parser.getFloatObject("default", new Float(3));
assertEquals(new Float(3), result);
// param exists
parser.add("exists", "1");
result = parser.getFloatObject("exists");
assertEquals(new Float(1), result);
// unparsable value
parser.add("unparsable", "a");
result = parser.getFloatObject("unparsable");
assertNull(result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
Float arrayResult[] = parser.getFloatObjects("array");
Float compare[] = {new Float(1), new Float(2), new Float(3)};
assertEquals(compare.length, arrayResult.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
Float arrayResult2[] = parser.getFloatObjects("array2");
Float compare2[] = {new Float(1), null, new Float(3)};
assertEquals(compare2.length, arrayResult2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals(arrayResult2[i], compare2[i] );
}
}
@Test
public void testGetDouble()
{
// no param
double result = parser.getDouble("invalid");
assertEquals(0, result);
// default
result = parser.getDouble("default", 3);
assertEquals(3, result);
// param exists
parser.add("exists", "1");
result = parser.getDouble("exists");
assertEquals(1, result);
// unparsable value
parser.add("unparsable", "a");
result = parser.getDouble("unparsable");
assertEquals(0, result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
double arrayResult[] = parser.getDoubles("array");
double compare[] = {1,2,3};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals( arrayResult[i], compare[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
double arrayResult2[] = parser.getDoubles("array2");
double compare2[] = {1,0,3};
assertEquals(arrayResult2.length, compare2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals( arrayResult2[i], compare2[i]);
}
}
@Test
public void testGetDoubleObject()
{
// no param
Double result = parser.getDoubleObject("invalid");
assertNull(result);
// default
result = parser.getDoubleObject("default", new Double(3));
assertEquals( new Double(3), result);
// param exists
parser.add("exists", "1");
result = parser.getDoubleObject("exists");
assertEquals( new Double(1), result);
// unparsable value
parser.add("unparsable", "a");
result = parser.getDoubleObject("unparsable");
assertNull(result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
Double arrayResult[] = parser.getDoubleObjects("array");
Double compare[] = {new Double(1), new Double(2), new Double(3)};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals( arrayResult[i], compare[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
Double arrayResult2[] = parser.getDoubleObjects("array2");
Double compare2[] = {new Double(1), null, new Double(3)};
assertEquals(arrayResult2.length, compare2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals( arrayResult2[i], compare2[i] );
}
}
@Test
public void testGetLong()
{
// no param
long result = parser.getLong("invalid");
assertEquals(0, result);
// default
result = parser.getLong("default", 3);
assertEquals(3, result);
// param exists
parser.add("exists", "1");
result = parser.getLong("exists");
assertEquals(1, result);
// unparsable value
parser.add("unparsable", "a");
result = parser.getLong("unparsable");
assertEquals(0, result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
long arrayResult[] = parser.getLongs("array");
long compare[] = {1,2,3};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
long arrayResult2[] = parser.getLongs("array2");
long compare2[] = {1,0,3};
assertEquals(arrayResult2.length, compare2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals( arrayResult2[i], compare2[i]);
}
}
@Test
public void testGetLongObject()
{
// no param
Long result = parser.getLongObject("invalid");
assertNull(result);
// default
result = parser.getLongObject("default", new Long(3));
assertEquals(result, new Long(3));
// param exists
parser.add("exists", "1");
result = parser.getLongObject("exists");
assertEquals(result, new Long(1));
// unparsable value
parser.add("unparsable", "a");
result = parser.getLongObject("unparsable");
assertNull(result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
Long arrayResult[] = parser.getLongObjects("array");
Long compare[] = {new Long(1), new Long(2), new Long(3)};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
Long arrayResult2[] = parser.getLongObjects("array2");
Long compare2[] = {new Long(1), null, new Long(3)};
assertEquals(arrayResult2.length, compare2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals(compare2[i], arrayResult2[i] );
}
}
@Test
public void testGetBoolean()
{
// no param
boolean result = parser.getBoolean("invalid");
assertEquals(result, false);
// default
result = parser.getBoolean("default", true);
assertEquals(result, true);
// true values - Case is intentional
parser.add("true1", "trUe");
result = parser.getBoolean("true1");
assertEquals(result, true);
parser.add("true2", "yEs");
result = parser.getBoolean("true2");
assertEquals(result, true);
parser.add("true3", "1");
result = parser.getBoolean("true3");
assertEquals(result, true);
parser.add("true4", "oN");
result = parser.getBoolean("true4");
assertEquals(result, true);
// unparsable value
parser.add("unparsable", "a");
result = parser.getBoolean("unparsable");
assertEquals(result, false);
}
@Test
public void testGetBooleanObject()
{
// no param
Boolean result = parser.getBooleanObject("invalid");
assertNull(result);
// default
result = parser.getBooleanObject("default", Boolean.TRUE);
assertEquals(result, Boolean.TRUE);
// true values - Case is intentional
parser.add("true1", "trUe");
result = parser.getBooleanObject("true1");
assertEquals(result, Boolean.TRUE);
parser.add("true2", "yEs");
result = parser.getBooleanObject("true2");
assertEquals(result, Boolean.TRUE);
parser.add("true3", "1");
result = parser.getBooleanObject("true3");
assertEquals(result, Boolean.TRUE);
parser.add("true4", "oN");
result = parser.getBooleanObject("true4");
assertEquals(result, Boolean.TRUE);
// false values - Case is intentional
parser.add("false1", "falSe");
result = parser.getBooleanObject("false1");
assertEquals(result, Boolean.FALSE);
parser.add("false2", "nO");
result = parser.getBooleanObject("false2");
assertEquals(result, Boolean.FALSE);
parser.add("false3", "0");
result = parser.getBooleanObject("false3");
assertEquals(result, Boolean.FALSE);
parser.add("false4", "oFf");
result = parser.getBooleanObject("false4");
assertEquals(result, Boolean.FALSE);
// unparsable value
parser.add("unparsable", "a");
result = parser.getBooleanObject("unparsable");
assertNull(result);
}
@Test
public void testGetBigDecimal()
{
// no param
BigDecimal result = parser.getBigDecimal("invalid");
assertNull(result); // object returns NOT new BigDecimal(0)
// default
result = parser.getBigDecimal("default", new BigDecimal(3));
assertEquals(result, new BigDecimal(3));
// param exists
parser.add("exists", "1");
result = parser.getBigDecimal("exists");
assertEquals(result, new BigDecimal(1));
// unparsable value
parser.add("unparsable", "a");
result = parser.getBigDecimal("unparsable");
assertNull(result); //assertEquals(new BigDecimal(0), result);
// array
parser.add("array", "1");
parser.add("array", "2");
parser.add("array", "3");
BigDecimal arrayResult[] = parser.getBigDecimals("array");
BigDecimal compare[] = {new BigDecimal(1), new BigDecimal(2),
new BigDecimal(3)};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
// array w/ unparsable element
parser.add("array2", "1");
parser.add("array2", "a");
parser.add("array2", "3");
BigDecimal arrayResult2[] = parser.getBigDecimals("array2");
BigDecimal compare2[] = {new BigDecimal(1), null, new BigDecimal(3)};
assertEquals(arrayResult2.length, compare2.length);
for( int i=0; i<compare2.length; i++)
{
assertEquals(compare2[i], arrayResult2[i] );
}
}
@Test
public void testGetString()
{
// no param
String result = parser.getString("invalid");
assertNull(result);
// default
result = parser.getString("default", "default");
assertEquals(result, "default");
// null value
parser.add("null", (String) null);
assertNull( parser.getString("null"));
// only return the first added
parser.add("multiple", "test");
parser.add("multiple", "test2");
assertEquals("test", parser.getString("multiple"));
// array
parser.add("array", "line1");
parser.add("array", "line2");
parser.add("array", "line3");
String arrayResult[] = parser.getStrings("array");
String compare[] = {"line1","line2","line3"};
assertEquals(arrayResult.length, compare.length);
for( int i=0; i<compare.length; i++)
{
assertEquals(compare[i], arrayResult[i]);
}
}
@Test
public void testRecycling() throws Exception {
parser.setCharacterEncoding("fake");
parser.recycle();
assertEquals("US-ASCII",parser.getCharacterEncoding());
}
@Test
public void testSetup()
{
try
{
BaseValueParser vp = parserService.getParser(BaseValueParser.class);
assertFalse(vp.isDisposed());
parserService.putParser(vp);
}
catch (InstantiationException e)
{
assertTrue(false, "Could not instantiate ValueParser object");
}
// TODO expose PARAMETER_ENCODING_DEFAULT
// assertEquals( TurbineConstants.PARAMETER_ENCODING_DEFAULT, vp.getCharacterEncoding(),"Wrong Character Encoding");
}
/**
* TODO expose the PARAMETER_ENCODING_DEFAULT INSIDE THE VALUEPARSER
*
*/
// public void testChangeEncoding()
// {
// ValueParser vp = new BaseValueParser();
//
// assertEquals( TurbineConstants.PARAMETER_ENCODING_DEFAULT, vp.getCharacterEncoding(),"Wrong Character Encoding");
//
// String encoding = "ISO-8859-2";
// vp.setCharacterEncoding(encoding);
//
// assertEquals( encoding, vp.getCharacterEncoding(),"Wrong Character Encoding");
// }
@Test
public void testClear()
{
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", "bar");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
}
@Test
public void testDispose()
{
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", "bar");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
parser.dispose();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
assertTrue(parser.isDisposed());
}
@Test
public void testKeyArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("bar", "foo");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
parser.add("bar", "baz");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
}
public void testDoubleAdd()
{
parser.clear();
parser.setLocale(Locale.US);
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
double testValue = 2.2;
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
assertEquals( "2.2", parser.getString("foo"), "Wrong string value");
assertEquals( testValue, parser.getDouble("foo"), 0.001, "Wrong double value");
assertEquals( testValue, parser.getDoubleObject("foo").doubleValue(), 0.001, "Wrong Double value");
double [] doubles = parser.getDoubles("foo");
assertEquals( 1, doubles.length,"Wrong Array Size");
assertEquals( testValue, doubles[0], 0.001,"Wrong double array value");
Double [] doubleObjs = parser.getDoubleObjects("foo");
assertEquals( 1, doubleObjs.length,"Wrong Array Size");
assertEquals( testValue, doubleObjs[0].doubleValue(), 0.001,"Wrong Double array value");
parser.clear();
parser.setLocale(Locale.GERMANY);
String testDouble = "2,3";
parser.add("foo", testDouble);
assertEquals( 2.3, parser.getDouble("foo"), 0.001,"Wrong double value");
parser.add("unparsable2", "1a");
Double result = parser.getDoubleObject("unparsable2");
assertNull(result, "Double object should be null");
}
@Test
public void testIntAdd()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
int testValue = 123;
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( "123", parser.getString("foo"),"Wrong string value");
assertEquals( testValue, parser.getInt("foo"),"Wrong int value");
assertEquals( testValue, parser.getIntObject("foo").intValue(),"Wrong Int value");
int [] ints = parser.getInts("foo");
assertEquals( 1, ints.length,"Wrong Array Size");
assertEquals( testValue, ints[0],"Wrong int array value");
Integer [] intObjs = parser.getIntObjects("foo");
assertEquals( 1, intObjs.length,"Wrong Array Size");
assertEquals( testValue, intObjs[0].intValue(),"Wrong Int array value");
}
@Test
public void testIntegerAdd()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
Integer testValue = new Integer(123);
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( "123", parser.getString("foo"),"Wrong string value");
assertEquals( testValue.intValue(), parser.getInt("foo"),"Wrong int value");
assertEquals( testValue.intValue(), parser.getIntObject("foo").intValue(),"Wrong Int value");
int [] ints = parser.getInts("foo");
assertEquals( 1, ints.length,"Wrong Array Size");
assertEquals( testValue.intValue(), ints[0],"Wrong int array value");
Integer [] intObjs = parser.getIntObjects("foo");
assertEquals( 1, intObjs.length,"Wrong Array Size");
assertEquals( testValue.intValue(), intObjs[0].intValue(),"Wrong Int array value");
}
@Test
public void testLongAdd()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
long testValue = 9223372036854775807l;
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( "9223372036854775807", parser.getString("foo"),"Wrong string value");
assertEquals( testValue, parser.getLong("foo"),"Wrong long value");
assertEquals( testValue, parser.getLongObject("foo").longValue(),"Wrong Long value");
long [] longs = parser.getLongs("foo");
assertEquals( 1, longs.length,"Wrong Array Size");
assertEquals( testValue, longs[0],"Wrong long array value");
Long [] longObjs = parser.getLongObjects("foo");
assertEquals( 1, longObjs.length,"Wrong Array Size");
assertEquals( testValue, longObjs[0].longValue(),"Wrong Long array value");
}
@Test
public void testLongToInt()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
long testValue = 1234l;
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( "1234", parser.getString("foo"),"Wrong string value");
assertEquals( (int) testValue, parser.getInt("foo"),"Wrong int value");
assertEquals( (int) testValue, parser.getIntObject("foo").intValue(),"Wrong Int value");
int [] ints = parser.getInts("foo");
assertEquals( 1, ints.length,"Wrong Array Size");
assertEquals( testValue, ints[0],"Wrong int array value");
Integer [] intObjs = parser.getIntObjects("foo");
assertEquals( 1, intObjs.length,"Wrong Array Size");
assertEquals( testValue, intObjs[0].intValue(),"Wrong Int array value");
}
public void testIntToLong()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
int testValue = 123;
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( "123", parser.getString("foo"),"Wrong string value");
assertEquals( testValue, parser.getLong("foo"),"Wrong long value");
assertEquals( testValue, parser.getLongObject("foo").longValue(),"Wrong Long value");
long [] longs = parser.getLongs("foo");
assertEquals( 1, longs.length,"Wrong Array Size");
assertEquals( testValue, longs[0],"Wrong long array value");
Long [] longObjs = parser.getLongObjects("foo");
assertEquals( 1, longObjs.length,"Wrong Array Size");
assertEquals( testValue, longObjs[0].longValue(),"Wrong Long array value");
}
@Test
public void testIntToDouble()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
int testValue = 123;
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( "123", parser.getString("foo"),"Wrong string value");
assertEquals( testValue, parser.getDouble("foo"), 0.001,"Wrong double value");
assertEquals( testValue, parser.getDoubleObject("foo").doubleValue(), 0.001,"Wrong Double value");
double [] doubles = parser.getDoubles("foo");
assertEquals( 1, doubles.length,"Wrong Array Size");
assertEquals( testValue, doubles[0], 0.001,"Wrong double array value");
Double [] doubleObjs = parser.getDoubleObjects("foo");
assertEquals( 1, doubleObjs.length,"Wrong Array Size");
assertEquals( testValue, doubleObjs[0].doubleValue(), 0.001,"Wrong Double array value");
}
@Test
public void testLongToDouble()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
long testValue = 9223372036854775807l;
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( "9223372036854775807", parser.getString("foo"),"Wrong string value");
assertEquals( testValue, parser.getDouble("foo"), 0.001,"Wrong double value");
assertEquals( testValue, parser.getDoubleObject("foo").doubleValue(), 0.001,"Wrong Double value");
double [] doubles = parser.getDoubles("foo");
assertEquals( 1, doubles.length,"Wrong Array Size");
assertEquals( testValue, doubles[0], 0.001,"Wrong double array value");
Double [] doubleObjs = parser.getDoubleObjects("foo");
assertEquals( 1, doubleObjs.length,"Wrong Array Size");
assertEquals( testValue, doubleObjs[0].doubleValue(), 0.001,"Wrong Double array value");
}
public void testStringAdd()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String testValue = "the quick brown fox";
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( testValue, parser.getString("foo"),"Wrong string value");
String [] Strings = parser.getStrings("foo");
assertEquals( 1, Strings.length,"Wrong Array Size");
assertEquals( testValue, Strings[0],"Wrong String array value");
}
public void testStringToInt()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String testValue = "123456";
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( testValue, parser.getString("foo"),"Wrong string value");
assertEquals( Integer.parseInt(testValue), parser.getInt("foo"),"Wrong int value");
assertEquals( Integer.valueOf(testValue).intValue(), parser.getIntObject("foo").intValue(),"Wrong Int value");
int [] ints = parser.getInts("foo");
assertEquals( 1, ints.length,"Wrong Array Size");
assertEquals( Integer.parseInt(testValue), ints[0],"Wrong int array value");
Integer [] intObjs = parser.getIntObjects("foo");
assertEquals( 1, intObjs.length,"Wrong Array Size");
assertEquals( Integer.valueOf(testValue).intValue(), intObjs[0].intValue(),"Wrong Int array value");
}
public void testStringToLong()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String testValue = "123456";
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( testValue, parser.getString("foo"),"Wrong string value");
assertEquals( Long.parseLong(testValue), parser.getLong("foo"),"Wrong long value");
assertEquals( Long.valueOf(testValue).longValue(), parser.getLongObject("foo").longValue(),"Wrong Long value");
long [] longs = parser.getLongs("foo");
assertEquals( 1, longs.length,"Wrong Array Size");
assertEquals( Long.parseLong(testValue), longs[0],"Wrong long array value");
Long [] longObjs = parser.getLongObjects("foo");
assertEquals( 1, longObjs.length,"Wrong Array Size");
assertEquals( Long.valueOf(testValue).longValue(), longObjs[0].longValue(),"Wrong Long array value");
}
@Test
public void testStringArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String [] testValue = new String [] {
"foo", "bar", "baz"
};
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
String [] res = parser.getStrings("foo");
assertEquals( 3, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
assertEquals( res[i], testValue[i],"Wrong value");
}
assertEquals( testValue[0], parser.getString("foo"),"Wrong element returned");
parser.add("foo", "xxx");
res = parser.getStrings("foo");
assertEquals( 4, res.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( res[i], testValue[i],"Wrong value");
}
assertEquals(res[3], "xxx");
// should append at the end.
assertEquals( testValue[0], parser.getString("foo"),"Wrong element returned");
}
@Test
public void testRemove()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String testValue = "the quick brown fox";
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( testValue, parser.getString("foo"),"Wrong string value");
assertNotNull(parser.remove("foo"));
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
assertNull(parser.getString("foo"));
// Test non-existing key
assertNull(parser.remove("baz"));
// Test removing null value
assertNull(parser.remove(null));
}
@Test
public void testRemoveArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String testValue = "the quick brown fox";
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
assertEquals( testValue, parser.getString("foo"),"Wrong string value");
String [] res = parser.getStrings("foo");
assertEquals( 2, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
assertEquals( res[i], testValue,"Wrong value");
}
parser.remove("foo");
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
assertNull(parser.getString("foo"));
}
@Test
public void testContainsKey()
{
parser.clear();
parser.add("foo", "bar");
parser.add("bar", new String [] { "foo", "bar" });
assertTrue(parser.containsKey("foo"));
assertTrue(parser.containsKey("bar"));
assertFalse(parser.containsKey("baz"));
}
@Test
public void testBooleanObject()
{
parser.clear();
parser.add("t1", "true");
parser.add("t2", "yes");
parser.add("t3", "on");
parser.add("t4", "1");
parser.add("t5", 1);
parser.add("f1", "false");
parser.add("f2", "no");
parser.add("f3", "off");
parser.add("f4", "0");
parser.add("f5", 0);
parser.add("e1", "nix");
parser.add("e2", "weg");
parser.add("e3", 200);
parser.add("e4", -2.5);
assertEquals( Boolean.TRUE, parser.getBooleanObject("t1"),"Value is not true");
assertEquals( Boolean.TRUE, parser.getBooleanObject("t2"),"Value is not true");
assertEquals( Boolean.TRUE, parser.getBooleanObject("t3"),"Value is not true");
assertEquals( Boolean.TRUE, parser.getBooleanObject("t4"),"Value is not true");
assertEquals( Boolean.TRUE, parser.getBooleanObject("t5"),"Value is not true");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f1"),"Value is not false");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f2"),"Value is not false");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f3"),"Value is not false");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f4"),"Value is not false");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f5"),"Value is not false");
assertNull(parser.getBooleanObject("e1"));
assertNull(parser.getBooleanObject("e2"));
assertNull(parser.getBooleanObject("e3"));
assertNull(parser.getBooleanObject("e4"));
assertNull(parser.getBooleanObject("does-not-exist"));
}
@Test
public void testBoolDefault()
{
parser.clear();
parser.add("t1", "true");
parser.add("f1", "false");
assertTrue(parser.getBoolean("t1"));
assertFalse(parser.getBoolean("f1"));
assertFalse(parser.getBoolean("does not exist"));
assertTrue(parser.getBoolean("t1", false));
assertFalse(parser.getBoolean("f1", true));
assertFalse(parser.getBoolean("does not exist", false));
assertTrue(parser.getBoolean("does not exist", true));
}
@Test
public void testBooleanDefault()
{
parser.clear();
parser.add("t1", "true");
parser.add("f1", "false");
assertEquals( Boolean.TRUE, parser.getBooleanObject("t1"),"Value is not true");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f1"),"Value is not false");
assertNull(parser.getBooleanObject("does not exist"));
assertEquals( Boolean.TRUE, parser.getBooleanObject("t1", Boolean.FALSE),"Value is not true");
assertEquals( Boolean.TRUE, parser.getBooleanObject("t1", null),"Value is not true");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f1", Boolean.TRUE),"Value is not false");
assertEquals( Boolean.FALSE, parser.getBooleanObject("f1", null),"Value is not false");
assertNull(parser.getBooleanObject("does not exist", null));
}
@Test
public void testDoubleArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
double [] testValue = {
1.0, 2.0, 3.0
};
for (int i = 0; i < testValue.length; i++)
{
parser.add("foo", testValue[i]);
String [] res = parser.getStrings("foo");
assertEquals( res.length, i + 1,"Wrong number of elements");
}
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
double [] res = parser.getDoubles("foo");
assertEquals( 3, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
assertEquals( res[i], testValue[i], 0.001,"Wrong value");
}
Double [] resObj = parser.getDoubleObjects("foo");
assertEquals( 3, resObj.length,"Wrong number of elements");
for (int i = 0; i < resObj.length; i++)
{
assertEquals( resObj[i].doubleValue(), testValue[i], 0.001,"Wrong value");
}
assertEquals( testValue[0], parser.getDoubleObject("foo").doubleValue(), 0.001,"Wrong element returned");
parser.add("foo", 4.0);
res = parser.getDoubles("foo");
assertEquals( 4, res.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( res[i], testValue[i], 0.001,"Wrong value");
}
assertEquals(res[3], 4.0, 0.001);
resObj = parser.getDoubleObjects("foo");
assertEquals( 4, resObj.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( resObj[i].doubleValue(), testValue[i], 0.001,"Wrong value");
}
assertEquals(resObj[3].doubleValue(), 4.0, 0.001);
// should append at the end.
assertEquals( testValue[0], parser.getDouble("foo"), 0.001,"Wrong element returned");
}
@Test
public void testFloatArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
float [] testValue = {
1.0f, 2.0f, 3.0f
};
for (int i = 0; i < testValue.length; i++)
{
parser.add("foo", testValue[i]);
String [] res = parser.getStrings("foo");
assertEquals( res.length, i + 1,"Wrong number of elements");
}
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
float [] res = parser.getFloats("foo");
assertEquals( 3, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
assertEquals( res[i], testValue[i], 0.001f,"Wrong value");
}
Float [] resObj = parser.getFloatObjects("foo");
assertEquals( 3, resObj.length,"Wrong number of elements");
for (int i = 0; i < resObj.length; i++)
{
assertEquals( resObj[i].floatValue(), testValue[i], 0.001f,"Wrong value");
}
assertEquals( testValue[0], parser.getFloatObject("foo").floatValue(), 0.001f,"Wrong element returned");
parser.add("foo", 4.0f);
res = parser.getFloats("foo");
assertEquals( 4, res.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( res[i], testValue[i], 0.001f,"Wrong value");
}
assertEquals(res[3], 4.0f, 0.001f);
resObj = parser.getFloatObjects("foo");
assertEquals( 4, resObj.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( resObj[i].floatValue(), testValue[i], 0.001f,"Wrong value");
}
assertEquals(resObj[3].floatValue(), 4.0f, 0.001f);
// should append at the end.
assertEquals( testValue[0], parser.getFloat("foo"), 0.001f,"Wrong element returned");
}
@Test
public void testBigDecimalArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
long [] testValue = {
12345678,87654321,1092837465,
};
for (int i = 0; i < testValue.length; i++)
{
parser.add("foo", testValue[i]);
String [] res = parser.getStrings("foo");
assertEquals( res.length, i + 1,"Wrong number of elements");
}
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
BigDecimal [] res = parser.getBigDecimals("foo");
assertEquals( 3, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
assertEquals( res[i].longValue(), testValue[i],"Wrong value");
}
assertEquals( testValue[0], parser.getBigDecimal("foo").longValue(),"Wrong element returned");
parser.add("foo", 77777777);
res = parser.getBigDecimals("foo");
assertEquals( 4, res.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( res[i].longValue(), testValue[i], 0.001,"Wrong value");
}
assertEquals(res[3].longValue(), 77777777);
// should append at the end.
assertEquals( testValue[0], parser.getBigDecimal("foo").longValue(),"Wrong element returned");
}
@Test
public void testIntegerArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
int [] testValue = {
1, 2, 3
};
for (int i = 0; i < testValue.length; i++)
{
parser.add("foo", testValue[i]);
String [] res = parser.getStrings("foo");
assertEquals( res.length, i + 1,"Wrong number of elements");
}
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
int [] res = parser.getInts("foo");
assertEquals( 3, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
assertEquals( res[i], testValue[i],"Wrong value");
}
Integer [] resObj = parser.getIntObjects("foo");
assertEquals( 3, resObj.length,"Wrong number of elements");
for (int i = 0; i < resObj.length; i++)
{
assertEquals( resObj[i].intValue(), testValue[i],"Wrong value");
}
assertEquals( testValue[0], parser.getIntObject("foo").intValue(),"Wrong element returned");
parser.add("foo", 4);
res = parser.getInts("foo");
assertEquals( 4, res.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( res[i], testValue[i],"Wrong value");
}
assertEquals(res[3], 4);
resObj = parser.getIntObjects("foo");
assertEquals( 4, resObj.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( resObj[i].intValue(), testValue[i],"Wrong value");
}
assertEquals(resObj[3].intValue(), 4);
// should append at the end.
assertEquals( testValue[0], parser.getInt("foo"),"Wrong element returned");
}
@Test
public void testLongArray()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
long [] testValue = {
1l, 2l, 3l
};
for (int i = 0; i < testValue.length; i++)
{
parser.add("foo", testValue[i]);
String [] res = parser.getStrings("foo");
assertEquals( res.length, i + 1,"Wrong number of elements");
}
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
long [] res = parser.getLongs("foo");
assertEquals( 3, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
assertEquals( res[i], testValue[i],"Wrong value");
}
Long [] resObj = parser.getLongObjects("foo");
assertEquals( 3, resObj.length,"Wrong number of elements");
for (int i = 0; i < resObj.length; i++)
{
assertEquals( resObj[i].longValue(), testValue[i],"Wrong value");
}
assertEquals( testValue[0], parser.getLongObject("foo").longValue(),"Wrong element returned");
parser.add("foo", 4);
res = parser.getLongs("foo");
assertEquals( 4, res.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( res[i], testValue[i],"Wrong value");
}
assertEquals(res[3], 4);
resObj = parser.getLongObjects("foo");
assertEquals( 4, resObj.length,"Wrong number of elements");
for (int i = 0; i < 3; i++)
{
assertEquals( resObj[i].longValue(), testValue[i],"Wrong value");
}
assertEquals(resObj[3].longValue(), 4);
// should append at the end.
assertEquals( testValue[0], parser.getLong("foo"),"Wrong element returned");
}
@Test
public void testByteArray()
throws Exception
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String testValue = "abcdefg";
parser.add("foo", testValue);
assertEquals( 1, parser.keySet().size(),"Wrong number of keys");
byte [] res = parser.getBytes("foo");
assertEquals( 7, res.length,"Wrong number of elements");
for (int i = 0; i < res.length; i++)
{
byte [] testByte = testValue.substring(i, i + 1).getBytes(parser.getCharacterEncoding());
assertEquals( 1, testByte.length,"More than one byte for a char!");
assertEquals( res[i], testByte[0],"Wrong value");
}
}
@Test
public void testByte()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
String [] testValue = {
"0", "127", "-1",
"0", "-127", "100"
};
for (int i = 0; i < testValue.length; i++)
{
parser.add("foo" + i, testValue[i]);
}
assertEquals( 6, parser.keySet().size(),"Wrong number of keys");
assertEquals( (byte) 0, parser.getByte("foo0"),"Wrong value");
assertEquals( (byte) 127, parser.getByte("foo1"),"Wrong value");
assertEquals( (byte) -1, parser.getByte("foo2"),"Wrong value");
assertEquals( (byte) 0, parser.getByte("foo3"),"Wrong value");
assertEquals( (byte) -127, parser.getByte("foo4"),"Wrong value");
assertEquals( (byte) 100, parser.getByte("foo5"),"Wrong value");
assertEquals( new Byte((byte) 0), parser.getByteObject("foo0"),"Wrong value");
assertEquals( new Byte((byte) 127), parser.getByteObject("foo1"),"Wrong value");
assertEquals( new Byte((byte) -1), parser.getByteObject("foo2"),"Wrong value");
assertEquals( new Byte((byte) 0), parser.getByteObject("foo3"),"Wrong value");
assertEquals( new Byte((byte) -127), parser.getByteObject("foo4"),"Wrong value");
assertEquals( new Byte((byte) 100), parser.getByteObject("foo5"),"Wrong value");
}
@Test
public void testStringDefault()
{
parser.clear();
assertEquals( 0, parser.keySet().size(),"Wrong number of keys");
parser.add("foo", "bar");
assertEquals( "bar", parser.getString("foo", "xxx"),"Wrong value found");
assertEquals( "bar", parser.getString("foo", null),"Wrong value found");
assertEquals( "baz", parser.getString("does-not-exist", "baz"),"Wrong value found");
assertNull(parser.getString("does-not-exist", null));
}
@Test
public void testSetString()
{
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", "bar");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
parser.add("bar", "foo");
assertEquals( 2, parser.keySet().size(), "Wrong number of keys");
parser.add("bar", "baz");
assertEquals( 2, parser.keySet().size(), "Wrong number of keys");
String [] res = parser.getStrings("bar");
assertEquals( 2, res.length, "Wrong number of values");
assertEquals( "foo", res[0], "Wrong value found");
assertEquals( "baz", res[1], "Wrong value found");
parser.setString("bar", "xxx");
assertEquals( 2, parser.keySet().size(), "Wrong number of keys");
res = parser.getStrings("bar");
assertEquals( 1, res.length, "Wrong number of values");
assertEquals( "xxx", res[0], "Wrong value found");
}
@Test
public void testSetStrings()
{
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", "bar");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
parser.add("bar", "foo");
assertEquals( 2, parser.keySet().size(), "Wrong number of keys");
parser.add("bar", "baz");
assertEquals( 2, parser.keySet().size(), "Wrong number of keys");
String [] res = parser.getStrings("bar");
assertEquals( 2, res.length, "Wrong number of values");
assertEquals( "foo", res[0], "Wrong value found");
assertEquals( "baz", res[1], "Wrong value found");
String [] newValues = new String [] { "aaa", "bbb", "ccc", "ddd" };
parser.setStrings("bar", newValues);
assertEquals( 2, parser.keySet().size(),"Wrong number of keys");
res = parser.getStrings("bar");
assertEquals( newValues.length, res.length,"Wrong number of values");
for (int i = 0 ; i < newValues.length; i++)
{
assertEquals( newValues[i], res[i],"Wrong value found");
}
}
@Test
public void testSetProperties()
throws Exception
{
parser.clear();
parser.add("longValue", 12345l);
parser.add("doubleValue", 2.0);
parser.add("intValue", 200);
parser.add("stringValue", "foobar");
parser.add("booleanValue", "true");
PropertyBean bp = new PropertyBean();
bp.setDoNotTouchValue("abcdef");
parser.setProperties(bp);
assertEquals( "abcdef", bp.getDoNotTouchValue(), "Wrong value in bean");
assertEquals( "foobar", bp.getStringValue(), "Wrong value in bean");
assertEquals( 200, bp.getIntValue(), "Wrong value in bean");
assertEquals( 2.0, bp.getDoubleValue(), 0.001, "Wrong value in bean");
assertEquals( 12345l, bp.getLongValue(), "Wrong value in bean");
assertEquals( Boolean.TRUE, bp.getBooleanValue(), "Wrong value in bean");
}
public void testAddNulls()
{
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", (Integer) null);
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", (String) null);
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("bar", "null");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
}
@Test
public void testAddNullArrays()
{
String [] res = null;
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
parser.add("foo", new String [] { "foo", "bar" });
res = parser.getStrings("foo");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
assertEquals( 2, res.length,"Wrong number of values");
// null value should not change contents
parser.add("foo", (String) null);
res = parser.getStrings("foo");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
assertEquals( 2, res.length,"Wrong number of values");
// null value should not change contents
parser.add("foo", (String []) null);
res = parser.getStrings("foo");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
assertEquals( 2, res.length,"Wrong number of values");
// empty String array should not change contents
parser.add("foo", new String [0]);
res = parser.getStrings("foo");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
assertEquals( 2, res.length, "Wrong number of values");
// String array with null value should not change contents
parser.add("foo", new String [] { null });
res = parser.getStrings("foo");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
assertEquals( 2, res.length, "Wrong number of values");
// String array with null value should only add non-null values
parser.add("foo", new String [] { "bla", null, "foo" });
res = parser.getStrings("foo");
assertEquals( 1, parser.keySet().size(), "Wrong number of keys");
assertEquals( 4, res.length, "Wrong number of values");
}
@Test
public void testNonExistingResults()
{
parser.clear();
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
assertEquals( 0.0, parser.getDouble("foo"), 0.001, "Wrong value for non existing key");
assertNull(parser.getDoubles("foo"));
assertNull(parser.getDoubleObject("foo"));
assertNull(parser.getDoubleObjects("foo"));
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
assertNull(parser.getString("foo"));
assertNull(parser.getStrings("foo"));
assertEquals( 0.0f, parser.getFloat("foo"), 0.001, "Wrong value for non existing key");
assertNull(parser.getFloats("foo"));
assertNull(parser.getFloatObject("foo"));
assertNull(parser.getFloatObjects("foo"));
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
assertNull(parser.getBigDecimal("foo"));
assertNull(parser.getBigDecimals("foo"));
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
assertEquals( 0, parser.getInt("foo"), "Wrong value for non existing key");
assertNull(parser.getInts("foo"));
assertNull(parser.getIntObject("foo"));
assertNull(parser.getIntObjects("foo"));
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
assertEquals( 0, parser.getLong("foo"), "Wrong value for non existing key");
assertNull(parser.getLongs("foo"));
assertNull(parser.getLongObject("foo"));
assertNull(parser.getLongObjects("foo"));
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
assertEquals( 0, parser.getByte("foo"), "Wrong value for non existing key");
assertNull(parser.getByteObject("foo"));
assertEquals( 0, parser.keySet().size(), "Wrong number of keys");
}
@Test
public void testBooleanArray() {
String[] booleanString = {"on", "off", "false", "true", " ", "justaword"};
parser.add("foo", booleanString);
boolean[] theArray = parser.getBooleans("foo");
assertEquals(6, theArray.length);
assertTrue(theArray[0]);
assertFalse(theArray[1]);
assertFalse(theArray[2]);
assertTrue(theArray[3]);
assertFalse(theArray[4]);
assertFalse(theArray[5]);
assertNull(parser.getBooleans("keydontexist"));
}
@Test
public void testBooleanObjectArray() {
String[] booleanString = {"on", "off", "false", "true", " ", "justaword"};
parser.add("foo", booleanString);
Boolean[] theArray = parser.getBooleanObjects("foo");
assertEquals(6, theArray.length);
assertEquals(Boolean.TRUE, theArray[0]);
assertEquals(Boolean.FALSE, theArray[1]);
assertEquals(Boolean.FALSE, theArray[2]);
assertEquals(Boolean.TRUE, theArray[3]);
assertEquals(null, theArray[4]);
assertEquals(null, theArray[5]);
assertNull(parser.getBooleanObjects("keydontexist"));
}
@Test
public void testGet() {
// no param
String result = parser.get("invalid");
assertNull(result);
// null value
parser.add("valid", "value");
assertEquals("value", parser.get("valid"));
// only return the first added
parser.add("multiple", "test");
parser.add("multiple", "test2");
assertEquals("test", parser.get("multiple"));
}
}