s9s-objects
Version:
Global object container, used across projects
83 lines (69 loc) • 2.81 kB
JavaScript
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}');
});
});