blossom
Version:
Modern, Cross-Platform Application Framework
91 lines (69 loc) • 2.85 kB
JavaScript
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Apple Inc. and contributors.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
(function() {
var store, Person, Place;
suite("SC.Store#unloadRecords", {
setup: function() {
Person = SC.Record.extend({
name: SC.Record.attr(String)
});
Place = SC.Record.extend({
name: SC.Record.attr(String)
});
SC.RunLoop.begin();
store = SC.Store.create();
store.loadRecords(Person, [
{guid: 1, name: 'Soups'},
{guid: 2, name: 'Palmdale'},
{guid: 3, name: 'Dubs'}
]);
store.loadRecords(Place, [
{guid: 4, name: "San Francisco"},
{guid: 5, name: "St. John's"}
]);
SC.RunLoop.end();
},
teardown: function() {
store = Person = Place = null;
}
});
test("Unload all records of a record type", function() {
var records = store.find(Person);
equals(records.get('length'), 3, "precond - store has 3 records loaded");
store.unloadRecords(Person);
records = store.find(Person);
equals(records.get('length'), 0, "Number of People records left");
});
test("Unload only certain records of a record type", function() {
var records = store.find(Person);
equals(records.get('length'), 3, "precond - store has 3 records loaded");
store.unloadRecords(Person, [1, 2]);
records = store.find(Person);
equals(records.get('length'), 1, "Number of People records left");
});
test("Unload all records of passed record types", function() {
var people = store.find(Person),
places = store.find(Place);
equals(people.get('length'), 3, "precond - store has 3 Person records loaded");
equals(places.get('length'), 2, "precond - store has 2 Place records loaded");
store.unloadRecords([Person, Place]);
people = store.find(Person);
places = store.find(Place);
equals(people.get('length'), 0, "Number of People records left");
equals(places.get('length'), 0, "Number of Place records left");
});
test("Unload certain records of passed record types", function() {
var people = store.find(Person),
places = store.find(Place);
equals(people.get('length'), 3, "precond - store has 3 Person records loaded");
equals(places.get('length'), 2, "precond - store has 2 Place records loaded");
store.unloadRecords([Person, Person, Place], [1, 2, 4]);
people = store.find(Person);
places = store.find(Place);
equals(people.get('length'), 1, "Number of People records left");
equals(places.get('length'), 1, "Number of Place records left");
});
})();