예제 #1
0
        public async Task Handle_GivenValidId_ReturnsSaleDTO()
        {
            // Arrange
            var sale = new SaleDTO
            {
                Id     = 2,
                Date   = new DateTime(2020, 01, 01),
                Amount = 1200,
            };

            var query = new GetSaleQuery {
                Id = 2
            };

            // Act
            var handler = new GetSaleQuery.GetSaleQueryHandler(Context, Mapper);
            var result  = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.ShouldBeOfType <SaleDTO>();
            result.ShouldNotBeNull();

            result.Id.ShouldBe(sale.Id);
            result.Date.ShouldBe(sale.Date);
            result.Amount.ShouldBe(sale.Amount);
        }
예제 #2
0
        public async Task Handle_GivenInvalidId_ReturnsNull()
        {
            // Arrange
            var query = new GetSaleQuery {
                Id = 99
            };

            // Act
            var handler = new GetSaleQuery.GetSaleQueryHandler(Context, Mapper);

            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.ShouldBeNull();
        }
        public async Task <IActionResult> GetSale([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var saleQuery = new GetSaleQuery {
                Id = id
            };
            var sale = await _mediator.Send(saleQuery);

            if (sale == null)
            {
                _logger.LogWarning($"{id} {SalesConstants.SALE_NOT_FOUND}");
                return(NotFound(id));
            }

            _logger.LogInformation($"{sale.Id} {SalesConstants.GET_FOUND_SALE}");
            return(Ok(sale));
        }