HexadecimalIdentifierNamesGenerator.spec.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import 'reflect-metadata';
  2. import { assert } from 'chai';
  3. import { ServiceIdentifiers } from '../../../../src/container/ServiceIdentifiers';
  4. import { IIdentifierNamesGenerator } from '../../../../src/interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
  5. import { IInversifyContainerFacade } from '../../../../src/interfaces/container/IInversifyContainerFacade';
  6. import { IdentifierNamesGenerator } from '../../../../src/enums/generators/identifier-names-generators/IdentifierNamesGenerator';
  7. import { InversifyContainerFacade } from '../../../../src/container/InversifyContainerFacade';
  8. describe('HexadecimalIdentifierNamesGenerator', () => {
  9. describe('generate', () => {
  10. let identifierNamesGenerator: IIdentifierNamesGenerator,
  11. hexadecimalIdentifierName: string,
  12. regExp: RegExp;
  13. before(() => {
  14. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  15. inversifyContainerFacade.load('', '', {});
  16. identifierNamesGenerator = inversifyContainerFacade.getNamed<IIdentifierNamesGenerator>(
  17. ServiceIdentifiers.IIdentifierNamesGenerator,
  18. IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
  19. );
  20. hexadecimalIdentifierName = identifierNamesGenerator.generate();
  21. regExp = /^_0x(\w){4,6}$/;
  22. });
  23. it('should return hexadecimal name', () => {
  24. assert.match(hexadecimalIdentifierName, regExp);
  25. })
  26. });
  27. describe('generateWithPrefix (): string', () => {
  28. const regExp: RegExp = /^foo_0x(\w){4,6}$/;
  29. let identifierNamesGenerator: IIdentifierNamesGenerator,
  30. hexadecimalIdentifierName: string;
  31. before(() => {
  32. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  33. inversifyContainerFacade.load('', '', {
  34. identifiersPrefix: 'foo'
  35. });
  36. identifierNamesGenerator = inversifyContainerFacade.getNamed<IIdentifierNamesGenerator>(
  37. ServiceIdentifiers.IIdentifierNamesGenerator,
  38. IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
  39. );
  40. hexadecimalIdentifierName = identifierNamesGenerator.generateWithPrefix();
  41. });
  42. it('should return hexadecimal name with prefix', () => {
  43. assert.match(hexadecimalIdentifierName, regExp);
  44. })
  45. });
  46. });