From 1440ee58287ce1a79c73bb7abcf08777d2c87ddd Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Tue, 11 Dec 2018 11:59:03 -0700 Subject: [PATCH] Added additional tests --- .../model/dynamic-http.provider.form.spec.ts | 122 ++++++++++++++++++ .../model/file-system.provider.form.spec.ts | 120 +++++++++++++++++ .../model/local-dynamic.provider.form.spec.ts | 120 +++++++++++++++++ 3 files changed, 362 insertions(+) create mode 100644 ui/src/app/metadata/provider/model/dynamic-http.provider.form.spec.ts create mode 100644 ui/src/app/metadata/provider/model/file-system.provider.form.spec.ts create mode 100644 ui/src/app/metadata/provider/model/local-dynamic.provider.form.spec.ts diff --git a/ui/src/app/metadata/provider/model/dynamic-http.provider.form.spec.ts b/ui/src/app/metadata/provider/model/dynamic-http.provider.form.spec.ts new file mode 100644 index 000000000..94d1dfe7b --- /dev/null +++ b/ui/src/app/metadata/provider/model/dynamic-http.provider.form.spec.ts @@ -0,0 +1,122 @@ +import { DynamicHttpMetadataProviderWizard } from './dynamic-http.provider.form'; + + +describe('DynamicHttpMetadataProviderWizard', () => { + + const parser = DynamicHttpMetadataProviderWizard.parser; + const formatter = DynamicHttpMetadataProviderWizard.formatter; + const getValidators = DynamicHttpMetadataProviderWizard.getValidators; + + const requiredValidUntilFilter = { + maxValidityInterval: 1, + '@type': 'RequiredValidUntil' + }; + + const signatureValidationFilter = { + requireSignedRoot: true, + certificateFile: 'foo', + '@type': 'SignatureValidation' + }; + + const entityRoleWhiteListFilter = { + retainedRoles: ['foo', 'bar'], + removeRolelessEntityDescriptors: true, + removeEmptyEntitiesDescriptors: true, + '@type': 'EntityRoleWhiteList' + }; + + describe('parser', () => { + it('should transform the filters object to an array', () => { + let model = { + name: 'foo', + '@type': 'DynamicHttpMetadataResolver', + enabled: true, + resourceId: 'foo', + metadataFilters: { + RequiredValidUntil: requiredValidUntilFilter, + SignatureValidation: signatureValidationFilter, + EntityRoleWhiteList: entityRoleWhiteListFilter + } + }; + expect( + parser(model) + ).toEqual( + { + ...model, + metadataFilters: [ + requiredValidUntilFilter, + signatureValidationFilter, + entityRoleWhiteListFilter + ] + } + ); + }); + + it('should return the object if metadataFilters is not provided', () => { + let model = { + name: 'foo', + '@type': 'DynamicHttpMetadataResolver', + enabled: true, + resourceId: 'foo' + }; + expect( + parser(model) + ).toEqual( + model + ); + }); + }); + + describe('formatter', () => { + it('should transform the filters object to an array', () => { + let model = { + name: 'foo', + '@type': 'DynamicHttpMetadataResolver', + enabled: true, + resourceId: 'foo', + metadataFilters: [ + requiredValidUntilFilter, + signatureValidationFilter, + entityRoleWhiteListFilter + ] + }; + expect( + formatter(model) + ).toEqual( + { + ...model, + metadataFilters: { + RequiredValidUntil: requiredValidUntilFilter, + SignatureValidation: signatureValidationFilter, + EntityRoleWhiteList: entityRoleWhiteListFilter + } + } + ); + }); + + it('should return the object if metadataFilters is not provided', () => { + let model = { + name: 'foo', + '@type': 'DynamicHttpMetadataResolver', + enabled: true, + resourceId: 'foo' + }; + expect( + formatter(model) + ).toEqual( + model + ); + }); + }); + + describe('getValidators method', () => { + it('should return a list of validators for the ngx-schema-form', () => { + expect(Object.keys(getValidators([]))).toEqual([ + '/', + '/name', + '/xmlId', + '/metadataURL' + ]); + }); + }); +}); diff --git a/ui/src/app/metadata/provider/model/file-system.provider.form.spec.ts b/ui/src/app/metadata/provider/model/file-system.provider.form.spec.ts new file mode 100644 index 000000000..ae8fb4a9a --- /dev/null +++ b/ui/src/app/metadata/provider/model/file-system.provider.form.spec.ts @@ -0,0 +1,120 @@ +import { FileSystemMetadataProviderWizard } from './file-system.provider.form'; + +describe('FileSystemMetadataProviderWizard', () => { + + const parser = FileSystemMetadataProviderWizard.parser; + const formatter = FileSystemMetadataProviderWizard.formatter; + const getValidators = FileSystemMetadataProviderWizard.getValidators; + + const requiredValidUntilFilter = { + maxValidityInterval: 1, + '@type': 'RequiredValidUntil' + }; + + const signatureValidationFilter = { + requireSignedRoot: true, + certificateFile: 'foo', + '@type': 'SignatureValidation' + }; + + const entityRoleWhiteListFilter = { + retainedRoles: ['foo', 'bar'], + removeRolelessEntityDescriptors: true, + removeEmptyEntitiesDescriptors: true, + '@type': 'EntityRoleWhiteList' + }; + + describe('parser', () => { + it('should transform the filters object to an array', () => { + let model = { + name: 'foo', + '@type': 'FileSystemMetadataProvider', + enabled: true, + resourceId: 'foo', + metadataFilters: { + RequiredValidUntil: requiredValidUntilFilter, + SignatureValidation: signatureValidationFilter, + EntityRoleWhiteList: entityRoleWhiteListFilter + } + }; + expect( + parser(model) + ).toEqual( + { + ...model, + metadataFilters: [ + requiredValidUntilFilter, + signatureValidationFilter, + entityRoleWhiteListFilter + ] + } + ); + }); + + it('should return the object if metadataFilters is not provided', () => { + let model = { + name: 'foo', + '@type': 'FileSystemMetadataProvider', + enabled: true, + resourceId: 'foo' + }; + expect( + parser(model) + ).toEqual( + model + ); + }); + }); + + describe('formatter', () => { + it('should transform the filters object to an array', () => { + let model = { + name: 'foo', + '@type': 'FileSystemMetadataProvider', + enabled: true, + resourceId: 'foo', + metadataFilters: [ + requiredValidUntilFilter, + signatureValidationFilter, + entityRoleWhiteListFilter + ] + }; + expect( + formatter(model) + ).toEqual( + { + ...model, + metadataFilters: { + RequiredValidUntil: requiredValidUntilFilter, + SignatureValidation: signatureValidationFilter, + EntityRoleWhiteList: entityRoleWhiteListFilter + } + } + ); + }); + + it('should return the object if metadataFilters is not provided', () => { + let model = { + name: 'foo', + '@type': 'FileSystemMetadataProvider', + enabled: true, + resourceId: 'foo' + }; + expect( + formatter(model) + ).toEqual( + model + ); + }); + }); + + describe('getValidators method', () => { + it('should return a list of validators for the ngx-schema-form', () => { + expect(Object.keys(getValidators([]))).toEqual([ + '/', + '/name', + '/xmlId' + ]); + }); + }); +}); diff --git a/ui/src/app/metadata/provider/model/local-dynamic.provider.form.spec.ts b/ui/src/app/metadata/provider/model/local-dynamic.provider.form.spec.ts new file mode 100644 index 000000000..3275f2f31 --- /dev/null +++ b/ui/src/app/metadata/provider/model/local-dynamic.provider.form.spec.ts @@ -0,0 +1,120 @@ +import { LocalDynamicMetadataProviderWizard } from './local-dynamic.provider.form'; + +describe('LocalDynamicMetadataProviderWizard', () => { + + const parser = LocalDynamicMetadataProviderWizard.parser; + const formatter = LocalDynamicMetadataProviderWizard.formatter; + const getValidators = LocalDynamicMetadataProviderWizard.getValidators; + + const requiredValidUntilFilter = { + maxValidityInterval: 1, + '@type': 'RequiredValidUntil' + }; + + const signatureValidationFilter = { + requireSignedRoot: true, + certificateFile: 'foo', + '@type': 'SignatureValidation' + }; + + const entityRoleWhiteListFilter = { + retainedRoles: ['foo', 'bar'], + removeRolelessEntityDescriptors: true, + removeEmptyEntitiesDescriptors: true, + '@type': 'EntityRoleWhiteList' + }; + + describe('parser', () => { + it('should transform the filters object to an array', () => { + let model = { + name: 'foo', + '@type': 'LocalDynamicMetadataResolver', + enabled: true, + resourceId: 'foo', + metadataFilters: { + RequiredValidUntil: requiredValidUntilFilter, + SignatureValidation: signatureValidationFilter, + EntityRoleWhiteList: entityRoleWhiteListFilter + } + }; + expect( + parser(model) + ).toEqual( + { + ...model, + metadataFilters: [ + requiredValidUntilFilter, + signatureValidationFilter, + entityRoleWhiteListFilter + ] + } + ); + }); + + it('should return the object if metadataFilters is not provided', () => { + let model = { + name: 'foo', + '@type': 'LocalDynamicMetadataResolver', + enabled: true, + resourceId: 'foo' + }; + expect( + parser(model) + ).toEqual( + model + ); + }); + }); + + describe('formatter', () => { + it('should transform the filters object to an array', () => { + let model = { + name: 'foo', + '@type': 'LocalDynamicMetadataResolver', + enabled: true, + resourceId: 'foo', + metadataFilters: [ + requiredValidUntilFilter, + signatureValidationFilter, + entityRoleWhiteListFilter + ] + }; + expect( + formatter(model) + ).toEqual( + { + ...model, + metadataFilters: { + RequiredValidUntil: requiredValidUntilFilter, + SignatureValidation: signatureValidationFilter, + EntityRoleWhiteList: entityRoleWhiteListFilter + } + } + ); + }); + + it('should return the object if metadataFilters is not provided', () => { + let model = { + name: 'foo', + '@type': 'LocalDynamicMetadataResolver', + enabled: true, + resourceId: 'foo' + }; + expect( + formatter(model) + ).toEqual( + model + ); + }); + }); + + describe('getValidators method', () => { + it('should return a list of validators for the ngx-schema-form', () => { + expect(Object.keys(getValidators([]))).toEqual([ + '/', + '/name', + '/xmlId' + ]); + }); + }); +});