ControlFlowStorage.spec.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { ServiceIdentifiers } from '../../../src/container/ServiceIdentifiers';
  2. import { assert } from 'chai';
  3. import { TCustomNodeFactory } from '../../../src/types/container/TCustomNodeFactory';
  4. import { ICustomNode } from '../../../src/interfaces/custom-nodes/ICustomNode';
  5. import { IInversifyContainerFacade } from '../../../src/interfaces/container/IInversifyContainerFacade';
  6. import { IStorage } from '../../../src/interfaces/storages/IStorage';
  7. import { CustomNodes } from '../../../src/enums/container/CustomNodes';
  8. import { InversifyContainerFacade } from '../../../src/container/InversifyContainerFacade';
  9. describe('ControlFlowStorage', () => {
  10. describe('toString (): string', () => {
  11. it('should return correct ControlFlowStorage data after `.toString()` call', () => {
  12. const key1: string = 'key1';
  13. const key2: string = 'key2';
  14. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade({
  15. controlFlowFlattening: true
  16. });
  17. const customNodeFactory: TCustomNodeFactory = inversifyContainerFacade
  18. .get<TCustomNodeFactory>(ServiceIdentifiers['Factory<ICustomNode>']);
  19. const controlFlowStorage: IStorage <ICustomNode> = inversifyContainerFacade
  20. .get<IStorage<ICustomNode>>(ServiceIdentifiers['IStorage<ICustomNode>']);
  21. const controlFlowStorageCallNode1: ICustomNode = customNodeFactory(CustomNodes.ControlFlowStorageCallNode);
  22. const controlFlowStorageCallNode2: ICustomNode = customNodeFactory(CustomNodes.ControlFlowStorageCallNode);
  23. controlFlowStorageCallNode1.initialize('controlFlowStorageName', key1, 1, 2);
  24. controlFlowStorageCallNode2.initialize('controlFlowStorageName', key2, 3, 4);
  25. controlFlowStorage.set(key1, controlFlowStorageCallNode1);
  26. controlFlowStorage.set(key2, controlFlowStorageCallNode2);
  27. assert.equal(
  28. controlFlowStorage.toString(),
  29. `${key1}: ${controlFlowStorageCallNode1.getCode()},${key2}: ${controlFlowStorageCallNode2.getCode()}`
  30. );
  31. });
  32. });
  33. });