From 1a7177bc3d34b5e77baa9ddc5baa3db30c3b122f Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 23 Jan 2018 15:18:09 +0100 Subject: [PATCH] added traversal test (#4376) --- js/server/tests/aql/aql-graph-traverser.js | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/js/server/tests/aql/aql-graph-traverser.js b/js/server/tests/aql/aql-graph-traverser.js index 889ac99d8a..fa00a28676 100644 --- a/js/server/tests/aql/aql-graph-traverser.js +++ b/js/server/tests/aql/aql-graph-traverser.js @@ -71,6 +71,56 @@ var createBaseGraph = function () { edge.FE = ec.save(vertex.F, vertex.E, {})._id; }; +function simpleInboundOutboundSuite () { + const gn = 'UnitTestGraph'; + + return { + + setUp: function () { + db._drop(gn + 'v1'); + db._drop(gn + 'v2'); + db._drop(gn + 'e'); + + let c; + c = db._create(gn + 'v1', { numberOfShards: 9 }); + c.insert({ _key: "test" }); + + c = db._create(gn + 'v2', { numberOfShards: 7 }); + c.insert({ _key: "test" }); + + c = db._createEdgeCollection(gn + 'e', { numberOfShards: 5 }); + c.insert({ _from: gn + "v2/test", _to: gn + "v1/test" }); + }, + + tearDown: function () { + db._drop(gn + 'v1'); + db._drop(gn + 'v2'); + db._drop(gn + 'e'); + }, + + testTheOldInAndOutOut: function () { + // outbound + let q = `WITH ${gn + 'v1'} ${gn + 'v2' } FOR v, e IN OUTBOUND DOCUMENT("${gn + 'v2'}/test") ${gn + 'e'} RETURN {v, e}`; + let res = AQL_EXECUTE(q).json[0]; + + assertEqual(gn + "v1/test", res.v._id); + assertEqual("test", res.v._key); + assertEqual(gn + "v2/test", res.e._from); + assertEqual(gn + "v1/test", res.e._to); + + // same test, but now reverse + q = `WITH ${gn + 'v1'} ${gn + 'v2' } FOR v, e IN INBOUND DOCUMENT("${gn + 'v1'}/test") ${gn + 'e'} RETURN {v, e}`; + res = AQL_EXECUTE(q).json[0]; + + assertEqual(gn + "v2/test", res.v._id); + assertEqual("test", res.v._key); + assertEqual(gn + "v2/test", res.e._from); + assertEqual(gn + "v1/test", res.e._to); + } + + }; +} + function limitSuite () { const gn = 'UnitTestGraph'; @@ -3825,6 +3875,7 @@ function exampleGraphsSuite () { }; } +jsunity.run(simpleInboundOutboundSuite); jsunity.run(limitSuite); jsunity.run(nestedSuite); jsunity.run(namedGraphSuite);