12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- (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.name = data.name || 'Hello';
- };
- models.add('test-model', {
- class: TestModel
- });
- var model = models.new('test-model', {name: 'Working!!!'});
- assert.equal(model.name, 'Working!!!',
- "new() returned model instance.");
- });
- 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.");
- models.add('model-with-relation', {
- class: TestModel,
- relations: {
- 'test': 'test-model'
- }
- });
- model = models.deserialize('model-with-relation:test', {title: 'Related'});
- assert.equal(model.name, 'Related',
- "deserialize() returned related model instance.");
- });
- }());
|