models.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. (function () {
  2. 'use strict';
  3. var service = getMisagoService('models');
  4. QUnit.module("Models");
  5. QUnit.test("service factory", function(assert) {
  6. var container = {};
  7. var models = service(container);
  8. assert.ok(models,
  9. "service factory has returned service instance.");
  10. });
  11. QUnit.test("add", function(assert) {
  12. var container = {};
  13. var models = service(container);
  14. var TestModel = function(data) {
  15. this.name = data.name || 'Hello';
  16. };
  17. var testModelDeserializer = function(data) {
  18. return data;
  19. };
  20. models.add('test-model', {
  21. class: TestModel,
  22. deserialize: testModelDeserializer
  23. });
  24. assert.equal(models.classes['test-model'], TestModel,
  25. "test model's class was registered in the service.");
  26. assert.equal(models.deserializers['test-model'], testModelDeserializer,
  27. "test model's deserializer was registered in the service.");
  28. });
  29. QUnit.test("new", function(assert) {
  30. var container = {};
  31. var models = service(container);
  32. var TestModel = function(data) {
  33. this.name = data.name || 'Hello';
  34. };
  35. models.add('test-model', {
  36. class: TestModel
  37. });
  38. var model = models.new('test-model', {name: 'Working!!!'});
  39. assert.equal(model.name, 'Working!!!',
  40. "new() returned model instance.");
  41. });
  42. QUnit.test("deserialize", function(assert) {
  43. var container = {};
  44. var models = service(container);
  45. var TestModel = function(data) {
  46. this.name = data.name;
  47. };
  48. var testModelDeserializer = function(data) {
  49. data.name = data.title;
  50. return data;
  51. };
  52. models.add('test-model', {
  53. class: TestModel,
  54. deserialize: testModelDeserializer
  55. });
  56. var model = models.deserialize('test-model', {title: 'Testing!'});
  57. assert.equal(model.name, 'Testing!',
  58. "deserialize() returned deserialized model instance.");
  59. models.add('other-model', {
  60. class: TestModel
  61. });
  62. model = models.deserialize('other-model', {name: 'Other!'});
  63. assert.equal(model.name, 'Other!',
  64. "deserialize() returned model instance without deserialization.");
  65. });
  66. }());