tamaya-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From anat...@apache.org
Subject [12/21] incubator-tamaya git commit: - Minimalized current API for further discussions.
Date Fri, 15 Jul 2016 12:04:38 GMT
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/PropertyConverterManagerTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/PropertyConverterManagerTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/PropertyConverterManagerTest.java
new file mode 100644
index 0000000..f53941e
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/PropertyConverterManagerTest.java
@@ -0,0 +1,178 @@
+/*
+ * 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.tamaya.core.internal;
+
+
+import org.apache.tamaya.builder.spi.ConversionContext;
+import org.apache.tamaya.builder.spi.PropertyConverter;
+import org.apache.tamaya.TypeLiteral;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
+
+public class PropertyConverterManagerTest {
+
+    private final ConversionContext DUMMY_CONTEXT = new ConversionContext.Builder(
+            "someKey", TypeLiteral.of(Object.class)).build();
+
+    @Test
+    public void customTypeWithFactoryMethodOfIsRecognizedAsSupported() {
+        PropertyConverterManager manager = new PropertyConverterManager();
+
+        assertThat(manager.isTargetTypeSupported(TypeLiteral.of(MyType.class)),
+                   is(true));
+    }
+
+    @Test
+    public void factoryMethodOfIsUsedAsConverter() {
+        PropertyConverterManager manager = new PropertyConverterManager();
+
+        List<PropertyConverter<MyType>> converters = manager.getPropertyConverters(
+                (TypeLiteral)TypeLiteral.of(MyType.class));
+
+        assertThat(converters, hasSize(1));
+
+        PropertyConverter<MyType> converter = converters.get(0);
+
+        Object result = converter.convert("IN", DUMMY_CONTEXT);
+
+        assertThat(result, notNullValue());
+        assertThat(result, instanceOf(MyType.class));
+        assertThat(((MyType)result).getValue(), equalTo("IN"));
+    }
+
+    @Test
+    public void testDirectConverterMapping(){
+        PropertyConverterManager manager = new PropertyConverterManager();
+        List<PropertyConverter<C>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(C.class)));
+        assertThat(converters, hasSize(1));
+
+        PropertyConverter<C> converter = converters.get(0);
+        C result = converter.convert("testDirectConverterMapping", DUMMY_CONTEXT);
+
+        assertThat(result, notNullValue());
+        assertThat(result, instanceOf(C.class));
+        assertThat((result).getInValue(), equalTo("testDirectConverterMapping"));
+    }
+
+    @Test
+    public void testDirectSuperclassConverterMapping(){
+        PropertyConverterManager manager = new PropertyConverterManager();
+        List<PropertyConverter<B>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class)));
+        assertThat(converters, hasSize(1));
+        converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class)));
+        assertThat(converters, hasSize(1));
+
+        PropertyConverter<B> converter = converters.get(0);
+        B result = converter.convert("testDirectSuperclassConverterMapping", DUMMY_CONTEXT);
+
+        assertThat(result, notNullValue());
+        assertThat(result, instanceOf(C.class));
+        assertThat(((C)result).getInValue(), equalTo("testDirectSuperclassConverterMapping"));
+    }
+
+    @Test
+    public void testMultipleConverterLoad(){
+        PropertyConverterManager manager = new PropertyConverterManager();
+        List<PropertyConverter<B>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class)));
+        assertThat(converters, hasSize(1));
+        manager = new PropertyConverterManager();
+        converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(B.class)));
+        assertThat(converters, hasSize(1));
+    }
+
+    @Test
+    public void testTransitiveSuperclassConverterMapping(){
+        PropertyConverterManager manager = new PropertyConverterManager();
+        List<PropertyConverter<A>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(A.class)));
+        assertThat(converters, hasSize(1));
+
+        PropertyConverter<A> converter = converters.get(0);
+        A result = converter.convert("testTransitiveSuperclassConverterMapping", DUMMY_CONTEXT);
+
+        assertThat(result, notNullValue());
+        assertThat(result, instanceOf(C.class));
+        assertThat(((C)result).getInValue(), equalTo("testTransitiveSuperclassConverterMapping"));
+    }
+
+    @Test
+    public void testDirectInterfaceMapping(){
+        PropertyConverterManager manager = new PropertyConverterManager();
+        List<PropertyConverter<Readable>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(Readable.class)));
+        assertThat(converters, hasSize(1));
+
+        PropertyConverter<Readable> converter = converters.get(0);
+        Readable result = converter.convert("testDirectInterfaceMapping", DUMMY_CONTEXT);
+
+        assertThat(result, notNullValue());
+        assertThat(result, instanceOf(C.class));
+        assertThat(((C)result).getInValue(), equalTo("testDirectInterfaceMapping"));
+    }
+
+    @Test
+    public void testTransitiveInterfaceMapping1(){
+        PropertyConverterManager manager = new PropertyConverterManager();
+        List<PropertyConverter<Runnable>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(Runnable.class)));
+        assertThat(converters, hasSize(1));
+
+        PropertyConverter<Runnable> converter = converters.get(0);
+        Runnable result = converter.convert("testTransitiveInterfaceMapping1", DUMMY_CONTEXT);
+
+        assertThat(result, notNullValue());
+        assertThat(result, instanceOf(C.class));
+        assertThat(((C)result).getInValue(), equalTo("testTransitiveInterfaceMapping1"));
+    }
+
+    @Test
+    public void testTransitiveInterfaceMapping2(){
+        PropertyConverterManager manager = new PropertyConverterManager();
+        List<PropertyConverter<AutoCloseable>> converters = List.class.cast(manager.getPropertyConverters(TypeLiteral.of(AutoCloseable.class)));
+        assertThat(converters, hasSize(1));
+
+        PropertyConverter<AutoCloseable> converter = converters.get(0);
+        AutoCloseable result = converter.convert("testTransitiveInterfaceMapping2", DUMMY_CONTEXT);
+
+        assertThat(result, notNullValue());
+        assertThat(result, instanceOf(C.class));
+        assertThat(((C)result).getInValue(), equalTo("testTransitiveInterfaceMapping2"));
+    }
+
+    public static class MyType {
+        private final String typeValue;
+
+        private MyType(String value) {
+            typeValue = value;
+        }
+
+        public static MyType of(String source) {
+            return new MyType(source);
+        }
+
+        public String getValue() {
+            return typeValue;
+        }
+
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BigDecimalConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BigDecimalConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BigDecimalConverterTest.java
new file mode 100644
index 0000000..9c71688
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BigDecimalConverterTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests the default converter for bytes.
+ */
+public class BigDecimalConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_BigDecimal_Decimal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        BigDecimal valueRead = config.get("tests.converter.bd.decimal", BigDecimal.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, new BigDecimal(101));
+    }
+
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_BigDecimal_Hex() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        BigDecimal valueRead = config.get("tests.converter.bd.hex.lowerX", BigDecimal.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, new BigDecimal("47"));
+        valueRead = config.get("tests.converter.bd.hex.upperX", BigDecimal.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, new BigDecimal("63"));
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_NotPresent() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        BigDecimal valueRead = config.get("tests.converter.bd.foo", BigDecimal.class);
+        assertFalse(valueRead != null);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_BigDecimal_BigValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        BigDecimal valueRead = config.get("tests.converter.bd.big", BigDecimal.class);
+        assertTrue(valueRead != null);
+        assertEquals(new BigDecimal("101666666666666662333337263723628763821638923628193612983618293628763"),
+                valueRead);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_BigDecimal_BigFloatValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        BigDecimal valueRead = config.get("tests.converter.bd.bigFloat", BigDecimal.class);
+        assertTrue(valueRead != null);
+        assertEquals(new BigDecimal("1016666666666666623333372637236287638216389293628763.1016666666666666623333372" +
+                "63723628763821638923628193612983618293628763"), valueRead);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BooleanConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BooleanConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BooleanConverterTest.java
new file mode 100644
index 0000000..ac75c34
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/BooleanConverterTest.java
@@ -0,0 +1,108 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+/**
+ * Tests the default converter for bytes.
+ */
+public class BooleanConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Byte() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        // trues
+        Boolean valueRead = config.get("tests.converter.boolean.y1", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.y2", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.yes1", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.yes2", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.yes3", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.true1", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.true2", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.true3", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.t1", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        valueRead = config.get("tests.converter.boolean.t2", Boolean.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead, Boolean.TRUE);
+        // falses
+        valueRead = config.get("tests.converter.boolean.n1", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.n2", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.no1", Boolean.class);
+        assertFalse(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.no2", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.no3", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.false1", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.false2", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.false3", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.f1", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.f2", Boolean.class);
+        assertNotNull(valueRead);
+        assertFalse(valueRead);
+        valueRead = config.get("tests.converter.boolean.foo", Boolean.class);
+        assertNull(valueRead);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ByteConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ByteConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ByteConverterTest.java
new file mode 100644
index 0000000..132674d
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ByteConverterTest.java
@@ -0,0 +1,81 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests the default converter for bytes.
+ */
+public class ByteConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Byte() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Byte valueRead = config.get("tests.converter.byte.decimal", Byte.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead.byteValue(), 101);
+        valueRead = config.get("tests.converter.byte.octal", Byte.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead.byteValue(), Byte.decode("02").byteValue());
+        valueRead = config.get("tests.converter.byte.hex.lowerX", Byte.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead.byteValue(), Byte.decode("0x2F").byteValue());
+        valueRead = config.get("tests.converter.byte.hex.upperX", Byte.class);
+        assertNotNull(valueRead);
+        assertEquals(valueRead.byteValue(), Byte.decode("0X3F").byteValue());
+        valueRead = config.get("tests.converter.byte.foo", Byte.class);
+        assertNull(valueRead);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Byte_MinValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Byte valueRead = config.get("tests.converter.byte.min", Byte.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Byte.MIN_VALUE, valueRead.byteValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Byte_MaxValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Byte valueRead = config.get("tests.converter.byte.max", Byte.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Byte.MAX_VALUE, valueRead.byteValue());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CharConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CharConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CharConverterTest.java
new file mode 100644
index 0000000..f27a465
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CharConverterTest.java
@@ -0,0 +1,86 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests conversion of the {@link CharConverter}.
+ */
+public class CharConverterTest {
+
+    @Test
+    public void testConvert_Character() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Character valueRead = config.get("tests.converter.char.f", Character.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.charValue(), 'f');
+    }
+
+    @Test
+    public void testConvert_Character_Numeric() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Character valueRead = config.get("tests.converter.char.f-numeric", Character.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.charValue(), (char)101);
+    }
+
+    @Test
+    public void testConvert_Character_Quoted() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Character valueRead = config.get("tests.converter.char.d", Character.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.charValue(), 'd');
+    }
+
+    @Test
+    public void testConvert_Character_WithWhitspace_Before() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Character valueRead = config.get("tests.converter.char.f-before", Character.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.charValue(), 'f');
+    }
+
+    @Test
+    public void testConvert_Character_WithWhitspace_After() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Character valueRead = config.get("tests.converter.char.f-after", Character.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.charValue(), 'f');
+    }
+
+    @Test
+    public void testConvert_Character_WithWhitspace_Around() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Character valueRead = config.get("tests.converter.char.f-around", Character.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.charValue(), 'f');
+    }
+
+    @Test
+    public void testConvert_NotPresent() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Character valueRead = config.get("tests.converter.char.foo", Character.class);
+        assertNull(valueRead);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ConverterTestsPropertySource.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ConverterTestsPropertySource.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ConverterTestsPropertySource.java
new file mode 100644
index 0000000..3f34384
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ConverterTestsPropertySource.java
@@ -0,0 +1,253 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.builder.spi.PropertySource;
+import org.apache.tamaya.builder.spi.PropertyValue;
+
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * Test Property Source used by converter tests.
+ */
+public class ConverterTestsPropertySource implements PropertySource{
+    @Override
+    public int getOrdinal() {
+        return 0;
+    }
+
+    @Override
+    public String getName(){
+        return "ConverterTestsPropertySource";
+    }
+
+    @Override
+    public PropertyValue get(String key) {
+        switch(key){
+            // Bytes
+            case "tests.converter.byte.decimal":
+                return PropertyValue.of(key, "101", getName());
+            case "tests.converter.byte.octal":
+                return PropertyValue.of(key, "02", getName());
+            case "tests.converter.byte.hex.lowerX":
+                return PropertyValue.of(key, "0x2F", getName());
+            case "tests.converter.byte.hex.upperX":
+                return PropertyValue.of(key, "0X3F", getName());
+            case "tests.converter.byte.min":
+                return PropertyValue.of(key, "min", getName());
+            case "tests.converter.byte.max":
+                return PropertyValue.of(key, "MAX_Value", getName());
+            // Boolean
+            case "tests.converter.boolean.y1":
+                return PropertyValue.of(key, "y", getName());
+            case "tests.converter.boolean.y2":
+                return PropertyValue.of(key, "Y", getName());
+            case "tests.converter.boolean.yes1":
+                return PropertyValue.of(key, "yes", getName());
+            case "tests.converter.boolean.yes2":
+                return PropertyValue.of(key, "Yes", getName());
+            case "tests.converter.boolean.yes3":
+                return PropertyValue.of(key, "yeS", getName());
+            case "tests.converter.boolean.true1":
+                return PropertyValue.of(key, "true", getName());
+            case "tests.converter.boolean.true2":
+                return PropertyValue.of(key, "True", getName());
+            case "tests.converter.boolean.true3":
+                return PropertyValue.of(key, "trUe", getName());
+            case "tests.converter.boolean.t1":
+                return PropertyValue.of(key, "t", getName());
+            case "tests.converter.boolean.t2":
+                return PropertyValue.of(key, "T", getName());
+            case "tests.converter.boolean.n1":
+                return PropertyValue.of(key, "n", getName());
+            case "tests.converter.boolean.n2":
+                return PropertyValue.of(key, "N", getName());
+            case "tests.converter.boolean.no1":
+                return PropertyValue.of(key, "no", getName());
+            case "tests.converter.boolean.no2":
+                return PropertyValue.of(key, "No", getName());
+            case "tests.converter.boolean.no3":
+                return PropertyValue.of(key, "nO", getName());
+            case "tests.converter.boolean.false1":
+                return PropertyValue.of(key, "false", getName());
+            case "tests.converter.boolean.false2":
+                return PropertyValue.of(key, "False", getName());
+            case "tests.converter.boolean.false3":
+                return PropertyValue.of(key, "falSe", getName());
+            case "tests.converter.boolean.f1":
+                return PropertyValue.of(key, "f", getName());
+            case "tests.converter.boolean.f2":
+                return PropertyValue.of(key, "F", getName());
+            // Character
+            case "tests.converter.char.f":
+                return PropertyValue.of(key, "f", getName());
+            case "tests.converter.char.d":
+                return PropertyValue.of(key, "'d'", getName());
+            case "tests.converter.char.f-before":
+                return PropertyValue.of(key, "  f", getName());
+            case "tests.converter.char.f-after":
+                return PropertyValue.of(key, "f   ", getName());
+            case "tests.converter.char.f-around":
+                return PropertyValue.of(key, "   f      ", getName());
+            case "tests.converter.char.f-numeric":
+                return PropertyValue.of(key, "101", getName());
+            // currency
+            case "tests.converter.currency.code1":
+                return PropertyValue.of(key, "CHF", getName());
+            case "tests.converter.currency.code2":
+                return PropertyValue.of(key, "cHf", getName());
+            case "tests.converter.currency.code3":
+                return PropertyValue.of(key, "  CHF", getName());
+            case "tests.converter.currency.code4":
+                return PropertyValue.of(key, "CHF   ", getName());
+            case "tests.converter.currency.code5":
+                return PropertyValue.of(key, "  CHF   ", getName());
+            case "tests.converter.currency.code-numeric1":
+                return PropertyValue.of(key, "100", getName());
+            case "tests.converter.currency.code-numeric2":
+                return PropertyValue.of(key, "  100", getName());
+            case "tests.converter.currency.code-numeric3":
+                return PropertyValue.of(key, "100  ", getName());
+            case "tests.converter.currency.code-numeric4":
+                return PropertyValue.of(key, "  100  ", getName());
+            case "tests.converter.currency.code-locale1":
+                return PropertyValue.of(key, "DE", getName());
+            case "tests.converter.currency.code-locale2":
+                return PropertyValue.of(key, "  DE", getName());
+            case "tests.converter.currency.code-locale3":
+                return PropertyValue.of(key, "DE  ", getName());
+            case "tests.converter.currency.code-locale4":
+                return PropertyValue.of(key, "  DE  ", getName());
+            //double
+            case "tests.converter.double.decimal":
+                return PropertyValue.of(key, "1.23456789", getName());
+            case "tests.converter.double.decimalNegative":
+                return PropertyValue.of(key, "-1.23456789", getName());
+            case "tests.converter.double.integer":
+                return PropertyValue.of(key, "  100", getName());
+            case "tests.converter.double.hex1":
+                return PropertyValue.of(key, " 0XFF", getName());
+            case "tests.converter.double.hex2":
+                return PropertyValue.of(key, "-0xFF  ", getName());
+            case "tests.converter.double.hex3":
+                return PropertyValue.of(key, "#FF", getName());
+            case "tests.converter.double.octal":
+                return PropertyValue.of(key, "0013", getName());
+            case "tests.converter.double.min":
+                return PropertyValue.of(key, "MIN_Value", getName());
+            case "tests.converter.double.max":
+                return PropertyValue.of(key, "max", getName());
+            case "tests.converter.double.nan":
+                return PropertyValue.of(key, "NAN", getName());
+            case "tests.converter.double.pi":
+                return PropertyValue.of(key, "positive_infinity", getName());
+            case "tests.converter.double.ni":
+                return PropertyValue.of(key, "Negative_Infinity", getName());
+            //float
+            case "tests.converter.float.decimal":
+                return PropertyValue.of(key, "1.23456789", getName());
+            case "tests.converter.float.decimalNegative":
+                return PropertyValue.of(key, "-1.23456789", getName());
+            case "tests.converter.float.integer":
+                return PropertyValue.of(key, "  100", getName());
+            case "tests.converter.float.hex1":
+                return PropertyValue.of(key, " 0XFF", getName());
+            case "tests.converter.float.hex2":
+                return PropertyValue.of(key, "-0xFF  ", getName());
+            case "tests.converter.float.hex3":
+                return PropertyValue.of(key, "#FF", getName());
+            case "tests.converter.float.octal":
+                return PropertyValue.of(key, "0013", getName());
+            case "tests.converter.float.min":
+                return PropertyValue.of(key, "MIN_Value", getName());
+            case "tests.converter.float.max":
+                return PropertyValue.of(key, "max", getName());
+            case "tests.converter.float.nan":
+                return PropertyValue.of(key, "NAN", getName());
+            case "tests.converter.float.pi":
+                return PropertyValue.of(key, "positive_infinity", getName());
+            case "tests.converter.float.ni":
+                return PropertyValue.of(key, "Negative_Infinity", getName());
+            // Integer
+            case "tests.converter.integer.decimal":
+                return PropertyValue.of(key, "101", getName());
+            case "tests.converter.integer.octal":
+                return PropertyValue.of(key, "02", getName());
+            case "tests.converter.integer.hex.lowerX":
+                return PropertyValue.of(key, "0x2F", getName());
+            case "tests.converter.integer.hex.upperX":
+                return PropertyValue.of(key, "0X3F", getName());
+            case "tests.converter.integer.min":
+                return PropertyValue.of(key, "min", getName());
+            case "tests.converter.integer.max":
+                return PropertyValue.of(key, "MAX_Value", getName());
+            // Long
+            case "tests.converter.long.decimal":
+                return PropertyValue.of(key, "101", getName());
+            case "tests.converter.long.octal":
+                return PropertyValue.of(key, "02", getName());
+            case "tests.converter.long.hex.lowerX":
+                return PropertyValue.of(key, "0x2F", getName());
+            case "tests.converter.long.hex.upperX":
+                return PropertyValue.of(key, "0X3F", getName());
+            case "tests.converter.long.min":
+                return PropertyValue.of(key, "min", getName());
+            case "tests.converter.long.max":
+                return PropertyValue.of(key, "MAX_Value", getName());
+            // Short
+            case "tests.converter.short.decimal":
+                return PropertyValue.of(key, "101", getName());
+            case "tests.converter.short.octal":
+                return PropertyValue.of(key, "02", getName());
+            case "tests.converter.short.hex.lowerX":
+                return PropertyValue.of(key, "0x2F", getName());
+            case "tests.converter.short.hex.upperX":
+                return PropertyValue.of(key, "0X3F", getName());
+            case "tests.converter.short.min":
+                return PropertyValue.of(key, "min", getName());
+            case "tests.converter.short.max":
+                return PropertyValue.of(key, "MAX_Value", getName());
+            // BigDecimal
+            case "tests.converter.bd.decimal":
+                return PropertyValue.of(key, "101", getName());
+            case "tests.converter.bd.float":
+                return PropertyValue.of(key, "101.36438746", getName());
+            case "tests.converter.bd.big":
+                return PropertyValue.of(key, "101666666666666662333337263723628763821638923628193612983618293628763", getName());
+            case "tests.converter.bd.bigFloat":
+                return PropertyValue.of(key, "1016666666666666623333372637236287638216389293628763.101666666666666662333337263723628763821638923628193612983618293628763", getName());
+            case "tests.converter.bd.hex.lowerX":
+                return PropertyValue.of(key, "0x2F", getName());
+            case "tests.converter.bd.hex.upperX":
+                return PropertyValue.of(key, "0X3F", getName());
+        }
+        return null;
+    }
+
+    @Override
+    public Map<String, String> getProperties() {
+        return Collections.emptyMap();
+    }
+
+    @Override
+    public boolean isScannable() {
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CurrencyConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CurrencyConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CurrencyConverterTest.java
new file mode 100644
index 0000000..9113ca2
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/CurrencyConverterTest.java
@@ -0,0 +1,154 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import java.util.Currency;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests the default converter for bytes.
+ */
+public class CurrencyConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Currency_Code_CHF() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Currency valueRead = config.get("tests.converter.currency.code1", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, Currency.getInstance("CHF"));
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Currency_Code_cHf() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Currency valueRead = config.get("tests.converter.currency.code2", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, Currency.getInstance("CHF"));
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Currency_Code_CHF_Whitespace_Before() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Currency valueRead = config.get("tests.converter.currency.code3", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, Currency.getInstance("CHF"));
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Currency_Code_CHF_Whitespace_After() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Currency valueRead = config.get("tests.converter.currency.code4", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, Currency.getInstance("CHF"));
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Currency_Code_CHF_Whitespace_Around() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Currency valueRead = config.get("tests.converter.currency.code5", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead, Currency.getInstance("CHF"));
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Currency_Code_Numeric() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Currency valueRead = config.get("tests.converter.currency.code-numeric1", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getNumericCode(), Currency.getInstance("BGL").getNumericCode());
+        valueRead = config.get("tests.converter.currency.code-numeric2", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getNumericCode(), Currency.getInstance("BGL").getNumericCode());
+        valueRead = config.get("tests.converter.currency.code-numeric3", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getNumericCode(), Currency.getInstance("BGL").getNumericCode());
+        valueRead = config.get("tests.converter.currency.code-numeric4", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getNumericCode(), Currency.getInstance("BGL").getNumericCode());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Currency_Code_Locale() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Currency valueRead = config.get("tests.converter.currency.code-locale1", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getCurrencyCode(), "EUR");
+        valueRead = config.get("tests.converter.currency.code-locale2", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getCurrencyCode(), "EUR");
+        valueRead = config.get("tests.converter.currency.code-locale3", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getCurrencyCode(), "EUR");
+        valueRead = config.get("tests.converter.currency.code-locale4", Currency.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.getCurrencyCode(), "EUR");
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_NotPresent() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Byte valueRead = config.get("tests.converter.byte.foo", Byte.class);
+        assertFalse(valueRead!=null);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/DoubleConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/DoubleConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/DoubleConverterTest.java
new file mode 100644
index 0000000..ee2f33a
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/DoubleConverterTest.java
@@ -0,0 +1,175 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Tests the default converter for bytes.
+ */
+public class DoubleConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_Decimal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.decimal", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.doubleValue(), 1.23456789, 0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_DecimalNegative() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.decimalNegative", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.doubleValue(), -1.23456789, 0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_Integer() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.integer", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.doubleValue(),100d, 0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_Hex1() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.hex1", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.doubleValue(),255d, 0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_Hex2() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.hex2", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.doubleValue(),-255d, 0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_Hex3() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.hex3", Double.class);
+        assertTrue(valueRead!=null);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_MinValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.min", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Double.MIN_VALUE, valueRead.doubleValue(),0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_MaxValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.max", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Double.MAX_VALUE, valueRead.doubleValue(),0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_NaNValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.nan", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Double.NaN, valueRead.doubleValue(),0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_PositiveInfinityValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.pi", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Double.POSITIVE_INFINITY, valueRead.doubleValue(),0.0d);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Double_NegativeInfinityValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Double valueRead = config.get("tests.converter.double.ni", Double.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Double.NEGATIVE_INFINITY, valueRead.doubleValue(),0.0d);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/EnumConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/EnumConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/EnumConverterTest.java
new file mode 100644
index 0000000..52d643e
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/EnumConverterTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.TypeLiteral;
+import org.apache.tamaya.builder.spi.ConversionContext;
+import org.junit.Test;
+
+import java.math.RoundingMode;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+/**
+ * Test class testing the {@link EnumConverter} class.
+ */
+public class EnumConverterTest {
+
+    private final EnumConverter testConverter = new EnumConverter(RoundingMode.class);
+
+    private final ConversionContext DUMMY_CONTEXT = new ConversionContext.Builder("someKey", TypeLiteral.of(Enum.class)).build();
+
+    @Test
+    public void testConvert() {
+        assertEquals(testConverter.convert(RoundingMode.CEILING.toString(),
+                DUMMY_CONTEXT), RoundingMode.CEILING);
+    }
+
+    @Test
+    public void testConvert_LowerCase() {
+        assertEquals(testConverter.convert("ceiling", DUMMY_CONTEXT), RoundingMode.CEILING);
+    }
+
+    @Test
+    public void testConvert_MixedCase()  {
+        assertEquals(testConverter.convert("CeiLinG", DUMMY_CONTEXT), RoundingMode.CEILING);
+    }
+
+    @Test
+    public void testConvert_OtherValue() {
+        assertNull(testConverter.convert("fooBars", DUMMY_CONTEXT));
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/FloatConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/FloatConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/FloatConverterTest.java
new file mode 100644
index 0000000..98ea720
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/FloatConverterTest.java
@@ -0,0 +1,176 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Tests the default converter for bytes.
+ */
+public class FloatConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_Decimal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.decimal", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.floatValue(), 1.23456789f, 0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_DecimalNegative() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.decimalNegative", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.floatValue(), -1.23456789f, 0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_Integer() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.integer", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.floatValue(),100f, 0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_Hex1() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.hex1", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.floatValue(),255f, 0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_Hex2() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.hex2", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.floatValue(),-255f, 0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_Hex3() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.hex3", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead.floatValue(),255f, 0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_MinValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.min", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Float.MIN_VALUE, valueRead.floatValue(),0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_MaxValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.max", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Float.MAX_VALUE, valueRead.floatValue(),0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_NaNValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.nan", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Float.NaN, valueRead.floatValue(),0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_PositiveInfinityValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.pi", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Float.POSITIVE_INFINITY, valueRead.floatValue(),0.0f);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Float_NegativeInfinityValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Float valueRead = config.get("tests.converter.float.ni", Float.class);
+        assertTrue(valueRead!=null);
+        assertEquals(Float.NEGATIVE_INFINITY, valueRead.floatValue(),0.0f);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/IntegerConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/IntegerConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/IntegerConverterTest.java
new file mode 100644
index 0000000..03b0f12
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/IntegerConverterTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests the default converter for Integers.
+ */
+public class IntegerConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Integer_Decimal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Integer valueRead = config.get("tests.converter.integer.decimal", Integer.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), 101);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Integer_Octal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Integer valueRead = config.get("tests.converter.integer.octal", Integer.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Integer.decode("02").intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Integer_Hex() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Integer valueRead = config.get("tests.converter.integer.hex.lowerX", Integer.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Integer.decode("0x2F").intValue());
+        valueRead = config.get("tests.converter.integer.hex.upperX", Integer.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Integer.decode("0X3F").intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_NotPresent() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Integer valueRead = config.get("tests.converter.integer.foo", Integer.class);
+        assertFalse(valueRead != null);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Integer_MinValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Integer valueRead = config.get("tests.converter.integer.min", Integer.class);
+        assertTrue(valueRead != null);
+        assertEquals(Integer.MIN_VALUE, valueRead.intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Integer_MaxValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Integer valueRead = config.get("tests.converter.integer.max", Integer.class);
+        assertTrue(valueRead != null);
+        assertEquals(Integer.MAX_VALUE, valueRead.intValue());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/LongConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/LongConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/LongConverterTest.java
new file mode 100644
index 0000000..0df6b09
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/LongConverterTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests the default converter for Longs.
+ */
+public class LongConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Long_Decimal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Long valueRead = config.get("tests.converter.long.decimal", Long.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), 101);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Long_Octal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Long valueRead = config.get("tests.converter.long.octal", Long.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Long.decode("02").intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Long_Hex() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Long valueRead = config.get("tests.converter.long.hex.lowerX", Long.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Long.decode("0x2F").intValue());
+        valueRead = config.get("tests.converter.long.hex.upperX", Long.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Long.decode("0X3F").intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_NotPresent() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Long valueRead = config.get("tests.converter.long.foo", Long.class);
+        assertFalse(valueRead != null);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Long_MinValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Long valueRead = config.get("tests.converter.long.min", Long.class);
+        assertTrue(valueRead != null);
+        assertEquals(Long.MIN_VALUE, valueRead.longValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Long_MaxValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Long valueRead = config.get("tests.converter.long.max", Long.class);
+        assertTrue(valueRead != null);
+        assertEquals(Long.MAX_VALUE, valueRead.longValue());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/NumberConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/NumberConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/NumberConverterTest.java
new file mode 100644
index 0000000..3fa2e58
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/NumberConverterTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests the default converter for Number.
+ */
+public class NumberConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Decimal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Number valueRead = config.get("tests.converter.bd.decimal", Number.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead, 101L);
+    }
+
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Hex() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Number valueRead = config.get("tests.converter.bd.hex.lowerX", Number.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead, Long.valueOf("47"));
+        valueRead = config.get("tests.converter.bd.hex.upperX", Number.class);
+        assertTrue(valueRead!=null);
+        assertEquals(valueRead, Long.valueOf("63"));
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_NotPresent() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Number valueRead = config.get("tests.converter.bd.foo", Number.class);
+        assertFalse(valueRead!=null);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_BigValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Number valueRead = config.get("tests.converter.bd.big", Number.class);
+        assertTrue(valueRead!=null);
+        assertEquals(new BigDecimal("101666666666666662333337263723628763821638923628193612983618293628763"),
+                valueRead);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_BigFloatValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Number valueRead = config.get("tests.converter.bd.bigFloat", Number.class);
+        assertTrue(valueRead!=null);
+        assertEquals(new BigDecimal("1016666666666666623333372637236287638216389293628763.1016666666666666623333372" +
+                "63723628763821638923628193612983618293628763"), valueRead);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ShortConverterTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ShortConverterTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ShortConverterTest.java
new file mode 100644
index 0000000..193a92e
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/internal/converters/ShortConverterTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests the default converter for Shorts.
+ */
+public class ShortConverterTest {
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Short_Decimal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Short valueRead = config.get("tests.converter.short.decimal", Short.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), 101);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Short_Octal() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Short valueRead = config.get("tests.converter.short.octal", Short.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Short.decode("02").intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Short_Hex() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Short valueRead = config.get("tests.converter.short.hex.lowerX", Short.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Short.decode("0x2F").intValue());
+        valueRead = config.get("tests.converter.short.hex.upperX", Short.class);
+        assertTrue(valueRead != null);
+        assertEquals(valueRead.intValue(), Short.decode("0X3F").intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_NotPresent() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Short valueRead = config.get("tests.converter.short.foo", Short.class);
+        assertFalse(valueRead != null);
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Short_MinValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Short valueRead = config.get("tests.converter.short.min", Short.class);
+        assertTrue(valueRead != null);
+        assertEquals(Short.MIN_VALUE, valueRead.intValue());
+    }
+
+    /**
+     * Test conversion. The value are provided by
+     * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}.
+     * @throws Exception
+     */
+    @Test
+    public void testConvert_Short_MaxValue() throws Exception {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        Short valueRead = config.get("tests.converter.short.max", Short.class);
+        assertTrue(valueRead != null);
+        assertEquals(Short.MAX_VALUE, valueRead.intValue());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/43468987/modules/builder/src/test/java/org/apache/tamaya/builder/propertysource/BasePropertySourceTest.java
----------------------------------------------------------------------
diff --git a/modules/builder/src/test/java/org/apache/tamaya/builder/propertysource/BasePropertySourceTest.java b/modules/builder/src/test/java/org/apache/tamaya/builder/propertysource/BasePropertySourceTest.java
new file mode 100644
index 0000000..ad9b7a8
--- /dev/null
+++ b/modules/builder/src/test/java/org/apache/tamaya/builder/propertysource/BasePropertySourceTest.java
@@ -0,0 +1,104 @@
+/*
+ * 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.tamaya.core.propertysource;
+
+import org.apache.tamaya.builder.spi.PropertySource;
+import org.apache.tamaya.builder.spi.PropertyValue;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+public class BasePropertySourceTest {
+
+    @Test
+    public void testGetOrdinal() {
+
+        PropertySource defaultPropertySource = new BasePropertySource(56) {
+
+            @Override
+            public String getName() {
+                return "testWithDefault";
+            }
+
+            @Override
+            public PropertyValue get(String key) {
+                return null;
+            }
+
+            @Override
+            public Map<String, String> getProperties() {
+                return Collections.emptyMap();
+            }
+        };
+
+        Assert.assertEquals(56, defaultPropertySource.getOrdinal());
+        Assert.assertEquals(1000, new OverriddenOrdinalPropertySource().getOrdinal());
+
+        // propertySource with invalid ordinal
+        Assert.assertEquals(1, new OverriddenInvalidOrdinalPropertySource().getOrdinal());
+    }
+
+    @Test
+    public void testGet() {
+        Assert.assertEquals("1000", new OverriddenOrdinalPropertySource().get(PropertySource.TAMAYA_ORDINAL).get(PropertySource.TAMAYA_ORDINAL));
+    }
+
+    private static class OverriddenOrdinalPropertySource extends BasePropertySource {
+
+        private OverriddenOrdinalPropertySource() {
+            super(250);
+        }
+
+        @Override
+        public String getName() {
+            return "overriddenOrdinal";
+        }
+
+        @Override
+        public Map<String, String> getProperties() {
+            Map<String, String> map = new HashMap<>(1);
+            map.put(PropertySource.TAMAYA_ORDINAL, "1000");
+            return map;
+        }
+    }
+
+    private static class OverriddenInvalidOrdinalPropertySource extends BasePropertySource {
+
+        private OverriddenInvalidOrdinalPropertySource() {
+            super(1);
+        }
+
+        @Override
+        public String getName() {
+            return "overriddenInvalidOrdinal";
+        }
+
+        @Override
+        public Map<String, String> getProperties() {
+            Map<String, String> map = new HashMap<>(1);
+            map.put(PropertySource.TAMAYA_ORDINAL, "invalid");
+            return map;
+        }
+    }
+
+
+}



Mime
View raw message