73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
import * as assert from 'assert';
|
|
import * as OV from '../../source/engine/main.js';
|
|
|
|
export default function suite ()
|
|
{
|
|
|
|
describe ('Core', function () {
|
|
it ('Is defined', function () {
|
|
assert.strictEqual (OV.IsDefined (null), false);
|
|
assert.strictEqual (OV.IsDefined (undefined), false);
|
|
assert.strictEqual (OV.IsDefined (0), true);
|
|
assert.strictEqual (OV.IsDefined (''), true);
|
|
});
|
|
|
|
it ('Value or default', function () {
|
|
assert.strictEqual (OV.ValueOrDefault (null, 5), 5);
|
|
assert.strictEqual (OV.ValueOrDefault (undefined, 5), 5);
|
|
assert.strictEqual (OV.ValueOrDefault (3, 5), 3);
|
|
assert.strictEqual (OV.ValueOrDefault ('a', 5), 'a');
|
|
});
|
|
|
|
it ('Copy object attributes', function () {
|
|
let src = {
|
|
a : null,
|
|
b : undefined,
|
|
c : 6
|
|
};
|
|
|
|
let dest = {};
|
|
OV.CopyObjectAttributes (src, dest);
|
|
assert.deepStrictEqual (dest, {c : 6});
|
|
|
|
let dest2 = {
|
|
a : 1,
|
|
b : 2,
|
|
c : 3
|
|
};
|
|
OV.CopyObjectAttributes (src, dest2);
|
|
assert.deepStrictEqual (dest2, {a : 1, b : 2, c : 6});
|
|
|
|
let dest3 = {
|
|
a : null,
|
|
b : null,
|
|
c : null
|
|
};
|
|
OV.CopyObjectAttributes (src, dest3);
|
|
assert.deepStrictEqual (dest3, {a : null, b : null, c : 6});
|
|
});
|
|
|
|
it ('Event Notifier', function () {
|
|
let en = new OV.EventNotifier ();
|
|
let sumValues = 0;
|
|
en.AddEventListener ('first_event', (x) => {
|
|
sumValues += x;
|
|
});
|
|
en.AddEventListener ('first_event', (x) => {
|
|
sumValues += 2 * x;
|
|
});
|
|
en.AddEventListener ('second_event', (x, y) => {
|
|
sumValues += 3 * x;
|
|
sumValues += 3 * y;
|
|
});
|
|
en.NotifyEventListeners ('first_event', 5);
|
|
en.NotifyEventListeners ('second_event', 10, 15);
|
|
assert.ok (en.HasEventListener ('first_event'));
|
|
assert.ok (en.HasEventListener ('second_event'));
|
|
assert.ok (!en.HasEventListener ('third_event'));
|
|
assert.strictEqual (sumValues, 90);
|
|
});
|
|
});
|
|
|
|
}
|