mirror of https://gitee.com/bigwinds/arangodb
Modified document-babies tests. They are now green but correctness has to be discussed.
This commit is contained in:
parent
19a861e86d
commit
19139a7bf5
|
@ -390,9 +390,9 @@ function CollectionDocumentSuiteBabies() {
|
|||
var result = collection.remove(docs);
|
||||
assertEqual(result.length, 3);
|
||||
// All should conflict!
|
||||
for (var i = 0; i < docs.length; i++) {
|
||||
assertTrue(docs[i].error);
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
assertTrue(result[i].error);
|
||||
assertEqual(result[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
}
|
||||
assertEqual(collection.count(), 3);
|
||||
collection.remove(docs2);
|
||||
|
@ -427,9 +427,9 @@ function CollectionDocumentSuiteBabies() {
|
|||
var result = collection.remove(docs);
|
||||
assertEqual(result.length, 3);
|
||||
// All should conflict!
|
||||
for (var i = 0; i < docs.length; i++) {
|
||||
assertTrue(docs[i].error);
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
assertTrue(result[i].error);
|
||||
assertEqual(result[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
}
|
||||
assertEqual(collection.count(), 3);
|
||||
collection.remove(docs2);
|
||||
|
@ -491,21 +491,21 @@ function CollectionDocumentSuiteBabies() {
|
|||
}, {
|
||||
value: 6
|
||||
}]);
|
||||
var docs3;
|
||||
try {
|
||||
docs3 = collection.replace(docs, [{
|
||||
var docs3 = collection.replace(docs, [{
|
||||
value: 7
|
||||
}, {
|
||||
value: 8
|
||||
}, {
|
||||
value: 9
|
||||
}]);
|
||||
fail();
|
||||
} catch (err) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_CONFLICT.code, err.errorNum);
|
||||
assertEqual(docs3.length, docs.length);
|
||||
for (var i = 0; i < docs3.length; ++i) {
|
||||
assertEqual(docs3[i].error, true);
|
||||
assertEqual(docs3[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
}
|
||||
|
||||
// Only the third is not ok
|
||||
var test = [docs2[0], docs2[1], docs[2]];
|
||||
try {
|
||||
docs3 = collection.replace(test, [{
|
||||
value: 7
|
||||
}, {
|
||||
|
@ -513,12 +513,17 @@ function CollectionDocumentSuiteBabies() {
|
|||
}, {
|
||||
value: 9
|
||||
}]);
|
||||
fail();
|
||||
} catch (err2) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_CONFLICT.code, err2.errorNum);
|
||||
}
|
||||
assertEqual(docs3.length, test.length);
|
||||
|
||||
assertEqual(docs3[0]._key, docs[0]._key);
|
||||
assertEqual(docs3[1]._key, docs[1]._key);
|
||||
|
||||
assertEqual(docs3[2].error, true);
|
||||
assertEqual(docs3[2].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
|
||||
// Only the third is ok
|
||||
test = [docs[0], docs2[1], docs2[2]];
|
||||
try {
|
||||
|
||||
docs3 = collection.replace(test, [{
|
||||
value: 7
|
||||
}, {
|
||||
|
@ -526,10 +531,14 @@ function CollectionDocumentSuiteBabies() {
|
|||
}, {
|
||||
value: 9
|
||||
}]);
|
||||
fail();
|
||||
} catch (err3) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_CONFLICT.code, err3.errorNum);
|
||||
}
|
||||
|
||||
assertEqual(docs3[0].error, true);
|
||||
assertEqual(docs3[0].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
assertEqual(docs3[1].error, true);
|
||||
assertEqual(docs3[1].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
|
||||
assertEqual(docs3[2]._key, docs[2]._key);
|
||||
|
||||
docs3 = collection.replace(test, [{
|
||||
value: 7
|
||||
}, {
|
||||
|
@ -539,6 +548,9 @@ function CollectionDocumentSuiteBabies() {
|
|||
}], {
|
||||
overwrite: true
|
||||
});
|
||||
assertEqual(docs3[0]._key, docs[0]._key);
|
||||
assertEqual(docs3[1]._key, docs[1]._key);
|
||||
assertEqual(docs3[2]._key, docs[2]._key);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -561,7 +573,6 @@ function CollectionDocumentSuiteBabies() {
|
|||
value: 6
|
||||
}]);
|
||||
var docs3;
|
||||
try {
|
||||
docs3 = collection.update(docs, [{
|
||||
value: 7
|
||||
}, {
|
||||
|
@ -569,12 +580,14 @@ function CollectionDocumentSuiteBabies() {
|
|||
}, {
|
||||
value: 9
|
||||
}]);
|
||||
fail();
|
||||
} catch (err) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_CONFLICT.code, err.errorNum);
|
||||
assertEqual(docs3.length, 3);
|
||||
for (var i = 0; i < docs3.length; ++i) {
|
||||
assertEqual(docs3[i].error, true);
|
||||
assertEqual(docs3[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
}
|
||||
|
||||
// Only the third is not ok
|
||||
var test = [docs2[0], docs2[1], docs[2]];
|
||||
try {
|
||||
docs3 = collection.update(test, [{
|
||||
value: 7
|
||||
}, {
|
||||
|
@ -582,12 +595,16 @@ function CollectionDocumentSuiteBabies() {
|
|||
}, {
|
||||
value: 9
|
||||
}]);
|
||||
fail();
|
||||
} catch (err2) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_CONFLICT.code, err2.errorNum);
|
||||
}
|
||||
assertEqual(docs3.length, test.length);
|
||||
|
||||
assertEqual(docs3[0]._key, docs[0]._key);
|
||||
assertEqual(docs3[1]._key, docs[1]._key);
|
||||
|
||||
assertEqual(docs3[2].error, true);
|
||||
assertEqual(docs3[2].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
|
||||
// Only the third is ok
|
||||
test = [docs[0], docs2[1], docs2[2]];
|
||||
try {
|
||||
docs3 = collection.update(test, [{
|
||||
value: 7
|
||||
}, {
|
||||
|
@ -595,10 +612,14 @@ function CollectionDocumentSuiteBabies() {
|
|||
}, {
|
||||
value: 9
|
||||
}]);
|
||||
fail();
|
||||
} catch (err3) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_CONFLICT.code, err3.errorNum);
|
||||
}
|
||||
|
||||
assertEqual(docs3[0].error, true);
|
||||
assertEqual(docs3[0].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
assertEqual(docs3[1].error, true);
|
||||
assertEqual(docs3[1].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
|
||||
assertEqual(docs3[2]._key, docs[2]._key);
|
||||
|
||||
docs3 = collection.update(test, [{
|
||||
value: 7
|
||||
}, {
|
||||
|
@ -608,6 +629,10 @@ function CollectionDocumentSuiteBabies() {
|
|||
}], {
|
||||
overwrite: true
|
||||
});
|
||||
|
||||
assertEqual(docs3[0]._key, docs[0]._key);
|
||||
assertEqual(docs3[1]._key, docs[1]._key);
|
||||
assertEqual(docs3[2]._key, docs[2]._key);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -633,8 +658,8 @@ function CollectionDocumentSuiteBabies() {
|
|||
assertEqual(docs3.length, 3);
|
||||
// All should conflict!
|
||||
for (var i = 0; i < docs.length; i++) {
|
||||
assertTrue(docs[i].error);
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
assertTrue(docs3[i].error);
|
||||
assertEqual(docs3[i].errorNum, ERRORS.ERROR_ARANGO_CONFLICT.code);
|
||||
}
|
||||
|
||||
var test = [docs2[0], docs2[1], docs[2]];
|
||||
|
@ -642,8 +667,8 @@ function CollectionDocumentSuiteBabies() {
|
|||
assertEqual(docs3.length, 3);
|
||||
// The first 2 are successful
|
||||
for (var i = 0; i < 2; i++) {
|
||||
assertFalse(docs[i].hasOwnProperty("error"));
|
||||
assertFalse(docs[i].hasOwnPropery("errorNum"));
|
||||
assertFalse(docs3[i].hasOwnProperty("error"));
|
||||
assertFalse(docs3[i].hasOwnProperty("errorNum"));
|
||||
}
|
||||
// The third conflicts
|
||||
assertTrue(docs3[2].error);
|
||||
|
@ -661,8 +686,8 @@ function CollectionDocumentSuiteBabies() {
|
|||
assertEqual(docs3[1].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
|
||||
// The third is removed
|
||||
assertFalse(docs[2].hasOwnProperty("error"));
|
||||
assertFalse(docs[2].hasOwnPropery("errorNum"));
|
||||
assertFalse(docs3[2].hasOwnProperty("error"));
|
||||
assertFalse(docs3[2].hasOwnProperty("errorNum"));
|
||||
assertEqual(collection.count(), 0);
|
||||
},
|
||||
|
||||
|
@ -719,81 +744,156 @@ function CollectionDocumentSuiteBabies() {
|
|||
];
|
||||
var docs;
|
||||
values.forEach(function(x) {
|
||||
try {
|
||||
docs = collection.insert([x]);
|
||||
fail();
|
||||
} catch (err) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code,
|
||||
err.errorNum);
|
||||
}
|
||||
assertEqual(docs.length, 1);
|
||||
assertEqual(docs[0].error, true);
|
||||
assertEqual(docs[0].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code);
|
||||
});
|
||||
docs = collection.insert([{}, {}, {}]);
|
||||
var origDocs = collection.insert([{}, {}, {}]);
|
||||
var expectedLength = origDocs.length;
|
||||
require("internal").print(origDocs);
|
||||
values.forEach(function(x) {
|
||||
// Replace
|
||||
try {
|
||||
docs = collection.replace(docs, [x, x, x]);
|
||||
fail();
|
||||
} catch (err2) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code,
|
||||
err2.errorNum);
|
||||
// Version 1
|
||||
/*
|
||||
docs = collection.replace(origDocs, [x, x, x]);
|
||||
assertEqual(docs.length, expectedLength);
|
||||
for (var i = 0; i < expectedLength; ++i) {
|
||||
assertEqual(docs[i].error, true);
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code);
|
||||
}
|
||||
*/
|
||||
// Version 2
|
||||
try {
|
||||
docs = collection.replace(origDocs, [x, x, x]);
|
||||
fail();
|
||||
} catch (err) {
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code);
|
||||
}
|
||||
|
||||
// Replace
|
||||
// Version 1
|
||||
if (typeof x === "string") {
|
||||
docs = collection.replace([x, x, x], [{}, {}, {}]);
|
||||
assertEqual(docs.length, expectedLength);
|
||||
for (var i = 0; i < expectedLength; ++i) {
|
||||
assertEqual(docs[i].error, true);
|
||||
if (typeof x === "string") {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
} else {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Version 2
|
||||
try {
|
||||
docs = collection.replace([x, x, x], [{}, {}, {}]);
|
||||
fail();
|
||||
} catch (err3) {
|
||||
} catch (err) {
|
||||
if (typeof x === "string") {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code,
|
||||
err3.errorNum);
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
} else {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code,
|
||||
err3.errorNum);
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update
|
||||
try {
|
||||
docs = collection.update(docs, [x, x, x]);
|
||||
fail();
|
||||
} catch (err2) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code,
|
||||
err2.errorNum);
|
||||
// Version 1
|
||||
/*
|
||||
docs = collection.update(origDocs, [x, x, x]);
|
||||
assertEqual(docs.length, expectedLength);
|
||||
for (var i = 0; i < expectedLength; ++i) {
|
||||
assertEqual(docs[i].error, true);
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code);
|
||||
}
|
||||
*/
|
||||
|
||||
// Version 2
|
||||
try {
|
||||
docs = collection.update(origDocs, [x, x, x]);
|
||||
fail();
|
||||
} catch (err) {
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_TYPE_INVALID.code);
|
||||
}
|
||||
|
||||
|
||||
if (typeof x === "string") {
|
||||
// Version 1
|
||||
docs = collection.update([x, x, x], [{}, {}, {}]);
|
||||
assertEqual(docs.length, expectedLength);
|
||||
for (var i = 0; i < expectedLength; ++i) {
|
||||
assertEqual(docs[i].error, true);
|
||||
if (typeof x === "string") {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
} else {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Version 2
|
||||
try {
|
||||
docs = collection.update([x, x, x], [{}, {}, {}]);
|
||||
fail();
|
||||
} catch (err3) {
|
||||
} catch (err) {
|
||||
if (typeof x === "string") {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code,
|
||||
err3.errorNum);
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
} else {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code,
|
||||
err3.errorNum);
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove
|
||||
// Version 1
|
||||
if (typeof x === "string") {
|
||||
docs = collection.remove([x, x, x]);
|
||||
assertEqual(docs.length, expectedLength);
|
||||
for (var i = 0; i < expectedLength; ++i) {
|
||||
assertEqual(docs[i].error, true);
|
||||
if (typeof x === "string") {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
} else {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Version 2
|
||||
try {
|
||||
docs = collection.remove([x, x, x]);
|
||||
fail();
|
||||
} catch (err4) {
|
||||
if (typeof x === "string") {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code,
|
||||
err4.errorNum);
|
||||
} else {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code,
|
||||
err4.errorNum);
|
||||
} catch (err) {
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
}
|
||||
|
||||
// Document
|
||||
// if (typeof x === "string") {
|
||||
// Version 1
|
||||
/*
|
||||
docs = collection.document([x, x, x]);
|
||||
assertEqual(docs.length, expectedLength);
|
||||
for (var i = 0; i < expectedLength; ++i) {
|
||||
assertEqual(docs[i].error, true);
|
||||
if (typeof x === "string") {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
} else {
|
||||
assertEqual(docs[i].errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
*/
|
||||
// Version 2
|
||||
try {
|
||||
docs = collection.document([x, x, x]);
|
||||
fail();
|
||||
} catch (err5) {
|
||||
} catch (err) {
|
||||
if (typeof x === "string") {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code,
|
||||
err5.errorNum);
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code);
|
||||
} else {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code,
|
||||
err5.errorNum);
|
||||
assertEqual(err.errorNum, ERRORS.ERROR_ARANGO_DOCUMENT_HANDLE_BAD.code);
|
||||
}
|
||||
// }
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -1266,10 +1366,7 @@ function CollectionDocumentSuiteReturnStuff() {
|
|||
/// @brief executes the test suites
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// TODO FIXME: reactivate this test!
|
||||
if (false) {
|
||||
jsunity.run(CollectionDocumentSuiteBabies);
|
||||
}
|
||||
jsunity.run(CollectionDocumentSuiteReturnStuff);
|
||||
|
||||
return jsunity.done();
|
||||
|
|
Loading…
Reference in New Issue