93 lines
2.5 KiB
JavaScript
93 lines
2.5 KiB
JavaScript
tests = [
|
|
'testSize',
|
|
'testContent',
|
|
'testGroupContent',
|
|
'testRemove',
|
|
'testAdd'
|
|
];
|
|
|
|
var org;
|
|
var size = 16;
|
|
|
|
function setup() {
|
|
org = new Organisation();
|
|
org.name = "GenericOrg";
|
|
var i = 0, person;
|
|
|
|
function addPerson(collection) {
|
|
person = new Person();
|
|
person.name = "GenericPerson " + i.format("00");
|
|
collection.add(person);
|
|
i++;
|
|
}
|
|
|
|
// add first half to both collections of transient parent ...
|
|
while (i < 4)
|
|
addPerson(org.generic);
|
|
while (i < 8)
|
|
addPerson(org.groupedGeneric);
|
|
root.organisations.add(org);
|
|
// ... second half to both collections of persistent parent.
|
|
while (i < 12)
|
|
addPerson(org.generic);
|
|
while (i < size)
|
|
addPerson(org.groupedGeneric);
|
|
|
|
res.commit();
|
|
}
|
|
|
|
function testSize() {
|
|
assertEqual(org.generic.size(), size);
|
|
org.invalidate();
|
|
assertEqual(org.generic.size(), size);
|
|
}
|
|
|
|
function testContent() {
|
|
var list = org.generic.list();
|
|
assertEqual(list.length, size);
|
|
for (var i = 0; i < list.length; i++) {
|
|
assertEqual(list[i].name, "GenericPerson " + i.format("00"));
|
|
}
|
|
}
|
|
|
|
function testGroupContent() {
|
|
var list = org.groupedGeneric.list();
|
|
assertEqual(list.length, size);
|
|
for (var i = 0; i < list.length; i++) {
|
|
assertEqual(list[i].groupname, "GenericPerson " + i.format("00"));
|
|
assertEqual(list[i].size(), 1);
|
|
assertEqual(list[i].get(0).name, "GenericPerson " + i.format("00"));
|
|
}
|
|
}
|
|
|
|
function testRemove() {
|
|
var person = org.generic.get(size/2);
|
|
org.generic.removeChild(person);
|
|
assertEqual(org.generic.size(), size - 1);
|
|
res.rollback();
|
|
// note: removeChild does not remove the node, nor does it
|
|
// unset the constraints between parent and child, so after a rollback
|
|
// the object is back in place. While this behaviour is disputable,
|
|
// until this is so we test for it.
|
|
assertEqual(org.generic.size(), size);
|
|
}
|
|
|
|
function testAdd() {
|
|
var person = new Person();
|
|
org.generic.add(person);
|
|
assertEqual(org.generic.size(), size + 1);
|
|
assertEqual(org.groupedGeneric.size(), size);
|
|
res.commit();
|
|
// note: even after commit the grouped collection must not grow
|
|
// since we added a person without a name
|
|
assertEqual(org.generic.size(), size + 1);
|
|
assertEqual(org.groupedGeneric.size(), size);
|
|
}
|
|
|
|
function cleanup() {
|
|
var persons = org.generic.list();
|
|
for (let person of persons) {
|
|
person.remove();
|
|
}
|
|
org.remove();
|
|
}
|