Пример #1
0
        public async Task Create_order_command()
        {
            //Arrange's
            var uow                 = new Mock <IUnitOfWork>();
            var mediator            = new Mock <IMediatorHandler>();
            var orderRepository     = new Mock <IOrderRepository>();
            var notificationHandler = new Mock <DomainNotificationHandler>();
            var logger              = new Mock <ILogger <CreateOrderCommand> >();
            var handler             = new OrdersCommandHandler(mediator.Object, notificationHandler.Object, orderRepository.Object, logger.Object);

            //Stub's
            orderRepository.SetupGet(x => x.UnitOfWork).Returns(uow.Object);

            var command = new CreateOrderCommand()
            {
                Address = Builder <OrderAddressMessageResponse> .CreateNew().Build(),
                Items   = Builder <OrderItemMessageResponse> .CreateListOfSize(1).Build().ToArray(),
                UserId  = Guid.NewGuid()
            };

            //Act
            await handler.Handle(command, CancellationToken.None);

            //Assert's
            orderRepository.Verify(x => x.Save(It.Is <Order>(it => !string.IsNullOrEmpty(it.OrderNumber))), Times.Once);
            orderRepository.Verify(x => x.UnitOfWork.SaveEntitiesAsync(CancellationToken.None), Times.Once);
            mediator.Verify(x => x.RaiseEvent(It.IsAny <DomainNotification>()), Times.Never());
        }
Пример #2
0
        public async Task Create_order_command_Invalid_contract_items(CreateOrderCommand command)
        {
            //Arrange's
            var uow                 = new Mock <IUnitOfWork>();
            var mediator            = new Mock <IMediatorHandler>();
            var orderRepository     = new Mock <IOrderRepository>();
            var notificationHandler = new Mock <DomainNotificationHandler>();
            var logger              = new Mock <ILogger <CreateOrderCommand> >();
            var handler             = new OrdersCommandHandler(mediator.Object, notificationHandler.Object, orderRepository.Object, logger.Object);

            //Stub's
            orderRepository.SetupGet(x => x.UnitOfWork).Returns(uow.Object);

            //Act
            await handler.Handle(command, CancellationToken.None);

            //Assert's
            orderRepository.Verify(x => x.Save(It.Is <Order>(it => !string.IsNullOrEmpty(it.OrderNumber))), Times.Never);
            orderRepository.Verify(x => x.UnitOfWork.SaveEntitiesAsync(CancellationToken.None), Times.Never);
            mediator.Verify(x => x.RaiseEvent(It.IsAny <DomainNotification>()));
        }