UNPKG

s9s-objects

Version:

Global object container, used across projects

83 lines (69 loc) 2.81 kB
const assert = require('assert'); describe('AbstractObject', function () { /** * @type {{AbstractObject:Function}} */ const Objects = require(__dirname + '/../../objects'); var object = new Objects.AbstractObject(); object.id = 12; object.name = 'hello'; object.a = 1; object.b = 2; object.c = 3; function A(value) { this.value = value; } var testObject = new Objects.AbstractObject(); testObject.applyData({ a: 'a', b: 'b', c: 123 }, { c: A }); it('Should be an Object', function () { assert.strictEqual(typeof(object), 'object'); }); it('Should be an instance of an Object', function () { assert.strictEqual(object instanceof Object, true); }); it('Should contain method "applyData"', function () { assert.strictEqual(typeof(object.applyData), 'function'); assert.strictEqual(testObject.a, 'a'); assert.strictEqual(testObject.b, 'b'); assert.strictEqual(testObject.c instanceof A, true); assert.strictEqual(testObject.c.value, 123); }); it('Should contain method "getValue"', function () { assert.strictEqual(typeof(object.getValue), 'function'); assert.strictEqual(object.getValue('a'), 1); assert.strictEqual(object.getValue('b'), 2); assert.strictEqual(object.getValue('c'), 3); assert.notStrictEqual(object.getValue('d'), 3); assert.notStrictEqual(object.getValue('d'), 4); assert.strictEqual(object.getValue('d', 4), 4); assert.strictEqual(testObject.getValue('c') instanceof A, true); assert.strictEqual(testObject.getValue('c').value, 123); assert.strictEqual(object.getValue('d', A) instanceof A, true); }); it('Should contain method "getId"', function () { assert.strictEqual(typeof(object.getId), 'function'); assert.strictEqual(object.getId(), 12); }); it('Should contain method "getName"', function () { assert.strictEqual(typeof(object.getName), 'function'); assert.strictEqual(object.getName(), 'hello'); }); it('Should contain method "toRawObject"', function () { assert.strictEqual(typeof(object.toRawObject), 'function'); assert.strictEqual(typeof(object.toRawObject()), 'object'); assert.strictEqual(object.toRawObject().a, 1); assert.strictEqual(object.toRawObject().b, 2); assert.strictEqual(object.toRawObject().c, 3); }); it('Should contain method "toJson"', function () { assert.strictEqual(typeof(object.toJson), 'function'); assert.strictEqual(typeof(object.toJson()), 'string'); assert.strictEqual(object.toJson(), '{"id":12,"name":"hello","a":1,"b":2,"c":3}'); }); });