feature/upgrade #12

Merged
manuel merged 67 commits from feature/upgrade into master 2024-01-28 00:13:54 +01:00
2 changed files with 31 additions and 6 deletions
Showing only changes of commit 2b08ab1b58 - Show all commits

View file

@ -1,15 +1,40 @@
import { TestBed, inject } from '@angular/core/testing'; import {inject, TestBed} from '@angular/core/testing';
import { ConverterRegistryService } from './converter-registry.service'; 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', () => { describe('ConverterRegistryService', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
providers: [ConverterRegistryService] providers: [
ConverterRegistryService,
{provide: NativeLibraryWrapperService, useValue: createSpyObj(['punycode', 'quotedPrintable', 'utf8'])}
]
}); });
}); });
it('should be created', inject([ConverterRegistryService], (service: ConverterRegistryService) => { it('should be created', inject([ConverterRegistryService], (service: ConverterRegistryService) => {
expect(service).toBeTruthy(); 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!`);
}));
}); });

View file

@ -7,9 +7,9 @@ import * as NativeUtf8 from 'utf8';
providedIn: 'root' providedIn: 'root'
}) })
export class NativeLibraryWrapperService { export class NativeLibraryWrapperService {
public utf8: Utf8; public readonly utf8: Utf8;
public quotedPrintable: QuotedPrintable; public readonly quotedPrintable: QuotedPrintable;
public punycode: Punycode; public readonly punycode: Punycode;
constructor() { constructor() {
this.utf8 = NativeUtf8; this.utf8 = NativeUtf8;