1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- (function () {
- 'use strict';
- var service = getMisagoService('models');
- QUnit.module("Models");
- QUnit.test("service factory", function(assert) {
- var container = {};
- var models = service(container);
- assert.ok(models,
- "service factory has returned service instance.");
- });
- QUnit.test("add", function(assert) {
- var container = {};
- var models = service(container);
- var TestModel = function(data) {
- this.name = data.name || 'Hello';
- };
- var testModelDeserializer = function(data) {
- return data;
- };
- models.add('test-model', {
- class: TestModel,
- deserialize: testModelDeserializer
- });
- assert.equal(models.classes['test-model'], TestModel,
- "test model's class was registered in the service.");
- assert.equal(models.deserializers['test-model'], testModelDeserializer,
- "test model's deserializer was registered in the service.");
- });
- QUnit.test("new", function(assert) {
- var container = {};
- var models = service(container);
- var TestModel = function(data) {
- this.id = data.id;
- this.name = data.name || 'Hello';
- };
- models.add('test-model', {
- class: TestModel
- });
- var model = models.new('test-model', {id: 123, name: 'Working!!!'});
- assert.equal(model.name, 'Working!!!',
- "new() returned model instance.");
- assert.deepEqual(model.id, '123',
- "new() coalesced model's id to string.");
- });
- QUnit.test("deserialize", function(assert) {
- var container = {};
- var models = service(container);
- var TestModel = function(data) {
- this.name = data.name;
- };
- var testModelDeserializer = function(data) {
- data.name = data.title;
- return data;
- };
- models.add('test-model', {
- class: TestModel,
- deserialize: testModelDeserializer
- });
- var model = models.deserialize('test-model', {title: 'Testing!'});
- assert.equal(model.name, 'Testing!',
- "deserialize() returned deserialized model instance.");
- models.add('other-model', {
- class: TestModel
- });
- model = models.deserialize('other-model', {name: 'Other!'});
- assert.equal(model.name, 'Other!',
- "deserialize() returned model instance without deserialization.");
- });
- }());
|