41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import {inject, TestBed} from '@angular/core/testing';
|
|
|
|
import {ConverterRegistryService} from './converter-registry.service';
|
|
import {NativeLibraryWrapperService} from './native-library-wrapper.service';
|
|
import {Converter} from './converter/converter';
|
|
import {Base64Decoder} from './converter/base64-decoder';
|
|
import createSpyObj = jasmine.createSpyObj;
|
|
|
|
describe('ConverterRegistryService', () => {
|
|
beforeEach(() => {
|
|
TestBed.configureTestingModule({
|
|
providers: [
|
|
ConverterRegistryService,
|
|
{provide: NativeLibraryWrapperService, useValue: createSpyObj(['punycode', 'quotedPrintable', 'utf8'])}
|
|
]
|
|
});
|
|
});
|
|
|
|
it('should be created', inject([ConverterRegistryService], (service: ConverterRegistryService) => {
|
|
expect(service).toBeTruthy();
|
|
}));
|
|
|
|
it('should register converters upon creation', inject([ConverterRegistryService], (service: ConverterRegistryService) => {
|
|
expect(service.getAllConverters()).toBeTruthy();
|
|
expect(service.getAllConverters().length).toBeGreaterThan(0);
|
|
}));
|
|
|
|
it('must not allow the same converter ID to be regisgered more than once',
|
|
inject([ConverterRegistryService], (service: ConverterRegistryService) => {
|
|
// arrange
|
|
const duplicateConverter: Converter = new Base64Decoder();
|
|
const duplicateConverterId = duplicateConverter.getId();
|
|
expect(() => {
|
|
// act
|
|
(service as any).registerConverter(duplicateConverter);
|
|
})
|
|
// assert
|
|
.toThrowError(`Converter-ID ${duplicateConverterId} is already registered!`);
|
|
}));
|
|
});
|