import DataUnit from "../../src/dataunit/DataUnit.js"; import { DataUnitStorage } from "../../src/dataunit/DataUnitStorage.js"; describe("DataUnitStorage", () => { let dataUnit1: DataUnit; let dataUnit2: DataUnit; beforeEach(() => { dataUnit1 = new DataUnit("dataUnit1"); dataUnit2 = new DataUnit("dataUnit2"); }); afterEach(() => { DataUnitStorage.remove(dataUnit1); DataUnitStorage.remove(dataUnit2); }); describe("put", () => { test("should store a DataUnit instance in the DataUnitStorage", () => { DataUnitStorage.put(dataUnit1); expect(DataUnitStorage.get(dataUnit1.name)).toBe(dataUnit1); }); }); describe("get", () => { test("should return the stored DataUnit instance from the DataUnitStorage", () => { DataUnitStorage.put(dataUnit1); const retrievedDataUnit = DataUnitStorage.get(dataUnit1.name); expect(retrievedDataUnit).toBe(dataUnit1); }); test("should return undefined if the DataUnit instance is not found in the DataUnitStorage", () => { const retrievedDataUnit = DataUnitStorage.get("nonExistentDataUnit"); expect(retrievedDataUnit).toBeUndefined(); }); }); describe("remove", () => { test("should remove the specified DataUnit instance from the DataUnitStorage", () => { DataUnitStorage.put(dataUnit1); DataUnitStorage.remove(dataUnit1); const retrievedDataUnit = DataUnitStorage.get(dataUnit1.name); expect(retrievedDataUnit).toBeUndefined(); }); test("should remove the DataUnit instance with the specified name from the DataUnitStorage", () => { DataUnitStorage.put(dataUnit1); DataUnitStorage.remove(dataUnit1.name); const retrievedDataUnit = DataUnitStorage.get(dataUnit1.name); expect(retrievedDataUnit).toBeUndefined(); }); test("should not remove any DataUnit instance if the specified DataUnit instance or name is not found in the DataUnitStorage", () => { DataUnitStorage.put(dataUnit1); DataUnitStorage.remove(dataUnit2); DataUnitStorage.remove("nonExistentDataUnit"); const retrievedDataUnit1 = DataUnitStorage.get(dataUnit1.name); const retrievedDataUnit2 = DataUnitStorage.get(dataUnit2.name); expect(retrievedDataUnit1).toBe(dataUnit1); expect(retrievedDataUnit2).toBeUndefined(); }); }); });