You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by st...@apache.org on 2018/02/20 10:35:40 UTC
[9/9] commons-rdf git commit: Test null overrides work
Test null overrides work
.. even for options
Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/11a81fec
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/11a81fec
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/11a81fec
Branch: refs/heads/fluent-parser
Commit: 11a81fec6aafc6df9e86bd71d7dfeb75980dbe3c
Parents: 8cc07df
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Feb 20 10:35:12 2018 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Feb 20 10:35:12 2018 +0000
----------------------------------------------------------------------
.../rdf/api/fluentparser/TestParserConfig.java | 225 ----------------
.../commons/rdf/api/io/TestParserConfig.java | 256 +++++++++++++++++++
2 files changed, 256 insertions(+), 225 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/11a81fec/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/fluentparser/TestParserConfig.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/fluentparser/TestParserConfig.java b/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/fluentparser/TestParserConfig.java
deleted file mode 100644
index c40adf2..0000000
--- a/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/fluentparser/TestParserConfig.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * 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.commons.rdf.api.fluentparser;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Map;
-
-import org.apache.commons.rdf.api.Dataset;
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDF;
-import org.apache.commons.rdf.api.RDFSyntax;
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.ParserConfig;
-import org.apache.commons.rdf.api.io.ParserConfig.ImmutableParserConfig;
-import org.apache.commons.rdf.api.io.ParserSource;
-import org.apache.commons.rdf.api.io.ParserTarget;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-public class TestParserConfig {
-
- RDF rdf = Mockito.mock(RDF.class);
- ParserSource<Path> source = ParserSource.fromPath(Paths.get("test"));
- Dataset targetDataset = Mockito.mock(Dataset.class);
- ParserTarget<Dataset> target = ParserTarget.toDataset(targetDataset);
- IRI base = Mockito.mock(IRI.class);
- RDFSyntax syntax = RDFSyntax.NQUADS;
- @SuppressWarnings("unchecked")
- Option<String> option = Mockito.mock(Option.class);
- String optionV = "Hello";
-
- @Test
- public void mutable() throws Exception {
- ParserConfig p = ParserConfig.mutable();
- assertNotSame(p, ParserConfig.mutable());
-
- assertFalse(p.rdf().isPresent());
- assertFalse(p.source().isPresent());
- assertFalse(p.target().isPresent());
- assertFalse(p.base().isPresent());
- assertFalse(p.syntax().isPresent());
- assertTrue(p.options().isEmpty());
- Map<Option, Object> options = p.options();
- assertSame(p, p.asMutableConfig());
-
- assertSame(p, p.withRDF(rdf));
- assertSame(p, p.withSource(source));
- assertSame(p, p.withTarget(target));
- assertSame(p, p.withBase(base));
- assertSame(p, p.withSyntax(syntax));
- assertSame(p, p.withOption(option, optionV));
-
- assertSame(rdf, p.rdf().get());
- assertSame(source, p.source().get());
- assertSame(base, p.base().get());
- assertSame(target, p.target().get());
- assertSame(syntax, p.syntax().get());
- assertFalse(p.options().isEmpty());
- assertSame(options, p.options());
- assertEquals(optionV, p.options().get(option));
- assertSame(p, p.asMutableConfig());
- }
-
- @Test
- public void mutableAsImmutable() throws Exception {
- ParserConfig mutable = ParserConfig.mutable();
- ImmutableParserConfig empty = mutable.asImmutableConfig();
-
- // Set some values in mutable
- mutable.withRDF(rdf).withBase(base).withSource(source);
- mutable.withTarget(target).withSyntax(syntax);
- mutable.withOption(option, optionV);
- // (already tested in mutable() above that these are preserved)
-
- // Our previous immutable snapshot is untouched
- assertFalse(empty.rdf().isPresent());
- assertFalse(empty.source().isPresent());
- assertFalse(empty.target().isPresent());
- assertFalse(empty.base().isPresent());
- assertFalse(empty.syntax().isPresent());
- assertTrue(empty.options().isEmpty());
- assertNotSame(empty.options(), mutable.options());
-
- // new snapshot
- ImmutableParserConfig everything = mutable.asImmutableConfig();
- // reset mutable to ensure new snapshot is not touched
- mutable.withBase(null).withRDF(null).withSource(null);
- mutable.withSyntax(null).withTarget(null);
- mutable.withOption(option, null);
-
- // Now let's check our snapshot was preserved
- assertSame(rdf, everything.rdf().get());
- assertSame(source, everything.source().get());
- assertSame(base, everything.base().get());
- assertSame(target, everything.target().get());
- assertSame(syntax, everything.syntax().get());
- assertFalse(everything.options().isEmpty());
- assertEquals(optionV, everything.options().get(option));
- assertNotSame(everything.options(), mutable.options());
- }
-
- @Test
- public void immutable() throws Exception {
- ParserConfig empty = ParserConfig.immutable();
- assertSame(empty, empty.asImmutableConfig());
-
- ParserConfig withRDF = empty.withRDF(rdf);
- assertSame(rdf, withRDF.rdf().get());
- assertNotSame(empty, withRDF);
-
- ParserConfig withSource = withRDF.withSource(source);
- assertSame(source, withSource.source().get());
- assertNotSame(withRDF, withSource);
-
- ParserConfig withTarget = withSource.withTarget(target);
- assertSame(target, withTarget.target().get());
- assertNotSame(withSource, withTarget);
-
- ParserConfig withBase = withTarget.withBase(base);
- assertSame(base, withBase.base().get());
- assertNotSame(withTarget, withBase);
-
- ParserConfig withSyntax = withBase.withSyntax(syntax);
- assertSame(syntax, withSyntax.syntax().get());
- assertNotSame(withBase, withSyntax);
-
- ParserConfig withOption = withSyntax.withOption(option, optionV);
- assertFalse(withOption.options().isEmpty());
- assertEquals(optionV, withOption.options().get(option));
- assertNotSame(withSyntax, withOption);
-
- // Our initial empty remains the same
- assertFalse(empty.rdf().isPresent());
- assertFalse(empty.source().isPresent());
- assertFalse(empty.target().isPresent());
- assertFalse(empty.base().isPresent());
- assertFalse(empty.syntax().isPresent());
- assertTrue(empty.options().isEmpty());
- Map<Option, Object> options = empty.options();
-
- // And check final withOption has propagated
- // all options
- assertSame(rdf, withOption.rdf().get());
- assertSame(source, withOption.source().get());
- assertSame(base, withOption.base().get());
- assertSame(target, withOption.target().get());
- assertSame(syntax, withOption.syntax().get());
- assertNotSame(withOption, empty.options());
- }
- @Test
- public void immutableAsMutable() throws Exception {
- ParserConfig immutable = ParserConfig.immutable();
- ParserConfig mutable = immutable.asMutableConfig();
-
- // Set some values in immutable
- ParserConfig everything = immutable.withRDF(rdf)
- .withBase(base).withSource(source).withTarget(target)
- .withSyntax(syntax).withOption(option, optionV);
- // (already tested in mutable() above that these are preserved)
-
- // Our previous mutable snapshot is untouched
- assertFalse(mutable.rdf().isPresent());
- assertFalse(mutable.source().isPresent());
- assertFalse(mutable.target().isPresent());
- assertFalse(mutable.base().isPresent());
- assertFalse(mutable.syntax().isPresent());
- assertTrue(mutable.options().isEmpty());
- assertNotSame(mutable.options(), immutable.options());
-
-
- // new mutable
- ParserConfig mutable2 = everything.asMutableConfig();
- assertSame(mutable2, mutable2.asMutableConfig());
- assertNotSame(mutable, mutable2);
-
- // Below should be a no-op as everything is immutable
- everything.withRDF(null).withSyntax(null).withBase(null).withTarget(null);
-
- // Now let's check everything was preserved
- assertSame(rdf, mutable2.rdf().get());
- assertSame(source, mutable2.source().get());
- assertSame(base, mutable2.base().get());
- assertSame(target, mutable2.target().get());
- assertSame(syntax, mutable2.syntax().get());
- assertFalse(mutable2.options().isEmpty());
- assertEquals(optionV, mutable2.options().get(option));
- assertNotSame(mutable2.options(), mutable.options());
-
- // changing mutable2 does not modify the immutable
- mutable2.withRDF(null).withSyntax(null).withBase(null)
- .withTarget(null).withOption(option, null);
-
- assertSame(rdf, everything.rdf().get());
- assertSame(syntax, everything.syntax().get());
- assertSame(base, everything.base().get());
- assertSame(target, everything.target().get());
- assertEquals(optionV, everything.options().get(option));
- assertNotSame(mutable2.options(), mutable.options());
-
-
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/11a81fec/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/io/TestParserConfig.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/io/TestParserConfig.java b/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/io/TestParserConfig.java
new file mode 100644
index 0000000..51ad4d9
--- /dev/null
+++ b/commons-rdf-api/src/test/java/org/apache/commons/rdf/api/io/TestParserConfig.java
@@ -0,0 +1,256 @@
+/*
+ * 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.commons.rdf.api.io;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Map;
+
+import org.apache.commons.rdf.api.Dataset;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDF;
+import org.apache.commons.rdf.api.RDFSyntax;
+import org.apache.commons.rdf.api.io.Option;
+import org.apache.commons.rdf.api.io.ParserConfig;
+import org.apache.commons.rdf.api.io.ParserConfig.ImmutableParserConfig;
+import org.apache.commons.rdf.api.io.ParserSource;
+import org.apache.commons.rdf.api.io.ParserTarget;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class TestParserConfig {
+
+ RDF rdf = Mockito.mock(RDF.class);
+ ParserSource<Path> source = ParserSource.fromPath(Paths.get("test"));
+ Dataset targetDataset = Mockito.mock(Dataset.class);
+ ParserTarget<Dataset> target = ParserTarget.toDataset(targetDataset);
+ IRI base = Mockito.mock(IRI.class);
+ RDFSyntax syntax = RDFSyntax.NQUADS;
+ @SuppressWarnings("unchecked")
+ Option<String> option = Mockito.mock(Option.class);
+ String optionV = "Hello";
+
+ @Test
+ public void mutable() throws Exception {
+ ParserConfig p = ParserConfig.mutable();
+ assertNotSame(p, ParserConfig.mutable());
+
+ assertFalse(p.rdf().isPresent());
+ assertFalse(p.source().isPresent());
+ assertFalse(p.target().isPresent());
+ assertFalse(p.base().isPresent());
+ assertFalse(p.syntax().isPresent());
+ assertTrue(p.options().isEmpty());
+ Map<Option, Object> options = p.options();
+ assertSame(p, p.asMutableConfig());
+
+ assertSame(p, p.withRDF(rdf));
+ assertSame(p, p.withSource(source));
+ assertSame(p, p.withTarget(target));
+ assertSame(p, p.withBase(base));
+ assertSame(p, p.withSyntax(syntax));
+ assertSame(p, p.withOption(option, optionV));
+
+ assertSame(rdf, p.rdf().get());
+ assertSame(source, p.source().get());
+ assertSame(base, p.base().get());
+ assertSame(target, p.target().get());
+ assertSame(syntax, p.syntax().get());
+ assertFalse(p.options().isEmpty());
+ assertSame(options, p.options());
+ assertEquals(optionV, p.options().get(option));
+ assertSame(p, p.asMutableConfig());
+ }
+
+ @Test
+ public void mutableAsImmutable() throws Exception {
+ ParserConfig mutable = ParserConfig.mutable();
+ ImmutableParserConfig empty = mutable.asImmutableConfig();
+
+ // Set some values in mutable
+ mutable.withRDF(rdf).withBase(base).withSource(source);
+ mutable.withTarget(target).withSyntax(syntax);
+ mutable.withOption(option, optionV);
+ // (already tested in mutable() above that these are preserved)
+
+ // Our previous immutable snapshot is untouched
+ assertFalse(empty.rdf().isPresent());
+ assertFalse(empty.source().isPresent());
+ assertFalse(empty.target().isPresent());
+ assertFalse(empty.base().isPresent());
+ assertFalse(empty.syntax().isPresent());
+ assertTrue(empty.options().isEmpty());
+ assertNotSame(empty.options(), mutable.options());
+
+ // new snapshot
+ ImmutableParserConfig everything = mutable.asImmutableConfig();
+ // reset mutable to ensure new snapshot is not touched
+ mutable.withBase(null).withRDF(null).withSource(null);
+ mutable.withSyntax(null).withTarget(null);
+ mutable.withOption(option, null);
+
+ // Now let's check our snapshot was preserved
+ assertSame(rdf, everything.rdf().get());
+ assertSame(source, everything.source().get());
+ assertSame(base, everything.base().get());
+ assertSame(target, everything.target().get());
+ assertSame(syntax, everything.syntax().get());
+ assertFalse(everything.options().isEmpty());
+ assertEquals(optionV, everything.options().get(option));
+ assertNotSame(everything.options(), mutable.options());
+ }
+
+ @Test
+ public void immutable() throws Exception {
+ ParserConfig empty = ParserConfig.immutable();
+ assertSame(empty, empty.asImmutableConfig());
+
+ ParserConfig withRDF = empty.withRDF(rdf);
+ assertSame(rdf, withRDF.rdf().get());
+ assertNotSame(empty, withRDF);
+
+ ParserConfig withSource = withRDF.withSource(source);
+ assertSame(source, withSource.source().get());
+ assertNotSame(withRDF, withSource);
+
+ ParserConfig withTarget = withSource.withTarget(target);
+ assertSame(target, withTarget.target().get());
+ assertNotSame(withSource, withTarget);
+
+ ParserConfig withBase = withTarget.withBase(base);
+ assertSame(base, withBase.base().get());
+ assertNotSame(withTarget, withBase);
+
+ ParserConfig withSyntax = withBase.withSyntax(syntax);
+ assertSame(syntax, withSyntax.syntax().get());
+ assertNotSame(withBase, withSyntax);
+
+ ParserConfig withOption = withSyntax.withOption(option, optionV);
+ assertFalse(withOption.options().isEmpty());
+ assertEquals(optionV, withOption.options().get(option));
+ assertNotSame(withSyntax, withOption);
+
+ // Our initial empty remains the same
+ assertFalse(empty.rdf().isPresent());
+ assertFalse(empty.source().isPresent());
+ assertFalse(empty.target().isPresent());
+ assertFalse(empty.base().isPresent());
+ assertFalse(empty.syntax().isPresent());
+ assertTrue(empty.options().isEmpty());
+ Map<Option, Object> options = empty.options();
+
+ // And check final withOption has propagated
+ // all options
+ assertSame(rdf, withOption.rdf().get());
+ assertSame(source, withOption.source().get());
+ assertSame(base, withOption.base().get());
+ assertSame(target, withOption.target().get());
+ assertSame(syntax, withOption.syntax().get());
+ assertNotSame(withOption, empty.options());
+ }
+ @Test
+ public void immutableAsMutable() throws Exception {
+ ParserConfig immutable = ParserConfig.immutable();
+ ParserConfig mutable = immutable.asMutableConfig();
+
+ // Set some values in immutable
+ ParserConfig everything = immutable.withRDF(rdf)
+ .withBase(base).withSource(source).withTarget(target)
+ .withSyntax(syntax).withOption(option, optionV);
+ // (already tested in mutable() above that these are preserved)
+
+ // Our previous mutable snapshot is untouched
+ assertFalse(mutable.rdf().isPresent());
+ assertFalse(mutable.source().isPresent());
+ assertFalse(mutable.target().isPresent());
+ assertFalse(mutable.base().isPresent());
+ assertFalse(mutable.syntax().isPresent());
+ assertTrue(mutable.options().isEmpty());
+ assertNotSame(mutable.options(), immutable.options());
+
+
+ // new mutable
+ ParserConfig mutable2 = everything.asMutableConfig();
+ assertSame(mutable2, mutable2.asMutableConfig());
+ assertNotSame(mutable, mutable2);
+
+ // Below should be a no-op as everything is immutable
+ everything.withRDF(null).withSyntax(null).withBase(null).withTarget(null);
+
+ // Now let's check everything was preserved
+ assertSame(rdf, mutable2.rdf().get());
+ assertSame(source, mutable2.source().get());
+ assertSame(base, mutable2.base().get());
+ assertSame(target, mutable2.target().get());
+ assertSame(syntax, mutable2.syntax().get());
+ assertFalse(mutable2.options().isEmpty());
+ assertEquals(optionV, mutable2.options().get(option));
+ assertNotSame(mutable2.options(), mutable.options());
+
+ // changing mutable2 does not modify the immutable
+ mutable2.withRDF(null).withSyntax(null).withBase(null)
+ .withTarget(null).withOption(option, null);
+
+ assertSame(rdf, everything.rdf().get());
+ assertSame(syntax, everything.syntax().get());
+ assertSame(base, everything.base().get());
+ assertSame(target, everything.target().get());
+ assertEquals(optionV, everything.options().get(option));
+ assertNotSame(mutable2.options(), mutable.options());
+
+
+ }
+
+ @Test
+ public void immutableOverrides() throws Exception {
+ // Test that we can override
+ ParserConfig a = ParserConfig.immutable().withRDF(rdf)
+ .withBase(base).withSource(source).withSyntax(syntax)
+ .withTarget(target).withOption(option, optionV);
+ ParserConfig nulled = a.withRDF(null).withBase(null)
+ .withSource(null).withSyntax(null)
+ .withTarget(null).withOption(option, null);
+ assertFalse(nulled.rdf().isPresent());
+ assertFalse(nulled.base().isPresent());
+ assertFalse(nulled.source().isPresent());
+ assertFalse(nulled.syntax().isPresent());
+ assertFalse(nulled.target().isPresent());
+ assertNull(nulled.options().get(option));
+ assertFalse(nulled.options().containsKey(option));
+ assertTrue(nulled.options().isEmpty());
+
+ // And then we can fill it again
+ ParserConfig filled = nulled.withRDF(rdf).withBase(base)
+ .withSource(source).withSyntax(syntax)
+ .withTarget(target).withOption(option, optionV);
+ assertSame(rdf, filled.rdf().get());
+ assertSame(base, filled.base().get());
+ assertSame(source, filled.source().get());
+ assertSame(syntax, filled.syntax().get());
+ assertSame(target, filled.target().get());
+ assertEquals(optionV, filled.options().get(option));
+
+ }
+
+}