Some checks failed
CI / lint-typecheck (pull_request) Failing after 4m50s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped
74 lines
4.2 KiB
TypeScript
74 lines
4.2 KiB
TypeScript
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
|
import { InMemoryAvatarRepository } from '@adapters/media/persistence/inmemory/InMemoryAvatarRepository';
|
|
import { InMemoryAvatarGenerationRepository } from '@adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository';
|
|
import { InMemoryMediaRepository } from '@adapters/media/persistence/inmemory/InMemoryMediaRepository';
|
|
import { InMemoryMediaStorageAdapter } from '@adapters/media/ports/InMemoryMediaStorageAdapter';
|
|
import { InMemoryFaceValidationAdapter } from '@adapters/media/ports/InMemoryFaceValidationAdapter';
|
|
import { InMemoryAvatarGenerationAdapter } from '@adapters/media/ports/InMemoryAvatarGenerationAdapter';
|
|
import { InMemoryMediaEventPublisher } from '@adapters/media/events/InMemoryMediaEventPublisher';
|
|
import { GetAvatarUseCase } from '@core/media/application/use-cases/GetAvatarUseCase';
|
|
import { UpdateAvatarUseCase } from '@core/media/application/use-cases/UpdateAvatarUseCase';
|
|
import { RequestAvatarGenerationUseCase } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
|
|
import { SelectAvatarUseCase } from '@core/media/application/use-cases/SelectAvatarUseCase';
|
|
import { GetUploadedMediaUseCase } from '@core/media/application/use-cases/GetUploadedMediaUseCase';
|
|
import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase';
|
|
import { UploadMediaUseCase } from '@core/media/application/use-cases/UploadMediaUseCase';
|
|
import { GetMediaUseCase } from '@core/media/application/use-cases/GetMediaUseCase';
|
|
|
|
export class MediaTestContext {
|
|
public readonly logger: ConsoleLogger;
|
|
public readonly avatarRepository: InMemoryAvatarRepository;
|
|
public readonly avatarGenerationRepository: InMemoryAvatarGenerationRepository;
|
|
public readonly mediaRepository: InMemoryMediaRepository;
|
|
public readonly mediaStorage: InMemoryMediaStorageAdapter;
|
|
public readonly faceValidation: InMemoryFaceValidationAdapter;
|
|
public readonly avatarGeneration: InMemoryAvatarGenerationAdapter;
|
|
public readonly eventPublisher: InMemoryMediaEventPublisher;
|
|
|
|
public readonly getAvatarUseCase: GetAvatarUseCase;
|
|
public readonly updateAvatarUseCase: UpdateAvatarUseCase;
|
|
public readonly requestAvatarGenerationUseCase: RequestAvatarGenerationUseCase;
|
|
public readonly selectAvatarUseCase: SelectAvatarUseCase;
|
|
public readonly getUploadedMediaUseCase: GetUploadedMediaUseCase;
|
|
public readonly deleteMediaUseCase: DeleteMediaUseCase;
|
|
public readonly uploadMediaUseCase: UploadMediaUseCase;
|
|
public readonly getMediaUseCase: GetMediaUseCase;
|
|
|
|
private constructor() {
|
|
this.logger = new ConsoleLogger();
|
|
this.avatarRepository = new InMemoryAvatarRepository(this.logger);
|
|
this.avatarGenerationRepository = new InMemoryAvatarGenerationRepository(this.logger);
|
|
this.mediaRepository = new InMemoryMediaRepository(this.logger);
|
|
this.mediaStorage = new InMemoryMediaStorageAdapter(this.logger);
|
|
this.faceValidation = new InMemoryFaceValidationAdapter(this.logger);
|
|
this.avatarGeneration = new InMemoryAvatarGenerationAdapter(this.logger);
|
|
this.eventPublisher = new InMemoryMediaEventPublisher(this.logger);
|
|
|
|
this.getAvatarUseCase = new GetAvatarUseCase(this.avatarRepository, this.logger);
|
|
this.updateAvatarUseCase = new UpdateAvatarUseCase(this.avatarRepository, this.logger);
|
|
this.requestAvatarGenerationUseCase = new RequestAvatarGenerationUseCase(
|
|
this.avatarGenerationRepository,
|
|
this.faceValidation,
|
|
this.avatarGeneration,
|
|
this.logger
|
|
);
|
|
this.selectAvatarUseCase = new SelectAvatarUseCase(this.avatarGenerationRepository, this.logger);
|
|
this.getUploadedMediaUseCase = new GetUploadedMediaUseCase(this.mediaStorage);
|
|
this.deleteMediaUseCase = new DeleteMediaUseCase(this.mediaRepository, this.mediaStorage, this.logger);
|
|
this.uploadMediaUseCase = new UploadMediaUseCase(this.mediaRepository, this.mediaStorage, this.logger);
|
|
this.getMediaUseCase = new GetMediaUseCase(this.mediaRepository, this.logger);
|
|
}
|
|
|
|
public static create(): MediaTestContext {
|
|
return new MediaTestContext();
|
|
}
|
|
|
|
public reset(): void {
|
|
this.avatarRepository.clear();
|
|
this.avatarGenerationRepository.clear();
|
|
this.mediaRepository.clear();
|
|
this.mediaStorage.clear();
|
|
this.eventPublisher.clear();
|
|
}
|
|
}
|