import { IApplicationCode } from '@/application/Context/State/Code/IApplicationCode' ; import { IUserFilter } from '@/application/Context/State/Filter/IUserFilter' ; import { ICategoryCollectionState } from '@/application/Context/State/ICategoryCollectionState' ; import { OperatingSystem } from '@/domain/OperatingSystem' ; import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript' ; import { IScript } from '@/domain/IScript' ; import { CategoryCollectionStub } from './CategoryCollectionStub' ; import { UserSelectionStub } from './UserSelectionStub' ; import { UserFilterStub } from './UserFilterStub' ; import { ApplicationCodeStub } from './ApplicationCodeStub' ; import { CategoryStub } from './CategoryStub' ; export class CategoryCollectionStateStub implements ICategoryCollectionState { public readonly code : IApplicationCode = new ApplicationCodeStub ( ) ; public readonly filter : IUserFilter = new UserFilterStub ( ) ; public readonly os = OperatingSystem . Windows ; public readonly collection : CategoryCollectionStub ; public readonly selection : UserSelectionStub ; constructor ( readonly allScripts ) { this . selection = new UserSelectionStub ( allScripts ) ; this . collection = new CategoryCollectionStub ( ) . withOs ( this . os ) . withTotalScripts ( this . allScripts . length ) . withAction ( new CategoryStub ( 0 ) . withScripts ( ... allScripts ) ) ; } public withSelectedScripts ( initialScripts ) { this . selection . withSelectedScripts ( initialScripts ) ; return this ; } }