1
0
Fork 0

Fix test and jslint.

This commit is contained in:
Max Neunhoeffer 2016-05-04 14:50:37 +02:00
parent eeb597fc85
commit f0db06b47d
2 changed files with 76 additions and 202 deletions

View File

@ -156,80 +156,6 @@ function addShardFollower(endpoint, shard) {
return true; return true;
} }
////////////////////////////////////////////////////////////////////////////////
/// @brief get values from Plan or Current by a prefix
////////////////////////////////////////////////////////////////////////////////
function getByPrefix (values, prefix) {
var result = { };
var a;
var n = prefix.length;
for (a in values) {
if (values.hasOwnProperty(a)) {
if (a.substr(0, n) === prefix) {
result[a.substr(n)] = values[a];
}
}
}
return result;
}
////////////////////////////////////////////////////////////////////////////////
/// @brief get values from Plan or Current by a prefix
////////////////////////////////////////////////////////////////////////////////
function getByPrefix3d (values, prefix) {
var result = { };
var a;
var n = prefix.length;
for (a in values) {
if (values.hasOwnProperty(a)) {
if (a.substr(0, n) === prefix) {
var key = a.substr(n);
var parts = key.split('/');
if (parts.length >= 2) {
if (! result.hasOwnProperty(parts[0])) {
result[parts[0]] = { };
}
result[parts[0]][parts[1]] = values[a];
}
}
}
}
return result;
}
////////////////////////////////////////////////////////////////////////////////
/// @brief get values from Plan or Current by a prefix
////////////////////////////////////////////////////////////////////////////////
function getByPrefix4d (values, prefix) {
var result = { };
var a;
var n = prefix.length;
for (a in values) {
if (values.hasOwnProperty(a)) {
if (a.substr(0, n) === prefix) {
var key = a.substr(n);
var parts = key.split('/');
if (parts.length >= 3) {
if (! result.hasOwnProperty(parts[0])) {
result[parts[0]] = { };
}
if (! result[parts[0]].hasOwnProperty(parts[1])) {
result[parts[0]][parts[1]] = { };
}
result[parts[0]][parts[1]][parts[2]] = values[a];
}
}
}
}
return result;
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
/// @brief lookup for 4-dimensional nested dictionary data /// @brief lookup for 4-dimensional nested dictionary data
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View File

@ -38,7 +38,6 @@ var jsunity = require("jsunity");
function AgencySuite () { function AgencySuite () {
'use strict'; 'use strict';
var agency = ArangoAgency; var agency = ArangoAgency;
var oldPrefix = agency.prefix(true);
var cleanupLocks = function () { var cleanupLocks = function () {
agency.set("UnitTestsAgency/Target/Lock", "UNLOCKED"); agency.set("UnitTestsAgency/Target/Lock", "UNLOCKED");
@ -49,8 +48,8 @@ function AgencySuite () {
return { return {
setUp : function () { setUp : function () {
agency.setPrefix("UnitTestsAgency"); //agency.setPrefix("UnitTestsAgency");
assertEqual("UnitTestsAgency", agency.prefix(true)); //assertEqual("UnitTestsAgency", agency.prefix(true));
try { try {
agency.remove("UnitTestsAgency", true); agency.remove("UnitTestsAgency", true);
@ -70,8 +69,8 @@ function AgencySuite () {
catch (err) { catch (err) {
} }
agency.setPrefix(oldPrefix); //agency.setPrefix(oldPrefix);
assertEqual(oldPrefix, agency.prefix(true)); //assertEqual(oldPrefix, agency.prefix(true));
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -321,39 +320,44 @@ function AgencySuite () {
testSet : function () { testSet : function () {
// insert // insert
agency.set("UnitTestsAgency/foo", "test1"); agency.set("UnitTestsAgency/foo", "test1");
var values = agency.get("UnitTestsAgency/foo").arango.UnitTestsAgency.foo; var values = agency.get("UnitTestsAgency/foo");
assertTrue(values.hasOwnProperty("UnitTestsAgency/foo")); assertTrue(values.hasOwnProperty("arango"));
assertEqual(values["UnitTestsAgency/foo"], "test1"); assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
assertTrue(values.arango.UnitTestsAgency.hasOwnProperty("foo"));
assertEqual(values.arango.UnitTestsAgency.foo, "test1");
// overwrite // overwrite
agency.set("UnitTestsAgency/foo", "test2", 2); agency.set("UnitTestsAgency/foo", "test2", 2);
values = agency.get("UnitTestsAgency/foo").arango.UnitTestsAgency.foo; values = agency.get("UnitTestsAgency/foo");
assertTrue(values.hasOwnProperty("UnitTestsAgency/foo")); assertTrue(values.hasOwnProperty("arango"));
assertEqual(values["UnitTestsAgency/foo"], "test2"); assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
assertTrue(values.arango.UnitTestsAgency.hasOwnProperty("foo"));
assertEqual(values.arango.UnitTestsAgency.foo, "test2");
assertTrue(agency.remove("UnitTestsAgency/foo")); assertTrue(agency.remove("UnitTestsAgency/foo"));
// re-insert // re-insert
agency.set("UnitTestsAgency/foo", "test3"); agency.set("UnitTestsAgency/foo", "test3");
values = agency.get("UnitTestsAgency/foo").arango.UnitTestsAgency.foo; values = agency.get("UnitTestsAgency/foo");
assertTrue(values.hasOwnProperty("UnitTestsAgency/foo")); assertTrue(values.hasOwnProperty("arango"));
assertEqual(values["UnitTestsAgency/foo"], "test3"); assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
assertTrue(values.arango.UnitTestsAgency.hasOwnProperty("foo"));
assertEqual(values.arango.UnitTestsAgency.foo, "test3");
// update with ttl // update with ttl
agency.set("UnitTestsAgency/foo", "test4", 2); agency.set("UnitTestsAgency/foo", "test4", 2);
values = agency.get("UnitTestsAgency/foo").arango.UnitTestsAgency.foo; values = agency.get("UnitTestsAgency/foo");
assertTrue(values.hasOwnProperty("UnitTestsAgency/foo")); assertTrue(values.hasOwnProperty("arango"));
assertEqual(values["UnitTestsAgency/foo"], "test4"); assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
assertTrue(values.arango.UnitTestsAgency.hasOwnProperty("foo"));
assertEqual(values.arango.UnitTestsAgency.foo, "test4");
require("internal").wait(3); require("internal").wait(3);
try { values = agency.get("UnitTestsAgency/foo");
values = agency.get("UnitTestsAgency/foo").arango.UnitTestsAgency.foo; assertTrue(values.hasOwnProperty("arango"));
fail(); assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
} assertFalse(values.arango.UnitTestsAgency.hasOwnProperty("foo"));
catch (e) {
assertEqual(404, e.code);
}
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -470,16 +474,16 @@ function AgencySuite () {
assertTrue(agency.remove("UnitTestsAgency/1", true)); assertTrue(agency.remove("UnitTestsAgency/1", true));
try { var values = agency.get("UnitTestsAgency/1", true);
agency.get("UnitTestsAgency/1", true).arango.UnitTestsAgency["1"]; assertTrue(values.hasOwnProperty("arango"));
fail(); assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
} assertFalse(values.arango.UnitTestsAgency.hasOwnProperty("1"));
catch (err) {
// key not found
}
var values = agency.get("UnitTestsAgency/2", true).arango.UnitTestsAgency["2"]; values = agency.get("UnitTestsAgency/2", true);
assertEqual({ "UnitTestsAgency/2/1/foo" : "baz" }, values); assertTrue(values.hasOwnProperty("arango"));
assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
assertTrue(values.arango.UnitTestsAgency.hasOwnProperty("2"));
assertEqual(values.arango.UnitTestsAgency["2"], {"1":{"foo":"baz"}});
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -499,13 +503,9 @@ function AgencySuite () {
assertTrue(agency.remove("UnitTestsAgency", true)); assertTrue(agency.remove("UnitTestsAgency", true));
try { var value = agency.get("UnitTestsAgency", true);
agency.get("UnitTestsAgency", true).arango.UnitTestsAgency; assertTrue(value.hasOwnProperty("arango"));
fail(); assertEqual(value.arango, {});
}
catch (err) {
// key not found
}
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -540,17 +540,15 @@ function AgencySuite () {
var values; var values;
for (i = 0; i < 100; ++i) { for (i = 0; i < 100; ++i) {
if (i >= 10 && i < 90) { if (i >= 10 && i < 90) {
try { values = agency.get("UnitTestsAgency/" + i);
values = agency.get("UnitTestsAgency/" + i).arango.UnitTestsAgency[i]; assertEqual(values, {"arango":{"UnitTestsAgency":{}}});
fail();
}
catch (err) {
}
} }
else { else {
values = agency.get("UnitTestsAgency/" + i).arango.UnitTestsAgency[i]; values = agency.get("UnitTestsAgency/" + i);
assertTrue(values.hasOwnProperty("UnitTestsAgency/" + i)); assertTrue(values.hasOwnProperty("arango"));
assertEqual(values["UnitTestsAgency/" + i], "value" + i); assertTrue(values.arango.hasOwnProperty("UnitTestsAgency"));
assertTrue(values.arango.UnitTestsAgency.hasOwnProperty("" + i));
assertEqual(values.arango.UnitTestsAgency[i], "value" + i);
} }
} }
}, },
@ -564,9 +562,8 @@ function AgencySuite () {
agency.set("UnitTestsAgency/someDir/foo", "bar"); agency.set("UnitTestsAgency/someDir/foo", "bar");
var values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo; var values = agency.get("UnitTestsAgency/someDir/foo");
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo")); assertEqual(values, {"arango":{"UnitTestsAgency":{"someDir":{"foo":"bar"}}}});
assertEqual(values["UnitTestsAgency/someDir/foo"], "bar");
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -583,55 +580,25 @@ function AgencySuite () {
agency.set("UnitTestsAgency/someDir/foo/2/1/1", "bar5"); agency.set("UnitTestsAgency/someDir/foo/2/1/1", "bar5");
agency.set("UnitTestsAgency/someDir/foo/2/1/2", "bar6"); agency.set("UnitTestsAgency/someDir/foo/2/1/2", "bar6");
var values = agency.get("UnitTestsAgency/someDir").arango.UnitTestsAgency.someDir; var values = agency.get("UnitTestsAgency/someDir").arango.UnitTestsAgency.someDir.foo;
assertEqual({ }, values); assertEqual({"1":{"1":{"1":"bar1","2":"bar2"},
"2":{"1":"bar3","2":"bar4"}},
"2":{"1":{"1":"bar5","2":"bar6"}}}, values);
values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo; values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo;
assertEqual({ }, values); assertEqual({"1":{"1":{"1":"bar1","2":"bar2"},
"2":{"1":"bar3","2":"bar4"}},
"2":{"1":{"1":"bar5","2":"bar6"}}}, values);
values = agency.get("UnitTestsAgency/someDir", true).arango.UnitTestsAgency.someDir; values = agency.get("UnitTestsAgency/someDir", true).arango.UnitTestsAgency.someDir.foo;
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo/1/1/1")); assertEqual({"1":{"1":{"1":"bar1","2":"bar2"},
assertEqual("bar1", values["UnitTestsAgency/someDir/foo/1/1/1"]); "2":{"1":"bar3","2":"bar4"}},
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo/1/1/2")); "2":{"1":{"1":"bar5","2":"bar6"}}}, values);
assertEqual("bar2", values["UnitTestsAgency/someDir/foo/1/1/2"]);
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo/1/2/1"));
assertEqual("bar3", values["UnitTestsAgency/someDir/foo/1/2/1"]);
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo/1/2/2"));
assertEqual("bar4", values["UnitTestsAgency/someDir/foo/1/2/2"]);
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo/2/1/1"));
assertEqual("bar5", values["UnitTestsAgency/someDir/foo/2/1/1"]);
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo/2/1/2"));
assertEqual("bar6", values["UnitTestsAgency/someDir/foo/2/1/2"]);
},
//////////////////////////////////////////////////////////////////////////////// values = agency.get("UnitTestsAgency/someDir/foo", true).arango.UnitTestsAgency.someDir.foo;
/// @brief test get w/ indexes assertEqual({"1":{"1":{"1":"bar1","2":"bar2"},
//////////////////////////////////////////////////////////////////////////////// "2":{"1":"bar3","2":"bar4"}},
"2":{"1":{"1":"bar5","2":"bar6"}}}, values);
testGetIndexes : function () {
assertTrue(agency.createDirectory("UnitTestsAgency/someDir"));
agency.set("UnitTestsAgency/someDir/foo", "bar");
agency.set("UnitTestsAgency/someDir/bar", "baz");
var values = agency.get("UnitTestsAgency/someDir", true, true).arango.UnitTestsAgency.someDir;
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo"));
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/bar"));
assertEqual(values["UnitTestsAgency/someDir/foo"].value, "bar");
assertEqual(values["UnitTestsAgency/someDir/bar"].value, "baz");
assertTrue(values["UnitTestsAgency/someDir/foo"].hasOwnProperty("index"));
assertTrue(values["UnitTestsAgency/someDir/bar"].hasOwnProperty("index"));
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test set / get directory
////////////////////////////////////////////////////////////////////////////////
testGetDirectory : function () {
assertTrue(agency.createDirectory("UnitTestsAgency/someDir"));
assertTrue(agency.set("UnitTestsAgency/someDir/foo", "bar"));
var values = agency.get("UnitTestsAgency", false).arango.UnitTestsAgency;
assertEqual({ }, values);
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -644,7 +611,7 @@ function AgencySuite () {
assertTrue(agency.set("UnitTestsAgency/someDir/baz", "bart")); assertTrue(agency.set("UnitTestsAgency/someDir/baz", "bart"));
var values = agency.get("UnitTestsAgency", true).arango.UnitTestsAgency; var values = agency.get("UnitTestsAgency", true).arango.UnitTestsAgency;
assertEqual({ "UnitTestsAgency/someDir/baz" : "bart", "UnitTestsAgency/someDir/foo" : "bar" }, values); assertEqual({ "someDir" : {"foo": "bar", "baz": "bart"}}, values);
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -657,13 +624,11 @@ function AgencySuite () {
agency.set("UnitTestsAgency/someDir/foo", "bar"); agency.set("UnitTestsAgency/someDir/foo", "bar");
var values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo; var values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo;
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo")); assertEqual(values, "bar");
assertEqual(values["UnitTestsAgency/someDir/foo"], "bar");
agency.set("UnitTestsAgency/someDir/foo", "baz"); agency.set("UnitTestsAgency/someDir/foo", "baz");
values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo; values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo;
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo")); assertEqual(values, "baz");
assertEqual(values["UnitTestsAgency/someDir/foo"], "baz");
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -676,18 +641,12 @@ function AgencySuite () {
agency.set("UnitTestsAgency/someDir/foo", "bar"); agency.set("UnitTestsAgency/someDir/foo", "bar");
var values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo; var values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo;
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foo")); assertEqual(values, "bar");
assertEqual(values["UnitTestsAgency/someDir/foo"], "bar");
agency.remove("UnitTestsAgency/someDir/foo"); agency.remove("UnitTestsAgency/someDir/foo");
try { values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir;
values = agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo; assertEqual(values, {});
fail();
}
catch (err) {
// key not found
}
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -697,13 +656,8 @@ function AgencySuite () {
testGetNonExisting1 : function () { testGetNonExisting1 : function () {
assertTrue(agency.createDirectory("UnitTestsAgency/someDir")); assertTrue(agency.createDirectory("UnitTestsAgency/someDir"));
try { var value = agency.get("UnitTestsAgency/someDir/foo");
agency.get("UnitTestsAgency/someDir/foo").arango.UnitTestsAgency.someDir.foo; assertEqual(value, {"arango":{"UnitTestsAgency":{"someDir":{}}}});
fail();
}
catch (err) {
// key not found
}
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -711,13 +665,8 @@ function AgencySuite () {
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
testGetNonExisting2 : function () { testGetNonExisting2 : function () {
try { var value = agency.get("UnitTestsAgency/someOtherDir");
agency.get("UnitTestsAgency/someOtherDir").arango.UnitTestsAgency.someOtherDir; assertEqual(value, {"arango":{"UnitTestsAgency":{}}});
fail();
}
catch (err) {
// key not found
}
}, },
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -731,8 +680,7 @@ function AgencySuite () {
agency.set("UnitTestsAgency/someDir/foobar", value); agency.set("UnitTestsAgency/someDir/foobar", value);
var values = agency.get("UnitTestsAgency/someDir/foobar").arango.UnitTestsAgency.someDir.foobar; var values = agency.get("UnitTestsAgency/someDir/foobar").arango.UnitTestsAgency.someDir.foobar;
assertTrue(values.hasOwnProperty("UnitTestsAgency/someDir/foobar")); assertEqual(values, value);
assertEqual(values["UnitTestsAgency/someDir/foobar"], value);
} }
}; };