Skip to content

Commit

Permalink
Notes
Browse files Browse the repository at this point in the history
  • Loading branch information
aritchie committed Jun 1, 2024
1 parent 6d8a8d9 commit 6d617c1
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 44 deletions.
4 changes: 2 additions & 2 deletions src/Shiny.Mediator/IRequestHandler.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
namespace Shiny.Mediator;

public interface IRequestHandler<in TRequest> where TRequest : IRequest
public interface IRequestHandler<in TRequest> where TRequest : notnull, IRequest
{
Task Handle(TRequest request, CancellationToken cancellationToken);
}


public interface IRequestHandler<in TRequest, TResult> where TRequest : IRequest<TResult>
public interface IRequestHandler<in TRequest, TResult> where TRequest : notnull, IRequest<TResult>
{
Task<TResult> Handle(TRequest request, CancellationToken cancellationToken);
}
85 changes: 43 additions & 42 deletions tests/Shiny.Mediator.Tests/SourceGeneratorTests.cs
Original file line number Diff line number Diff line change
@@ -1,42 +1,43 @@
// using FluentAssertions;
// using Shiny.Mediator;
//
// namespace Shiny.Mediator.Tests;
//
// public class SourceGeneratorTests
// {
// [Fact]
// public void DidRegister()
// {
// var services = new ServiceCollection();
// services.AddShinyMediator();
// // TODO: source gen call
// var sp = services.BuildServiceProvider();
//
// sp.GetService<IEventHandler<SourceGenEvent>>().Should().NotBeNull("Event Handler not found");
// sp.GetService<IRequestHandler<SourceGenRequest>>().Should().NotBeNull("Request Handler not found");
// sp.GetService<IRequestHandler<SourceGenResponseRequest, SourceGenResponse>>().Should().NotBeNull("Request/Response Handler not found");
// }
// }
//
// public record SourceGenRequest : IRequest;
// public record SourceGenResponseRequest : IRequest<SourceGenResponse>;
// public record SourceGenResponse;
// public record SourceGenEvent : IEvent;
//
// [RegisterHandler]
// public class SourceGenRequestHandler : IRequestHandler<SourceGenRequest>
// {
// public Task Handle(SourceGenRequest request, CancellationToken cancellationToken) => Task.CompletedTask;
// }
// [RegisterHandler]
// public class SourceGenResponseRequestHandler : IRequestHandler<SourceGenResponseRequest, SourceGenResponse>
// {
// public Task<SourceGenResponse> Handle(SourceGenResponseRequest request, CancellationToken cancellationToken)
// => Task.FromResult(new SourceGenResponse());
// }
// [RegisterHandler]
// public class SourceGenEventHandler : IEventHandler<SourceGenEvent>
// {
// public Task Handle(SourceGenEvent @event, CancellationToken cancellationToken) => Task.CompletedTask;
// }
using FluentAssertions;
using Shiny.Mediator;

namespace Shiny.Mediator.Tests;

public class SourceGeneratorTests
{
[Fact]
public void DidRegister()
{
var services = new ServiceCollection();
services.AddShinyMediator();
// TODO: source gen call
// services.AddDiscoveredMediatorHandlers();
var sp = services.BuildServiceProvider();

sp.GetService<IEventHandler<SourceGenEvent>>().Should().NotBeNull("Event Handler not found");
sp.GetService<IRequestHandler<SourceGenRequest>>().Should().NotBeNull("Request Handler not found");
sp.GetService<IRequestHandler<SourceGenResponseRequest, SourceGenResponse>>().Should().NotBeNull("Request/Response Handler not found");
}
}

public record SourceGenRequest : IRequest;
public record SourceGenResponseRequest : IRequest<SourceGenResponse>;
public record SourceGenResponse;
public record SourceGenEvent : IEvent;

[RegisterHandler]
public class SourceGenRequestHandler : IRequestHandler<SourceGenRequest>
{
public Task Handle(SourceGenRequest request, CancellationToken cancellationToken) => Task.CompletedTask;
}
[RegisterHandler]
public class SourceGenResponseRequestHandler : IRequestHandler<SourceGenResponseRequest, SourceGenResponse>
{
public Task<SourceGenResponse> Handle(SourceGenResponseRequest request, CancellationToken cancellationToken)
=> Task.FromResult(new SourceGenResponse());
}
[RegisterHandler]
public class SourceGenEventHandler : IEventHandler<SourceGenEvent>
{
public Task Handle(SourceGenEvent @event, CancellationToken cancellationToken) => Task.CompletedTask;
}

0 comments on commit 6d617c1

Please sign in to comment.