jenkins-bot has submitted this change and it was merged. Change subject: Fix T99006: omit statements with bnodes from value statements ......................................................................
Fix T99006: omit statements with bnodes from value statements Change-Id: I424ce62d8974202afdfd992b1b752cf8d9048d95 --- M tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java M tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java M tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java 3 files changed, 28 insertions(+), 0 deletions(-) Approvals: Jdouglas: Looks good to me, approved jenkins-bot: Verified diff --git a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java index e62bad0..728a386 100644 --- a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java +++ b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java @@ -67,6 +67,10 @@ public UpdateBuilder bindValues(String from, Collection<Statement> statements) { StringBuilder b = new StringBuilder(statements.size() * 30); for (Statement s : statements) { + if (s.getObject() instanceof BNode || s.getSubject() instanceof BNode) { + // skip bnodes since they can not be matched anyway + continue; + } b.append("( ").append(str(s.getSubject())).append(' '); b.append(str(s.getPredicate())).append(' '); b.append(str(s.getObject())).append(" )\n"); diff --git a/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java b/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java index 7cb1e79..9212622 100644 --- a/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java +++ b/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java @@ -2,6 +2,7 @@ import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.instanceOf; import static org.wikidata.query.rdf.tool.StatementHelper.uri; import java.util.ArrayList; @@ -32,12 +33,20 @@ } /** + * Check binding to specific class. + */ + public static Matcher<BindingSet> binds(String name, Class<?> value) { + return new BindsMatcher<Object>(name, instanceOf(value)); + } + + /** * Check a binding to a value. */ public static <V> Matcher<BindingSet> binds(String name, V value) { return new BindsMatcher<V>(name, equalTo(value)); } + /** * Checks bindings. * diff --git a/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java b/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java index c3604e7..15be401 100644 --- a/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java +++ b/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java @@ -17,7 +17,9 @@ import org.junit.Before; import org.junit.Test; +import org.openrdf.model.BNode; import org.openrdf.model.Statement; +import org.openrdf.model.impl.BNodeImpl; import org.openrdf.model.impl.IntegerLiteralImpl; import org.openrdf.model.impl.LiteralImpl; import org.openrdf.query.QueryEvaluationException; @@ -621,4 +623,17 @@ new IntegerLiteralImpl(new BigInteger(Integer.toString(version)))); rdfRepository().sync(entityId, ImmutableList.of(statement)); } + + @Test + public void statementWithBnode() throws QueryEvaluationException { + rdfRepository().sync("Q42", ImmutableList.of(// + statement("Q42", "P396", new BNodeImpl("testBnode")))); + TupleQueryResult r = rdfRepository().query("SELECT * WHERE {?s ?p ?o}"); + assertTrue(r.hasNext()); + assertThat(r.next(), allOf(// + binds("s", "Q42"), // + binds("p", "P396"), // + binds("o", BNode.class))); + assertFalse(r.hasNext()); + } } -- To view, visit https://gerrit.wikimedia.org/r/210818 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I424ce62d8974202afdfd992b1b752cf8d9048d95 Gerrit-PatchSet: 3 Gerrit-Project: wikidata/query/rdf Gerrit-Branch: master Gerrit-Owner: Smalyshev <smalys...@wikimedia.org> Gerrit-Reviewer: Jdouglas <jdoug...@wikimedia.org> Gerrit-Reviewer: Manybubbles <never...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits