using TarninaHub.Application.Abstractions;
using TarninaHub.Application.Dtos;
namespace TarninaHub.Tests.Stubs;
/// Minimal IIdeaService stub for controller tests.
public sealed class StubIdeaService : IIdeaService
{
public IdeaResponse? Idea { get; set; }
public Task CreateAsync(string authorId, CreateIdeaRequest request, CancellationToken cancellationToken) =>
Task.FromResult(Idea ?? throw new InvalidOperationException());
public Task GetAsync(string ideaId, CancellationToken cancellationToken) =>
Task.FromResult(Idea);
public Task> ListForAuthorAsync(string authorId, CancellationToken cancellationToken) =>
Task.FromResult>(Idea is null ? [] : [Idea]);
public Task> ListDistinctAuthorIdsAsync(CancellationToken cancellationToken) =>
Task.FromResult>(Idea is null ? [] : [Idea.AuthorId]);
public Task UpdateAsync(string ideaId, UpdateIdeaRequest request, CancellationToken cancellationToken) =>
Task.FromResult(Idea);
public Task GetCardAsync(string ideaId, CancellationToken cancellationToken) =>
Task.FromResult(null);
public Task UpdateCardAsync(string ideaId, IdeaCardRequest request, CancellationToken cancellationToken) =>
Task.FromResult(null);
}