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
|
/// @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);
|
collection.ensureCapConstraint(1000, 16384);
|
||||||
var doc = { };
|
var doc = { };
|
||||||
|
|
||||||
|
@ -607,6 +629,130 @@ function CapConstraintSuite() {
|
||||||
assertTrue(err.errorNum === ERRORS.ERROR_ARANGO_DOCUMENT_TOO_LARGE.code ||
|
assertTrue(err.errorNum === ERRORS.ERROR_ARANGO_DOCUMENT_TOO_LARGE.code ||
|
||||||
err.errorNum === ERRORS.ERROR_INTERNAL.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