nope/modules/mod-Publish-And-Subscribe-System/test/Function-Test-Matcher.ts
2020-09-01 17:05:06 +02:00

80 lines
1.9 KiB
TypeScript

/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @create date 2018-05-22 01:13:13
* @modify date 2020-09-01 17:04:33
* @desc [description]
*/
/** Clear the Screen */
declare const process: any;
import { Builder } from '../../mod-Assembly-Builder/src/Container-Builder.FileLoader';
import * as PUBSUB from '../assembly/manual-assembly';
import { addObservables } from '../src/Pub-Sub-Observable';
Builder.instance.addElements(PUBSUB.EXPORT)
Builder.instance.addActivationHandler(addObservables);
Builder.load();
Builder.on('loaded', () => {
/** Create A PubSubSystem */
const _matcher = Builder.instance.container.get<PUBSUB.Matcher>(PUBSUB.TYPES.DefaultMatcher);
const _test = [
{
subscription: 'test.child',
offered: 'test',
result: true,
},
{
subscription: 'test.child',
offered: 'test.child',
result: true,
},
{
subscription: 'test.child',
offered: 'test.child.sub',
result: true,
},
{
subscription: '+.child',
offered: 'test',
result: false,
},
{
subscription: '+.child',
offered: 'hans.child',
result: true,
},
{
subscription: '+.child',
offered: 'hans.child.test',
result: false,
},
{
subscription: '+.#',
offered: 'hans.child.test',
result: true,
},
{
subscription: 'test.#',
offered: 'hans.child.test',
result: false,
},
]
for (const _case of _test) {
const _res = _matcher.affected(_case.subscription, _case.offered);
if (_res != _case.result) {
console.log('ERROR on', _case.subscription, _case.offered, 'should', _case.result);
}
}
});