public void EventWithParametersShouldAssignMessageIdWhenCreated() { // Arrange / Act var subject = new CqrsCommand <TestParameters>(_params, Constants.CorrelationId, Constants.CausationId); subject.MessageId.Should().NotBeEmpty(); }
public void EventWithParametersShouldAssignCorrelationIdWhenCreated() { // Arrange / Act var subject = new CqrsCommand <TestParameters>(_params, Constants.CorrelationId, Constants.CausationId); // Assert subject.CorrelationId.Should().Be(Constants.CorrelationId); }
public static ServiceBusMessage From(CqrsCommand command) { var result = new ServiceBusMessage { Message = new Message(command.ToUtf8Json()) }; result.Message.UserProperties.Add(MsgTypeName, command.GetType().FullName); return(result); }
public void EventWithParametersShouldAssignParameters() { // Arrange / Act var subject = new CqrsCommand <TestParameters>(_params, Constants.CorrelationId, Constants.CausationId); // Assert subject.Params.Should().NotBeNull(); subject.Params.Should().BeEquivalentTo(_params); }
private async Task RegisterUser() { using var activity = _activitySource.StartActivity($"{nameof(RegisterUser)}"); { var parameters = new RegisterUserCommandParameters("Bilbo", "Baggins"); var command = new CqrsCommand <RegisterUserCommandParameters>(parameters, SequentialGuid.NewGuid().ToString()); await _messageSender.Send(command); } }
public async Task HandlerShouldPublishEventWhenHandling() { // Arrange var testCommand = new CqrsCommand <TestParameters>(new TestParameters(), Constants.CorrelationId); // Act await _subject.HandleCommand(testCommand, CancellationToken.None); // Assert await _messageSender.Received(1).Publish(Arg.Any <CqrsEvent <TestParameters> >(), Arg.Is(CancellationToken.None)); }
public async Task MessageSenderCallsCorrectHandlerForCommand() { // Arrange var command = new CqrsCommand <TestParameters>(new TestParameters(nameof(MessageSenderCallsCorrectHandlerForCommand)), Constants.CorrelationId); // Act await Subject.Send(command, CancellationToken.None); // Assert await Verifier.Received(1).Receive(Arg.Is(command.Params.Value)); }
public async Task MessageSenderThrowsWhenDependencyResolutionFails() { // Arrange var parameters = new MultipleHandlersParameters(); var command = new CqrsCommand <MultipleHandlersParameters>(parameters, Constants.CorrelationId); // Act Func <Task> subjectResult = async() => { await _subject.Send(command, CancellationToken.None); }; // Assert await subjectResult.Should().ThrowAsync <HandlerNotFoundException>(); }
public async Task MessageSenderThrowsWhenCommandHandlerDoesNotExist() { // Arrange var command = new CqrsCommand(Constants.CorrelationId); // Act Func <Task> subjectResult = async() => { await Subject.Send(command, CancellationToken.None); }; // Assert await subjectResult.Should().ThrowAsync <HandlerNotFoundException>() .WithMessage($"No concrete handlers for type '{typeof(ICqrsCommandHandler<CqrsCommand>).AssemblyQualifiedName}' could be found."); }
public async Task MessageSenderThrowsWhenMultipleCommandHandlersResolved() { // Arrange var parameters = new MultipleHandlersParameters(); var command = new CqrsCommand <MultipleHandlersParameters>(parameters, Constants.CorrelationId); // Act Func <Task> subjectResult = async() => { await Subject.Send(command, CancellationToken.None); }; // Assert await subjectResult.Should().ThrowAsync <MultipleCommandHandlersDefinedException>() .WithMessage($"Multiple command handlers for type '{typeof(ICqrsCommandHandler<CqrsCommand<MultipleHandlersParameters>>).AssemblyQualifiedName}' were found. Only one handler can exist for a command."); }
public async Task MessageSenderCallsCorrectHandlerForCommandWithResponse() { // Arrange var command = new CqrsCommand <TestParameters, CqrsCommandResponse <string> >(new TestParameters(nameof(MessageSenderCallsCorrectHandlerForCommandWithResponse)), Constants.CorrelationId); // Act var response = await Subject.Send(command, CancellationToken.None); // Assert await Verifier.Received(1).Receive(Arg.Is(command.Params.Value)); response.Payload.Should().NotBeNull(); response.Payload.Should().Be(nameof(TestCqrsCommandWithResponseHandler)); }
public override async Task HandleCommand(CqrsCommand <MessageParameters> cqrsCommand, CancellationToken cancellationToken = default) { var @event = new SendCommandReceived(cqrsCommand.CorrelationId, cqrsCommand.MessageId); await MessageSender.Publish(@event, cancellationToken); }
public override async Task HandleCommand(CqrsCommand <TestParameters> cqrsCommand, CancellationToken cancellationToken = default) => await Task.CompletedTask;
public override Task HandleCommand(CqrsCommand <MultipleHandlersParameters> cqrsCommand, CancellationToken cancellationToken = default) => throw new NotImplementedException();
public override async Task HandleCommand(CqrsCommand <TestParameters> cqrsCommand, CancellationToken cancellationToken = default) { await MessageSender.Publish(new CqrsEvent <TestParameters>(cqrsCommand.Params, cqrsCommand.CorrelationId, cqrsCommand.MessageId), cancellationToken); await Task.CompletedTask; }