HexadecimalIdentifierNameGenerator.spec.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'reflect-metadata';
  2. import { assert } from 'chai';
  3. import { ServiceIdentifiers } from '../../../../src/container/ServiceIdentifiers';
  4. import { IIdentifierNameGenerator } from '../../../../src/interfaces/generators/identifier-name-generators/IIdentifierNameGenerator';
  5. import { IInversifyContainerFacade } from '../../../../src/interfaces/container/IInversifyContainerFacade';
  6. import { IdentifierNameGenerator } from '../../../../src/enums/generators/identifier-name-generators/IdentifierNameGenerator';
  7. import { InversifyContainerFacade } from '../../../../src/container/InversifyContainerFacade';
  8. describe('HexadecimalIdentifierNameGenerator', () => {
  9. describe('generate (length: number): string', () => {
  10. let identifierNameGenerator: IIdentifierNameGenerator,
  11. hexadecimalIdentifierName: string,
  12. regExp: RegExp;
  13. before(() => {
  14. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  15. inversifyContainerFacade.load('', {});
  16. identifierNameGenerator = inversifyContainerFacade.getNamed<IIdentifierNameGenerator>(
  17. ServiceIdentifiers.IIdentifierNameGenerator,
  18. IdentifierNameGenerator.HexadecimalIdentifierNameGenerator
  19. )
  20. });
  21. describe('variant #1: hexadecimal name with length `4`', () => {
  22. before(() => {
  23. hexadecimalIdentifierName = identifierNameGenerator.generate(4);
  24. regExp = /^_0x(\w){4}$/;
  25. });
  26. it('should return hexadecimal name', () => {
  27. assert.match(hexadecimalIdentifierName, regExp);
  28. })
  29. });
  30. describe('variant #2: hexadecimal name with length `6`', () => {
  31. before(() => {
  32. hexadecimalIdentifierName = identifierNameGenerator.generate(6);
  33. regExp = /^_0x(\w){4,6}$/;
  34. });
  35. it('should return hexadecimal name', () => {
  36. assert.match(hexadecimalIdentifierName, regExp);
  37. })
  38. });
  39. });
  40. });