HexadecimalIdentifierNamesGenerator.spec.ts 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 (length: number, attachPrefix: boolean): string', () => {
  10. describe('Hexadecimal name without prefix', () => {
  11. let identifierNamesGenerator: IIdentifierNamesGenerator,
  12. hexadecimalIdentifierName: string,
  13. regExp: RegExp;
  14. before(() => {
  15. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  16. inversifyContainerFacade.load('', {});
  17. identifierNamesGenerator = inversifyContainerFacade.getNamed<IIdentifierNamesGenerator>(
  18. ServiceIdentifiers.IIdentifierNamesGenerator,
  19. IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
  20. );
  21. hexadecimalIdentifierName = identifierNamesGenerator.generate();
  22. regExp = /^_0x(\w){4,6}$/;
  23. });
  24. it('should return hexadecimal name', () => {
  25. assert.match(hexadecimalIdentifierName, regExp);
  26. })
  27. });
  28. describe('Hexadecimal name with prefix', () => {
  29. const regExp: RegExp = /^foo_0x(\w){4,6}$/;
  30. let identifierNamesGenerator: IIdentifierNamesGenerator,
  31. hexadecimalIdentifierName: string;
  32. before(() => {
  33. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  34. inversifyContainerFacade.load('', {
  35. identifiersPrefix: 'foo'
  36. });
  37. identifierNamesGenerator = inversifyContainerFacade.getNamed<IIdentifierNamesGenerator>(
  38. ServiceIdentifiers.IIdentifierNamesGenerator,
  39. IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
  40. );
  41. hexadecimalIdentifierName = identifierNamesGenerator.generateWithPrefix();
  42. });
  43. it('should return hexadecimal name with prefix', () => {
  44. assert.match(hexadecimalIdentifierName, regExp);
  45. })
  46. });
  47. describe('Hexadecimal name with random prefix', () => {
  48. const regExp: RegExp = /^(\w){6}_0x(\w){4,6}$/;
  49. let identifierNamesGenerator: IIdentifierNamesGenerator,
  50. hexadecimalIdentifierName: string;
  51. before(() => {
  52. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  53. inversifyContainerFacade.load('', {
  54. identifiersPrefix: true
  55. });
  56. identifierNamesGenerator = inversifyContainerFacade.getNamed<IIdentifierNamesGenerator>(
  57. ServiceIdentifiers.IIdentifierNamesGenerator,
  58. IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
  59. );
  60. hexadecimalIdentifierName = identifierNamesGenerator.generateWithPrefix();
  61. });
  62. it('should return hexadecimal name with prefix', () => {
  63. assert.match(hexadecimalIdentifierName, regExp);
  64. })
  65. });
  66. });
  67. });