mirror of https://gitee.com/bigwinds/arangodb
more tests
This commit is contained in:
parent
71a69d0997
commit
27bf4bb546
|
@ -591,7 +591,29 @@ function CapConstraintSuite() {
|
|||
/// @brief test: too large document
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testDocumentTooLarge : function () {
|
||||
testDocumentTooLarge1 : function () {
|
||||
collection.ensureCapConstraint(1, 16384);
|
||||
var doc = { };
|
||||
|
||||
for (var i = 0; i < 1000; ++i) {
|
||||
doc["test" + i] = "this is a test for the too large document";
|
||||
}
|
||||
|
||||
try {
|
||||
collection.save(doc);
|
||||
fail();
|
||||
}
|
||||
catch (err) {
|
||||
assertTrue(err.errorNum === ERRORS.ERROR_ARANGO_DOCUMENT_TOO_LARGE.code ||
|
||||
err.errorNum === ERRORS.ERROR_INTERNAL.code);
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test: too large document
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testDocumentTooLarge2 : function () {
|
||||
collection.ensureCapConstraint(1000, 16384);
|
||||
var doc = { };
|
||||
|
||||
|
@ -607,6 +629,130 @@ function CapConstraintSuite() {
|
|||
assertTrue(err.errorNum === ERRORS.ERROR_ARANGO_DOCUMENT_TOO_LARGE.code ||
|
||||
err.errorNum === ERRORS.ERROR_INTERNAL.code);
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test: modification of collection size via updates
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testSizeModificationSimple : function () {
|
||||
collection.ensureCapConstraint(1000, 16384);
|
||||
|
||||
var doc = collection.save({ a : 1 });
|
||||
|
||||
// cap should not be triggered here, but we want to see whether assertions fail
|
||||
doc = collection.replace(doc, { a : 2, b : 2 });
|
||||
assertEqual(1, collection.count());
|
||||
collection.truncate();
|
||||
assertEqual(0, collection.count());
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test: modification of collection size via updates
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testSizeModificationsMulti : function () {
|
||||
collection.ensureCapConstraint(1000, 16384);
|
||||
|
||||
var doc = collection.save({ });
|
||||
var data = { };
|
||||
|
||||
for (var i = 0; i < 100; ++i) {
|
||||
data["a" + i] = i;
|
||||
|
||||
// cap should not be triggered here, but we want to see whether assertions fail
|
||||
doc = collection.replace(doc, data);
|
||||
}
|
||||
|
||||
assertEqual(1, collection.count());
|
||||
|
||||
collection.truncate();
|
||||
doc = null;
|
||||
collection.unload();
|
||||
internal.wait(5);
|
||||
|
||||
assertEqual(0, collection.count());
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test: modification of collection size via updates
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testSizeModifications : function () {
|
||||
collection.ensureCapConstraint(2, 16384);
|
||||
|
||||
var doc = collection.save({ _key: "test", a: 1 });
|
||||
var rev = doc._rev;
|
||||
collection.save({ a : 2 });
|
||||
|
||||
data = { };
|
||||
for (var i = 0; i < 1000; ++i) {
|
||||
data["b" + i] = "this document will really get too big...";
|
||||
}
|
||||
|
||||
try {
|
||||
collection.update(doc, data);
|
||||
fail();
|
||||
}
|
||||
catch (err) {
|
||||
assertTrue(err.errorNum === ERRORS.ERROR_ARANGO_DOCUMENT_TOO_LARGE.code ||
|
||||
err.errorNum === ERRORS.ERROR_INTERNAL.code);
|
||||
}
|
||||
|
||||
doc = null;
|
||||
collection.unload();
|
||||
internal.wait(5);
|
||||
|
||||
assertEqual(2, collection.count());
|
||||
assertEqual(1, collection.document("test").a);
|
||||
assertEqual(rev, collection.document("test")._rev);
|
||||
|
||||
collection.truncate();
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test: modification of collection size via updates
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testSizeModificationsViolations : function () {
|
||||
collection.ensureCapConstraint(1, 16384);
|
||||
|
||||
var doc = collection.save({ });
|
||||
var data = { };
|
||||
|
||||
for (var i = 0; i < 10; ++i) {
|
||||
data["a" + i] = i;
|
||||
|
||||
doc = collection.replace(doc, data);
|
||||
}
|
||||
|
||||
assertEqual(1, collection.count());
|
||||
assertEqual(collection.toArray()[0].a9, 9);
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
data["b" + i] = "this document will really get too big...";
|
||||
}
|
||||
|
||||
try {
|
||||
collection.save(data);
|
||||
fail();
|
||||
}
|
||||
catch (err) {
|
||||
assertTrue(err.errorNum === ERRORS.ERROR_ARANGO_DOCUMENT_TOO_LARGE.code ||
|
||||
err.errorNum === ERRORS.ERROR_INTERNAL.code);
|
||||
}
|
||||
|
||||
assertEqual(collection.toArray()[0].a9, 9);
|
||||
assertEqual(1, collection.count());
|
||||
|
||||
doc = null;
|
||||
collection.unload();
|
||||
internal.wait(5);
|
||||
assertEqual(collection.toArray()[0].a9, 9);
|
||||
assertEqual(1, collection.count());
|
||||
|
||||
collection.truncate();
|
||||
assertEqual(0, collection.count());
|
||||
}
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue