1
0
Fork 0

more tests

This commit is contained in:
Jan Steemann 2013-06-24 17:04:32 +02:00
parent 71a69d0997
commit 27bf4bb546
1 changed files with 147 additions and 1 deletions

View File

@ -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());
}
};