refactor to allow switching ICategoryCollection context #40

This commit is contained in:
undergroundwires
2021-01-05 22:28:38 +01:00
parent 3455a2ca6c
commit 2e40605d59
32 changed files with 897 additions and 232 deletions

View File

@@ -0,0 +1,28 @@
import { IApplication } from '@/domain/IApplication';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import { OperatingSystem } from '@/domain/OperatingSystem';
import { IProjectInformation } from '@/domain/IProjectInformation';
import { ProjectInformationStub } from './ProjectInformationStub';
export class ApplicationStub implements IApplication {
public info: IProjectInformation = new ProjectInformationStub();
public collections: ICategoryCollection[] = [ ];
public getCollection(operatingSystem: OperatingSystem): ICategoryCollection {
return this.collections.find((collection) => collection.os === operatingSystem);
}
public getSupportedOsList(): OperatingSystem[] {
return this.collections.map((collection) => collection.os);
}
public withCollection(collection: ICategoryCollection): ApplicationStub {
this.collections.push(collection);
return this;
}
public withProjectInformation(info: IProjectInformation): ApplicationStub {
this.info = info;
return this;
}
public withCollections(...collections: readonly ICategoryCollection[]): ApplicationStub {
this.collections.push(...collections);
return this;
}
}