public void ShouldBeEqualIfMessageTypeIsTheSame() { MessageHandlerDelegate handler1 = NullMessageHandlerDelegate.Instance; MessageHandlerDelegate handler2 = NullMessageHandlerDelegate.Instance; handler1.Should().BeSameAs(handler2); }
public void ShouldNotBeEqualToANewEmptyInstance() { MessageHandlerDelegate handler1 = NullMessageHandlerDelegate.Instance; MessageHandlerDelegate handler2 = (m, ct) => Task.CompletedTask; MessageHandlerDelegate handler3 = (m, ct) => Task.CompletedTask; handler1.Should().NotBeSameAs(handler2); handler2.Should().NotBeSameAs(handler3); }
public void ShouldResolveTheRegisteredMessageHandler() { // Given IMessageHandlerResolver resolver = CreateSingleMessageHandlerResolver(registration => { registration.Register <TestMessage>((message, ct) => Task.CompletedTask); }); // When MessageHandlerDelegate handler = resolver.ResolveMessageHandler(typeof(TestMessage)); // Then handler.Should().NotBe(NullMessageHandlerDelegate.Instance, "registered message handler delegate should be resolved."); }
public void ShouldRegisterCommandAsyncHandler() { var commandHandler = new TestCommandHandler(_outputHelper); var registration = new SingleMessageHandlerRegistration(); registration.RegisterCommandHandler(() => commandHandler.AsCommandAsyncHandler <TestCommand>()); IMessageHandlerResolver resolver = registration.BuildMessageHandlerResolver(); MessageHandlerDelegate commandHandlerDelegate = resolver.ResolveMessageHandler(typeof(TestCommand)); commandHandlerDelegate.Should().NotBeNull(); // Delegate should invoke the actual command handler - TestCommandHandler. commandHandlerDelegate.Invoke(new TestCommand()); commandHandler.HandledCommands.Should().HaveCount(1); commandHandler.HasHandledCommand <TestCommand>().Should().BeTrue(); }
public async Task ShouldRegisterAllMethodsOfTypeThatIsMarkedWithCommandHandlerAttribute() { var commandHandler = new TestAttributedCommandHandler(_outputHelper); var registration = new SingleMessageHandlerRegistration(); registration.RegisterCommandHandlersByAttribute(() => commandHandler); IMessageHandlerResolver resolver = registration.BuildMessageHandlerResolver(); MessageHandlerDelegate commandHandlerDelegate = resolver.ResolveMessageHandler(typeof(TestCommand)); commandHandlerDelegate.Should().NotBeNull(); // Delegate should invoke the actual command handler - TestAttributedCommandHandler. await commandHandlerDelegate.Invoke(new TestCommand()); commandHandler.HandledCommands.Should().HaveCount(1); commandHandler.HasHandledCommand <TestCommand>().Should().BeTrue(); }
public async Task ShouldRegisterAllCommandHandlerAttributeMethods() { var commandHandler = new TestAttributedCommandHandler(_outputHelper); // Get methods marked with [CommandHandler] attribute. IEnumerable <CommandHandlerAttributeMethod> methods = CommandHandlerAttributeMethod.FromType(() => commandHandler); var registration = new SingleMessageHandlerRegistration(); registration.RegisterCommandHandlersByAttribute(methods); IMessageHandlerResolver resolver = registration.BuildMessageHandlerResolver(); MessageHandlerDelegate commandHandlerDelegate = resolver.ResolveMessageHandler(typeof(TestCommand)); commandHandlerDelegate.Should().NotBeNull(); // Delegate should invoke the actual command handler - TestAttributedCommandHandler. await commandHandlerDelegate.Invoke(new TestCommand()); commandHandler.HandledCommands.Should().HaveCount(1); commandHandler.HasHandledCommand <TestCommand>().Should().BeTrue(); }