Add tests for partnership workflow, middleman adaptation and idea notifications; extract reusable test stubs into separate files; add architecture guard forbidding object-valued dictionaries in data contracts.
39 lines
1.4 KiB
C#
39 lines
1.4 KiB
C#
using TarninaHub.Application.Abstractions;
|
|
using TarninaHub.Application.Dtos;
|
|
|
|
namespace TarninaHub.Tests.Stubs;
|
|
|
|
/// <summary>Configurable IInnovationService stub for controller tests.</summary>
|
|
public sealed class StubInnovationService : IInnovationService
|
|
{
|
|
public Task<IReadOnlyList<InnovationResponse>> ListAsync(
|
|
string? challengeId,
|
|
string? stage,
|
|
string? query,
|
|
bool onlyPublished,
|
|
CancellationToken cancellationToken) => Task.FromResult<IReadOnlyList<InnovationResponse>>([]);
|
|
|
|
public Task<InnovationResponse?> GetAsync(string innovationId, CancellationToken cancellationToken) =>
|
|
Task.FromResult<InnovationResponse?>(null);
|
|
|
|
public Task<InnovationResponse> CreateAsync(
|
|
InnovationRequest request,
|
|
CancellationToken cancellationToken) => Task.FromResult(new InnovationResponse(
|
|
"innovation:new",
|
|
request.Title,
|
|
request.Summary ?? string.Empty,
|
|
request.Description ?? string.Empty,
|
|
request.ChallengeId,
|
|
request.Stage,
|
|
request.Cost,
|
|
request.Contact,
|
|
request.Media ?? [],
|
|
request.Published,
|
|
DateTimeOffset.UtcNow));
|
|
|
|
public Task<InnovationResponse?> UpdateAsync(
|
|
string innovationId,
|
|
InnovationRequest request,
|
|
CancellationToken cancellationToken) => Task.FromResult<InnovationResponse?>(null);
|
|
}
|