@nivinjoseph/n-domain
Version:
Domain Driven Design and Event Sourcing based framework for business layer implementation
33 lines (27 loc) • 1.17 kB
text/typescript
import assert from "node:assert";
import { describe, test } from "node:test";
import { TestDomainObject } from "./domain/test-domain-object.js";
import { Deserializer } from "@nivinjoseph/n-util";
await describe("DomainObject tests", async () =>
{
await test("equality check", () =>
{
const foo = new TestDomainObject({ id: "foo", name: "i am foo" });
const bar = new TestDomainObject({ id: "bar", name: "i am foo" });
const baz = new TestDomainObject({ id: "bar", name: "i am foo" });
assert.ok(foo.equals(foo));
assert.ok(!foo.equals(bar));
assert.ok(bar.equals(baz));
});
await test("serialization test", () =>
{
const foo = new TestDomainObject({ id: "foo", name: "i am foo" });
const serialized = foo.serialize();
console.log(serialized);
const deserialized = Deserializer.deserialize<TestDomainObject>(serialized);
assert.ok(deserialized instanceof TestDomainObject);
assert.strictEqual(deserialized.id, foo.id);
assert.strictEqual(deserialized.name, foo.name);
assert.strictEqual(deserialized.id, foo.id);
});
});