예제 #1
0
        public async Task WhenOrderWithGivenIdDoesNotExistThenThrowNotFoundException()
        {
            var orderId    = Guid.NewGuid();
            var inputQuery = CreateQuery(orderId);

            _orderRepository.Setup(r => r.GetById(orderId))
            .ReturnsAsync(() => null);

            Func <Task> act = async() =>
                              await _getOrderByIdQueryHandler.Handle(inputQuery, default);

            await act.Should().ThrowAsync <NotFoundException>();
        }
        public async Task HandlingGetOrderByIdQuery_RetrievesOrderData()
        {
            var query = new GetOrderByIdQuery {
                Id = Guid.NewGuid()
            };

            _orderRepository.Setup(o => o.GetOrderById(query.Id)).ReturnsAsync(new OrderModel());

            var result = await _handler.Handle(query, new CancellationToken()).ConfigureAwait(false);

            _orderRepository.Verify(o => o.GetOrderById(query.Id), Times.Once);
            Assert.NotNull(result);
        }
예제 #3
0
        public async Task Handle_GivenNullRequest_ShouldTurnArgumentNullException()
        {
            // Arrange
            var sut = new GetOrderByIdQueryHandler(this.deletableEntityRepository);

            // Act & Assert
            await Should.ThrowAsync <ArgumentNullException>(sut.Handle(null, It.IsAny <CancellationToken>()));
        }
예제 #4
0
        public async Task Handle_GivenInvalidRequest_ShouldThrowNotFoundException()
        {
            // Arrange
            var query = new GetOrderByIdQuery {
                Id = 1000
            };
            var sut = new GetOrderByIdQueryHandler(this.deletableEntityRepository);

            // Act & Assert
            await Should.ThrowAsync <NotFoundException>(sut.Handle(query, It.IsAny <CancellationToken>()));
        }
예제 #5
0
        public void GetOrderById_ReturnOrder_Fail404NotFound()
        {
            OrderServiceMock.Setup(order => order.GetOrderById(It.IsAny <Guid>()));
            var query = new GetOrderByIdQueryHandler(OrderServiceMock.Object);

            var response = query.Handle(new GetOrderByIdQuery(Guid.NewGuid()), default);
            var result   = response.Result;

            Assert.AreEqual(StatusCodes.Status404NotFound, result.StatusCode);
            Assert.IsNotNull(result);
            Assert.IsInstanceOf <Response <OrderVm> >(result);
        }
예제 #6
0
        public void GetOrderById_ReturnOrder_Successful()
        {
            OrderServiceMock.Setup(order => order.GetOrderById(It.IsAny <Guid>())).Returns(GetOrder());
            var query = new GetOrderByIdQueryHandler(OrderServiceMock.Object);

            var response = query.Handle(new GetOrderByIdQuery(Guid.NewGuid()), default);
            var result   = response.Result.Data;

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <OrderVm>(result);
            Assert.AreEqual(1, result.ProductOrders.Count);
        }
예제 #7
0
        public async Task Handle_GivenValidRequest_ShouldReturnOrderLookUpModel()
        {
            // Arrange
            var query = new GetOrderByIdQuery {
                Id = 1
            };
            var sut = new GetOrderByIdQueryHandler(this.deletableEntityRepository);

            // Act
            var order = await sut.Handle(query, It.IsAny <CancellationToken>());

            order.ShouldNotBeNull();
            order.ShouldBeOfType <OrderLookupModel>();
            order.Description.ShouldBe("John");
        }