summaryrefslogtreecommitdiff
path: root/unoxml
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2011-12-20 18:28:58 +0100
committerMichael Stahl <mstahl@redhat.com>2011-12-20 18:31:57 +0100
commitcb1ad8c8df48161917fdb2044ac55d144049d2f4 (patch)
tree4008dd4f34d87653de4ccc5eb7b81e3e40aa14c0 /unoxml
parent4862b48b4d4eda39e24b18368f405e18ffaf1298 (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.java44
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;