using TarninaHub.Application.Abstractions; using TarninaHub.Application.Dtos; namespace TarninaHub.Tests.Stubs; /// Configurable ISubmissionService stub for controller tests. public sealed class StubSubmissionService : ISubmissionService { public SubmissionResponse? Current { get; set; } public SubmissionResponse? UpdateResult { get; set; } public string? LastRequestedStatus { get; private set; } public Task CreateAsync( string authorId, CreateSubmissionRequest request, CancellationToken cancellationToken) => Task.FromResult(Current ?? throw new InvalidOperationException()); public Task> ListAsync( string viewerId, bool isStaff, string? status, int page, int pageSize, CancellationToken cancellationToken) => Task.FromResult( new PagedResponse([], page, pageSize, 0)); public Task GetAsync(string submissionId, CancellationToken cancellationToken) => Task.FromResult(Current); public Task UpdateStatusAsync( string submissionId, string newStatus, CancellationToken cancellationToken) { LastRequestedStatus = newStatus; return Task.FromResult(UpdateResult); } }