ModelHandle/test/tests/core_test.js
2024-01-27 08:58:13 +01:00

103 lines
3.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);
});
it ('Localization', function () {
assert.strictEqual (OV.Loc ('Test'), 'Test');
assert.strictEqual (OV.FLoc ('Test {0}', '1'), 'Test 1');
OV.SetLocalizedStrings ({
'Test' : {
'hu': 'Teszt'
},
'Test {0}' : {
'hu': 'Teszt {0}'
},
'Test {0} {0}' : {
'hu': 'Teszt {0} {0}'
},
'Test {0} {0} {1}' : {
'hu': 'Teszt {0} {0} {1}'
}
});
OV.SetLanguageCode ('not_existing');
assert.strictEqual (OV.Loc ('Test'), 'Test');
OV.SetLanguageCode ('hu');
assert.strictEqual (OV.Loc ('Test'), 'Teszt');
assert.strictEqual (OV.FLoc ('Test {0}', 'a'), 'Teszt a');
assert.strictEqual (OV.FLoc ('Test {0} {0}', 'a'), 'Teszt a a');
assert.strictEqual (OV.FLoc ('Test {0} {0} {1}', 'a', 'b'), 'Teszt a a b');
OV.SetLocalizedStrings (null);
OV.SetLanguageCode (null);
});
});
}