2022-01-10 06:52:05 +00:00
|
|
|
/**
|
|
|
|
* @author Martin Karkowski
|
|
|
|
* @email m.karkowski@zema.de
|
|
|
|
* @create date 2022-01-04 10:03:41
|
2022-01-16 19:38:45 +00:00
|
|
|
* @modify date 2022-01-10 14:12:20
|
2022-01-10 06:52:05 +00:00
|
|
|
* @desc [description]
|
|
|
|
*/
|
|
|
|
|
|
|
|
import { expect } from "chai";
|
|
|
|
import { beforeEach, describe, it } from "mocha";
|
|
|
|
import "reflect-metadata";
|
|
|
|
import { getLayer } from "../../communication/getLayer.nodejs";
|
|
|
|
import { NopeObservable } from "../../observables/nopeObservable";
|
|
|
|
import { NopeCore } from "./NopeCore";
|
|
|
|
|
|
|
|
describe("NopeCore", function () {
|
|
|
|
// Describe the required Test:
|
|
|
|
let core = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator: getLayer("event", "", false),
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
|
|
|
"first"
|
|
|
|
);
|
|
|
|
|
|
|
|
describe("Configuration", function () {
|
|
|
|
let communicator = getLayer("event", "", false);
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
core.dispose();
|
|
|
|
|
|
|
|
communicator = getLayer("event", "", false);
|
|
|
|
|
|
|
|
// Create a new Core
|
|
|
|
core = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator: getLayer("event", "", false),
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
|
|
|
"first"
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("dispose", async () => {
|
|
|
|
// Remove the Old Timer
|
|
|
|
await core.ready.waitFor();
|
|
|
|
await core.dispose();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("Events", function () {
|
|
|
|
let communicator = getLayer("event", "", false);
|
|
|
|
|
|
|
|
let remote = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator,
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
2022-01-16 19:38:45 +00:00
|
|
|
"second"
|
2022-01-10 06:52:05 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
core.dispose();
|
|
|
|
remote.dispose();
|
|
|
|
|
|
|
|
communicator = getLayer("event", "", false);
|
|
|
|
|
|
|
|
// Create a new Core
|
|
|
|
core = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator,
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
|
|
|
"first"
|
|
|
|
);
|
|
|
|
|
|
|
|
remote = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator,
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
2022-01-16 19:38:45 +00:00
|
|
|
"second"
|
2022-01-10 06:52:05 +00:00
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("subscribe", (done) => {
|
|
|
|
let sub = null;
|
|
|
|
sub = remote.eventDistributor.registerSubscription<string>(
|
|
|
|
"test",
|
|
|
|
(data) => {
|
2022-01-16 19:38:45 +00:00
|
|
|
expect(data).to.equal("test");
|
2022-01-10 06:52:05 +00:00
|
|
|
done();
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
core.eventDistributor.emit("test", "test", {
|
|
|
|
forced: true,
|
|
|
|
});
|
2022-01-16 19:38:45 +00:00
|
|
|
}, 20);
|
2022-01-10 06:52:05 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("Properties", function () {
|
|
|
|
let communicator = getLayer("event", "", false);
|
|
|
|
|
|
|
|
let remote = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator,
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
2022-01-16 19:38:45 +00:00
|
|
|
"second"
|
2022-01-10 06:52:05 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
core.dispose();
|
|
|
|
remote.dispose();
|
|
|
|
|
|
|
|
communicator = getLayer("event", "", false);
|
|
|
|
|
|
|
|
// Create a new Core
|
|
|
|
core = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator,
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
|
|
|
"first"
|
|
|
|
);
|
|
|
|
|
|
|
|
remote = new NopeCore(
|
|
|
|
{
|
|
|
|
communicator,
|
|
|
|
logger: false,
|
|
|
|
},
|
|
|
|
() => new NopeObservable(),
|
2022-01-16 19:38:45 +00:00
|
|
|
"second"
|
2022-01-10 06:52:05 +00:00
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("subscribe", (done) => {
|
|
|
|
let sub = null;
|
2022-01-16 19:38:45 +00:00
|
|
|
sub = remote.dataDistributor.registerSubscription<string>(
|
2022-01-10 06:52:05 +00:00
|
|
|
"test",
|
|
|
|
(data) => {
|
2022-01-16 19:38:45 +00:00
|
|
|
if (data !== undefined) {
|
|
|
|
expect(data).to.equal("test");
|
|
|
|
done();
|
|
|
|
}
|
2022-01-10 06:52:05 +00:00
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
setTimeout(() => {
|
2022-01-16 19:38:45 +00:00
|
|
|
core.dataDistributor.emit("test", "test", {
|
2022-01-10 06:52:05 +00:00
|
|
|
forced: true,
|
|
|
|
});
|
2022-01-16 19:38:45 +00:00
|
|
|
}, 20);
|
2022-01-10 06:52:05 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|