コード例 #1
0
        public async Task Handle_ExceptionIsThrown_ReturnFalse(
            [Frozen] Mock <IRequestManager> requestManagerMock,
            [Frozen] Mock <IMediator> mediatorMock,
            IdentifiedCommandHandler <CreateSalesOrderCommand, bool> sut,
            IdentifiedCommand <CreateSalesOrderCommand, bool> command
            )
        {
            //Arrange
            requestManagerMock.Setup(_ => _.ExistAsync(It.IsAny <Guid>()))
            .ReturnsAsync(false);
            mediatorMock.Setup(_ => _.Send <bool>(
                                   It.IsAny <CreateSalesOrderCommand>(),
                                   It.IsAny <CancellationToken>()
                                   ))
            .Throws <Exception>();

            //Act
            var result = await sut.Handle(command, CancellationToken.None);

            //Assert
            result.Should().Be(false);
            requestManagerMock.Verify(_ => _.CreateRequestForCommandAsync <CreateSalesOrderCommand>(
                                          It.IsAny <Guid>())
                                      );
        }
        public async void IdentifiedCommandHandler_ReturnNull_IfDuplication()
        {
            var requestManager = new Mock <IRequestManager <Guid> >();

            requestManager.Setup(m => m.EnsureNotExistsAsync(It.IsAny <Guid>()));

            var mediator = new Mock <IMediator>();

            var handler = new IdentifiedCommandHandler <Guid, string, TestRequest>(mediator.Object, requestManager.Object);

            var command = new IdentifiedCommand <Guid, string, TestRequest>(Guid.NewGuid(), new TestRequest());

            var result = await handler.Handle(command);

            Assert.Null(result);
        }
コード例 #3
0
        public async Task Handler_should_not_send_command_when_delivery_already_exists()
        {
            // Arrange
            var fakeGuid            = Guid.NewGuid();
            var fakeDeliveryCommand = new IdentifiedCommand <CreateDeliveryCommand, bool>(FakeDeliveryRequest(), fakeGuid);

            _requestManager.Setup(x => x.ExistAsync(It.IsAny <Guid>()))
            .Returns(Task.FromResult(true));

            // Act
            var handler           = new IdentifiedCommandHandler <CreateDeliveryCommand, bool>(_mediator.Object, _requestManager.Object, _logger.Object);
            var cancellationToken = new CancellationToken();
            var result            = await handler.Handle(fakeDeliveryCommand, cancellationToken);

            // Assert
            result.Should().BeFalse();
            _mediator.Verify(x => x.Send(It.IsAny <IRequest <bool> >(), default), Times.Never());
        }
        public async void IdentifiedCommandHandler_Process_IfNew()
        {
            var requestManager = new Mock <IRequestManager <Guid> >();

            requestManager.Setup(m => m.EnsureNotExistsAsync(It.IsAny <Guid>()));
            requestManager.Setup(m => m.CreateRequestRecordAsync(It.IsAny <Guid>())).Returns(Task.CompletedTask);

            var mediator = new Mock <IMediator>();

            mediator.Setup(m => m.Send(It.IsAny <TestRequest>(), It.IsAny <CancellationToken>())).ReturnsAsync("Test");

            var handler = new IdentifiedCommandHandler <Guid, string, TestRequest>(mediator.Object, requestManager.Object);

            var command = new IdentifiedCommand <Guid, string, TestRequest>(Guid.NewGuid(), new TestRequest());

            var result = await handler.Handle(command);

            Assert.Equal("Test", result);
        }
コード例 #5
0
        public async Task Handler_sends_no_command_when_order_already_exists()
        {
            // Arrange
            var fakeGuid     = Guid.NewGuid();
            var fakeOrderCmd = new IdentifiedCommand <CreateOrderCommand, bool>(FakeOrderRequest(), fakeGuid);

            _requestManager.Setup(x => x.ExistAsync(It.IsAny <Guid>()))
            .Returns(Task.FromResult(true));

            _mediator.Setup(x => x.Send(It.IsAny <IRequest <bool> >(), default(System.Threading.CancellationToken)))
            .Returns(Task.FromResult(true));

            //Act
            var handler  = new IdentifiedCommandHandler <CreateOrderCommand, bool>(_mediator.Object, _requestManager.Object);
            var cltToken = new System.Threading.CancellationToken();
            var result   = await handler.Handle(fakeOrderCmd, cltToken);

            //Assert
            Assert.False(result);
            _mediator.Verify(x => x.Send(It.IsAny <IRequest <bool> >(), default(System.Threading.CancellationToken)), Times.Never());
        }
コード例 #6
0
        public async Task Handler_sends_command_when_audit_not_exist()
        {
            // Arrange
            var fakeGuid     = Guid.NewGuid();
            var fakeAuditCmd = new IdentifiedCommand <CreateAuditCommand, long>(FakeAuditRequest(), fakeGuid);

            _requestManager.Setup(x => x.ExistAsync(It.IsAny <Guid>()))
            .Returns(Task.FromResult(false));

            _mediator.Setup(x => x.Send(It.IsAny <IRequest <long> >(), default(CancellationToken)))
            .Returns(Task.FromResult(10L));

            //Act
            var handler  = new IdentifiedCommandHandler <CreateAuditCommand, long>(_mediator.Object, _requestManager.Object, _loggerMock.Object);
            var cltToken = new CancellationToken();
            var result   = await handler.Handle(fakeAuditCmd, cltToken);

            //Assert
            Assert.True(result == 10);
            _mediator.Verify(x => x.Send(It.IsAny <IRequest <long> >(), default(CancellationToken)), Times.Once());
        }