this merges the master head of https://github.com/helma-org/apps-modules-mirror into helma
148 lines
3.5 KiB
JavaScript
148 lines
3.5 KiB
JavaScript
tests = [
|
|
"testEquality",
|
|
"testSimpleMapping",
|
|
"testSimpleCollection",
|
|
"testObjectReference",
|
|
"testCollectionForReference"
|
|
];
|
|
|
|
function setup() {
|
|
}
|
|
|
|
function testEquality() {
|
|
var person = new Person();
|
|
root.persons.add(person);
|
|
res.commit();
|
|
var id = person._id;
|
|
app.clearCache();
|
|
var person2 = root.persons.get(id);
|
|
assertNotNull(person2);
|
|
assertTrue(person !== person2);
|
|
assertTrue(person._id === person2._id);
|
|
assertTrue(person == person2);
|
|
person.remove();
|
|
}
|
|
|
|
function testSimpleMapping() {
|
|
|
|
var data = {
|
|
name: "Oliver Stone",
|
|
dateOfBirth: new Date(1946, 8, 15, 6, 0, 0),
|
|
height: 182
|
|
};
|
|
var person = new Person();
|
|
person.name = data.name;
|
|
person.dateOfBirth = data.dateOfBirth;
|
|
person.height = data.height;
|
|
root.persons.add(person);
|
|
var personId = person._id;
|
|
|
|
res.commit(); // Commit Transaction
|
|
app.clearCache(); // Clear cache so that object is refetched
|
|
|
|
var person = Person.getById(personId);
|
|
assertNotNull(person);
|
|
assertEqual(person._prototype, "Person");
|
|
assertEqual(person._id, personId);
|
|
assertEqual(person.name, data.name);
|
|
assertEqual(person.height, data.height);
|
|
assertEqual(person.dateOfBirth.valueOf(), data.dateOfBirth.valueOf());
|
|
res.commit();
|
|
|
|
person.remove();
|
|
}
|
|
|
|
function testSimpleCollection() {
|
|
|
|
var data = {
|
|
name: "Helma"
|
|
};
|
|
var orgCount = root.organisations.count();
|
|
var org = new Organisation();
|
|
org.name = data.name;
|
|
root.organisations.add(org);
|
|
var orgId = org._id;
|
|
|
|
assertEqual(orgCount + 1, root.organisations.count());
|
|
assertNotEqual(root.organisations.indexOf(org), -1);
|
|
|
|
// fetch Object via position
|
|
assertEqual(root.organisations.get(root.organisations.indexOf(org)), org);
|
|
|
|
// fetch Object via accessname
|
|
assertEqual(root.organisations.get(data.name), org);
|
|
|
|
// fetch Object via id
|
|
assertEqual(root.organisations.getById(orgId), org);
|
|
|
|
// test list
|
|
assertEqual(root.organisations.count(), root.organisations.list().length);
|
|
|
|
org.remove();
|
|
|
|
assertEqual(orgCount, root.organisations.count());
|
|
assertEqual(root.organisations.indexOf(org), -1);
|
|
assertNull(root.organisations.get(data.name));
|
|
assertNull(root.organisations.getById(orgId));
|
|
|
|
}
|
|
|
|
|
|
function testObjectReference() {
|
|
|
|
var org = new Organisation();
|
|
org.name = "Helma";
|
|
root.organisations.add(org);
|
|
var orgId = org._id;
|
|
|
|
var person = new Person();
|
|
person.name = "Hannes";
|
|
person.organisation = org;
|
|
root.persons.add(person);
|
|
var personId = person._id;
|
|
|
|
res.commit(); // Commit Transaction
|
|
app.clearCache(); // Clear cache so that object is refetched
|
|
|
|
var org = Organisation.getById(orgId);
|
|
var person = Person.getById(personId);
|
|
assertEqual(person.organisation, org);
|
|
|
|
org.remove();
|
|
res.commit(); // Commit Transaction
|
|
|
|
assertNull(person.organisation);
|
|
|
|
person.remove();
|
|
}
|
|
|
|
|
|
function testCollectionForReference() {
|
|
|
|
var org = new Organisation();
|
|
org.name = "Helma";
|
|
root.organisations.add(org);
|
|
var orgId = org._id;
|
|
var personCount = org.persons.count();
|
|
|
|
var person = new Person();
|
|
person.name = "Hannes";
|
|
person.organisation = org;
|
|
root.persons.add(person);
|
|
org.persons.add(person);
|
|
|
|
assertEqual(personCount + 1, org.persons.count());
|
|
assertNotEqual(org.persons.indexOf(person), -1);
|
|
|
|
org.persons.removeChild(person);
|
|
person.remove();
|
|
|
|
assertEqual(personCount, org.persons.count());
|
|
assertEqual(org.persons.indexOf(person), -1);
|
|
|
|
org.remove();
|
|
}
|
|
|
|
|
|
function cleanup() {
|
|
}
|