HexadecimalIdentifierNamesGenerator.spec.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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 (): string', () => {
  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. 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. describe('getPrefix (): string', () => {
  68. const expectedIdentifierPrefix: string = 'foo';
  69. let identifierNamesGenerator: IIdentifierNamesGenerator,
  70. identifierPrefix: string;
  71. before(() => {
  72. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  73. inversifyContainerFacade.load('', {
  74. identifiersPrefix: 'foo'
  75. });
  76. identifierNamesGenerator = inversifyContainerFacade.getNamed<IIdentifierNamesGenerator>(
  77. ServiceIdentifiers.IIdentifierNamesGenerator,
  78. IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
  79. );
  80. identifierPrefix = identifierNamesGenerator.getPrefix();
  81. });
  82. it('should return prefix', () => {
  83. assert.equal(identifierPrefix, expectedIdentifierPrefix);
  84. })
  85. });
  86. });