import { IUserSelection } from '@/application/Context/State/Selection/IUserSelection'; import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript'; import { IScript } from '@/domain/IScript'; import { IEventSource } from '@/infrastructure/Events/IEventSource'; import { EventSource } from '@/infrastructure/Events/EventSource'; export class UserSelectionStub implements IUserSelection { public readonly changed: IEventSource = new EventSource< readonly SelectedScript[]>(); public selectedScripts: readonly SelectedScript[] = []; constructor(private readonly allScripts: readonly IScript[]) { } public withSelectedScripts(selectedScripts: readonly SelectedScript[]) { this.selectedScripts = selectedScripts; } public areAllSelected(): boolean { throw new Error('Method not implemented.'); } public isAnySelected(): boolean { throw new Error('Method not implemented.'); } public removeAllInCategory(): void { throw new Error('Method not implemented.'); } public addOrUpdateAllInCategory(): void { throw new Error('Method not implemented.'); } public addSelectedScript(): void { throw new Error('Method not implemented.'); } public addOrUpdateSelectedScript(): void { throw new Error('Method not implemented.'); } public removeSelectedScript(): void { throw new Error('Method not implemented.'); } public selectOnly(scripts: ReadonlyArray): void { this.selectedScripts = scripts.map((s) => new SelectedScript(s, false)); } public isSelected(): boolean { throw new Error('Method not implemented.'); } public selectAll(): void { this.selectOnly(this.allScripts); } public deselectAll(): void { this.selectedScripts = []; } }