[TAMAYA-289] Wrote tests to raise the coverage.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/de5188fb Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/de5188fb Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/de5188fb Branch: refs/heads/master Commit: de5188fb8368b303d43232d47c9371e45a6fbc7e Parents: b331267 Author: Oliver B. Fischer <[email protected]> Authored: Sun Sep 17 20:54:47 2017 +0200 Committer: Oliver B. Fischer <[email protected]> Committed: Sun Sep 17 21:20:37 2017 +0200 ---------------------------------------------------------------------- code/core/pom.xml | 4 ++ .../converters/BigDecimalConverter.java | 2 +- .../core/propertysource/CLIPropertySource.java | 2 +- .../internal/PropertyFilterComparatorTest.java | 75 ++++++++++++++++++++ .../converters/BigDecimalConverterTest.java | 31 +++++++- .../propertysource/BasePropertySourceTest.java | 33 +++++++++ pom.xml | 6 ++ 7 files changed, 150 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/de5188fb/code/core/pom.xml ---------------------------------------------------------------------- diff --git a/code/core/pom.xml b/code/core/pom.xml index 295b521..a608882 100644 --- a/code/core/pom.xml +++ b/code/core/pom.xml @@ -31,6 +31,10 @@ under the License. <dependencies> <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + </dependency> + <dependency> <groupId>org.apache.tamaya</groupId> <artifactId>tamaya-api</artifactId> <version>${project.version}</version> http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/de5188fb/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java index 6779809..a0d9c5f 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java @@ -37,7 +37,7 @@ import java.util.logging.Logger; * <li>0XFFFFAC (integral numbers only)</li> * </ul> */ -public class BigDecimalConverter implements PropertyConverter<BigDecimal>{ +public class BigDecimalConverter implements PropertyConverter<BigDecimal> { /** The logger. */ private static final Logger LOG = Logger.getLogger(BigDecimalConverter.class.getName()); /** Converter to be used if the format is not directly supported by BigDecimal, e.g. for integral hex values. */ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/de5188fb/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java b/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java index 5f25f14..40e39e0 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java +++ b/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java @@ -29,7 +29,7 @@ import java.util.Objects; * PropertySource that allows to add the programs main arguments as configuration entries. Unix syntax using '--' and * '-' params is supported. */ -public class CLIPropertySource extends BasePropertySource{ +public class CLIPropertySource extends BasePropertySource { /** The original main arguments. */ private static String[] args = new String[0]; http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/de5188fb/code/core/src/test/java/org/apache/tamaya/core/internal/PropertyFilterComparatorTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/PropertyFilterComparatorTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/PropertyFilterComparatorTest.java new file mode 100644 index 0000000..322e7a2 --- /dev/null +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/PropertyFilterComparatorTest.java @@ -0,0 +1,75 @@ +/* + * 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.spi.FilterContext; +import org.apache.tamaya.spi.PropertyFilter; +import org.apache.tamaya.spi.PropertyValue; +import org.junit.Test; + +import javax.annotation.Priority; + +import java.util.Comparator; + +import static org.assertj.core.api.Assertions.assertThat; + +public class PropertyFilterComparatorTest { + + @Test + public void comparationOfFiltersWithSamePriorityIsCorrect() { + Comparator<PropertyFilter> comparator = PropertyFilterComparator.getInstance(); + + int result = comparator.compare(new PropertyFilterA(), new PropertyFilterA()); + + assertThat(result).isEqualTo(0); + } + + @Test + public void comparationOfFiltersFirstHigherThenSecondWorksCorrectly() { + Comparator<PropertyFilter> comparator = PropertyFilterComparator.getInstance(); + + int result = comparator.compare(new PropertyFilterB(), new PropertyFilterA()); + + assertThat(result).isGreaterThan(0); + } + + @Test + public void comparationOfFiltersSecondHigherThenFirstWorksCorrectly() { + Comparator<PropertyFilter> comparator = PropertyFilterComparator.getInstance(); + + int result = comparator.compare(new PropertyFilterA(), new PropertyFilterB()); + + assertThat(result).isLessThan(0); + } + + + @Priority(1) + private static class PropertyFilterA implements PropertyFilter { + public PropertyValue filterProperty(PropertyValue value, FilterContext context) { + throw new RuntimeException("Not implement or look at me!"); + } + } + + @Priority(2) + private static class PropertyFilterB implements PropertyFilter { + public PropertyValue filterProperty(PropertyValue value, FilterContext context) { + throw new RuntimeException("Not implement or look at me!"); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/de5188fb/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java index 9c71688..5e424e9 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java @@ -20,11 +20,18 @@ package org.apache.tamaya.core.internal.converters; import org.apache.tamaya.Configuration; import org.apache.tamaya.ConfigurationProvider; +import org.apache.tamaya.spi.ConversionContext; import org.junit.Test; +import org.mockito.Mockito; import java.math.BigDecimal; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; /** * Tests the default converter for bytes. @@ -45,6 +52,7 @@ public class BigDecimalConverterTest { } + /** * Test conversion. The value are provided by * {@link org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource}. @@ -100,4 +108,25 @@ public class BigDecimalConverterTest { assertEquals(new BigDecimal("1016666666666666623333372637236287638216389293628763.1016666666666666623333372" + "63723628763821638923628193612983618293628763"), valueRead); } + + @Test + public void converterHandlesNullValueCorrectly() throws Exception { + ConversionContext context = mock(ConversionContext.class); + + BigDecimalConverter converter = new BigDecimalConverter(); + BigDecimal value = converter.convert("", context); + + assertThat(value).isNull(); + } + + @Test + public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { + ConversionContext context = mock(ConversionContext.class); + + BigDecimalConverter converter = new BigDecimalConverter(); + BigDecimal value = converter.convert("", context); + + assertThat(value).isNull(); + verify(context).addSupportedFormats(BigDecimalConverter.class, "<bigDecimal> -> new BigDecimal(String)"); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/de5188fb/code/core/src/test/java/org/apache/tamaya/core/propertysource/BasePropertySourceTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/propertysource/BasePropertySourceTest.java b/code/core/src/test/java/org/apache/tamaya/core/propertysource/BasePropertySourceTest.java index 9c2fc60..54f3113 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/propertysource/BasePropertySourceTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/propertysource/BasePropertySourceTest.java @@ -26,9 +26,42 @@ import org.junit.Test; import java.util.*; +import static org.assertj.core.api.Assertions.assertThat; + public class BasePropertySourceTest { @Test + public void isAlwaysScanable() { + BasePropertySource bs = new BasePropertySource() { + @Override + public Map<String, PropertyValue> getProperties() { + return Collections.emptyMap(); + } + }; + + assertThat(bs.isScannable()).isTrue(); + } + + @Test + public void givenOrdinalOverwritesGivenDefaulOrdinal() { + BasePropertySource bs = new BasePropertySource() { + @Override + public Map<String, PropertyValue> getProperties() { + return Collections.emptyMap(); + } + }; + + bs.setDefaultOrdinal(10); + + assertThat(bs.getDefaultOrdinal()).isEqualTo(10); + assertThat(bs.getOrdinal()).isEqualTo(10); + + bs.setOrdinal(20); + + assertThat(bs.getOrdinal()).isEqualTo(20); + } + + @Test public void testGetOrdinal() { PropertySource defaultPropertySource = new BasePropertySource(56) { http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/de5188fb/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 8012621..0a381c7 100644 --- a/pom.xml +++ b/pom.xml @@ -208,6 +208,12 @@ <dependencyManagement> <dependencies> <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>2.6.0</version> + <scope>test</scope> + </dependency> + <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version>
