diff options
author | Michael Stahl <mstahl@redhat.com> | 2011-12-20 18:28:58 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2011-12-20 18:31:57 +0100 |
commit | cb1ad8c8df48161917fdb2044ac55d144049d2f4 (patch) | |
tree | 4008dd4f34d87653de4ccc5eb7b81e3e40aa14c0 /unoxml | |
parent | 4862b48b4d4eda39e24b18368f405e18ffaf1298 (diff) |
unordf: tweak SPARQL unit test:
rasqal 0.9.27 returns no variables for a SPARQL SELECT query with no
results; it is unclear whether that is allowed but it is a corner case
and probably we should not be testing for that.
Diffstat (limited to 'unoxml')
-rw-r--r-- | unoxml/qa/complex/unoxml/RDFRepositoryTest.java | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/unoxml/qa/complex/unoxml/RDFRepositoryTest.java b/unoxml/qa/complex/unoxml/RDFRepositoryTest.java index 7944a0edc064..d1006c232cc1 100644 --- a/unoxml/qa/complex/unoxml/RDFRepositoryTest.java +++ b/unoxml/qa/complex/unoxml/RDFRepositoryTest.java @@ -785,15 +785,30 @@ public class RDFRepositoryTest String[] vars = (String[]) i_Result.getBindingNames(); XEnumeration iter = (XEnumeration) i_Result; XNode[][] bindings = toSeqs(iter); - if (vars.length != i_Vars.length) { - System.out.println("var lengths differ"); - return false; - } if (bindings.length != i_Bindings.length) { System.out.println("binding lengths differ: " + i_Bindings.length + " vs " + bindings.length ); return false; } + if (vars.length != i_Vars.length) { + // ignore for empty result: it is unclear to me whether SPARQL + // spec requires returning the variables in this case, + // and evidently newer rasqal versions don't + if (0 != i_Bindings.length || 0 != vars.length) + { + System.out.println("var lengths differ: expected " + + i_Vars.length + " but got " + vars.length); + return false; + } + } else { + for (int i = 0; i < i_Vars.length; ++i) { + if (!vars[i].equals(i_Vars[i])) { + System.out.println("variable names differ: " + + vars[i] + " != " + i_Vars[i]); + return false; + } + } + } java.util.Arrays.sort(bindings, new BindingComp()); java.util.Arrays.sort(i_Bindings, new BindingComp()); for (int i = 0; i < i_Bindings.length; ++i) { @@ -813,13 +828,6 @@ public class RDFRepositoryTest } } } - for (int i = 0; i < i_Vars.length; ++i) { - if (!vars[i].equals(i_Vars[i])) { - System.out.println("variable names differ: " + - vars[i] + " != " + i_Vars[i]); - return false; - } - } return true; } @@ -839,6 +847,20 @@ public class RDFRepositoryTest return namespaces; } + // useful when debugging + static void dumpRepo(XDocumentRepository xRep) throws Exception + { + XEnumeration xEnum = xRep.getStatements(null, null, null); + while (xEnum.hasMoreElements()) + { + Statement s = (Statement) xEnum.nextElement(); + System.out.println("STATEMENT IN: " + toS(s.Graph) + + "\n S: " + toS(s.Subject) + + "\n P: " + toS(s.Predicate) + + "\n O: " + toS(s.Object)); + } + } + class TestRange implements XTextRange, XMetadatable, XServiceInfo { String m_Stream; |