Exemple #1
0
        public async Task Handle_ProductExists_ReturnProduct(
            Entities.Product product,
            [Frozen] Mock <IRepository <Entities.Product> > productRepoMock,
            GetProductQueryHandler sut,
            GetProductQuery query
            )
        {
            // Arrange
            productRepoMock.Setup(x => x.GetBySpecAsync(
                                      It.IsAny <GetProductSpecification>(),
                                      It.IsAny <CancellationToken>()
                                      ))
            .ReturnsAsync(product);

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

            //Assert
            result.Should().NotBeNull();
            productRepoMock.Verify(x => x.GetBySpecAsync(
                                       It.IsAny <GetProductSpecification>(),
                                       It.IsAny <CancellationToken>()
                                       ));
            result.ProductNumber.Should().Be(product.ProductNumber);
        }
Exemple #2
0
 public ProductTests()
 {
     _getCategoryBaseQuery     = new GetCategoryBaseQuery(DbContext, Cache);
     _getProductQuery          = new GetProductQuery(DbContext, _getCategoryBaseQuery);
     _listProductsQuery        = new ListProductsQuery(DbContext);
     _getProductQueryHandler   = new GetProductQueryHandler(_getProductQuery);
     _listProductsQueryHandler = new ListProductsQueryHandler(_listProductsQuery);
 }
        public GetProductQueryHandlerTests()
        {
            _handler = new GetProductQueryHandler(Context, Mapper);

            _query = new GetProductQuery
            {
                Id = TestContext.TestProductCommon.Id
            };
        }
Exemple #4
0
        public async Task GetFail()
        {
            var sut = new GetProductQueryHandler(_context, _mapper);

            Exception ex = await Assert.ThrowsAsync <NotFoundException>(() => sut.Handle(new GetProductQuery {
                Id = 10
            }, CancellationToken.None));

            ex.Message.ShouldBe("Entity \"Product\" (10) was not found.");
        }
Exemple #5
0
        public async Task Get()
        {
            var sut = new GetProductQueryHandler(_context, _mapper);

            var result = await sut.Handle(new GetProductQuery { Id = 1 }, CancellationToken.None);

            result.ShouldBeOfType <ProductViewModel>();
            result.ProductId.ShouldBe(1);
            result.ProductName.ShouldBe("KeyBoard");
        }
Exemple #6
0
        public async Task Handle_GivenValidId_ReturnsCorrectProduct()
        {
            var query = new GetProductQuery {
                Id = 999
            };

            var sut = new GetProductQueryHandler(_context);

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

            result.ProductId.ShouldBe(999);
        }
 public GetProductQueryHandlerTest()
 {
     mapper            = new Mock <IMapper>();
     productRepository = new Mock <IProductRepository>();
     query             = new GetProductQuery(productId);
     queryHandler      = new GetProductQueryHandler(productRepository.Object, mapper.Object);
     product           = new Product {
         ProductName = productName
     };
     productDto = new GetProductDto {
         ProductName = productName
     };
 }
Exemple #8
0
        public async Task GetAsync()
        {
            var dataAccess = new ProductDataAccess(this.Context, Mapper());

            //Act
            var sutCreate    = new CreateProductCommandHandler(dataAccess);
            var resultCreate = await sutCreate.Handle(new CreateProductCommand
            {
                Data = ProductTestData.ProductDTO
            }, CancellationToken.None);

            //Act
            var sutGet    = new GetProductQueryHandler(dataAccess);
            var resultGet = await sutGet.Handle(new GetProductQuery
            {
                Id = resultCreate.Data.Id
            }, CancellationToken.None);

            Assert.IsTrue(resultGet?.Data != null);
        }
        public async Task Should_ThrowArguementException_WhenRecordNotFound()
        {
            var productName = Guid.NewGuid().ToString();
            var testProduct = new Product()
            {
                Active     = true,
                ModifiedOn = DateTime.Now,
                Name       = productName,
                Price      = 15
            };

            await testProduct.SaveAsync();

            var handler   = new GetProductQueryHandler();
            var testQuery = new Queries.GetProductQuery()
            {
                ProductId = ObjectId.GenerateNewId().ToString()
            };

            Assert.ThrowsAsync <ArgumentException>(async() => await handler.Handle(testQuery, default));
        }
        public async Task Should_ThrowFormatException_WhenQueryIsInvalid()
        {
            var productName = Guid.NewGuid().ToString();
            var testProduct = new Product()
            {
                Active     = true,
                ModifiedOn = DateTime.Now,
                Name       = productName,
                Price      = 15
            };

            await testProduct.SaveAsync();

            var handler   = new GetProductQueryHandler();
            var testQuery = new Queries.GetProductQuery()
            {
                ProductId = "test"
            };

            Assert.ThrowsAsync <FormatException>(async() => await handler.Handle(testQuery, default));
        }
        public async Task Should_ReturnValidProductDTO_WhenQueryIsValid()
        {
            var productName = Guid.NewGuid().ToString();
            var testProduct = new Product()
            {
                Active     = true,
                ModifiedOn = DateTime.Now,
                Name       = productName,
                Price      = 15
            };

            await testProduct.SaveAsync();

            var handler = new GetProductQueryHandler();
            var result  = await handler.Handle(new Queries.GetProductQuery()
            {
                ProductId = testProduct.ID
            }, default);

            Assert.NotNull(result);
            Assert.AreEqual(productName, result.Name);
            Assert.AreEqual(15, result.Price);
            Assert.IsTrue(result.Active);
        }
Exemple #12
0
        public void Handle_ProductDoesNotExists_ThrowArgumentNullException(
            //Entities.Product product,
            [Frozen] Mock <IRepository <Entities.Product> > productRepoMock,
            GetProductQueryHandler sut,
            GetProductQuery query
            )
        {
            // Arrange
            productRepoMock.Setup(x => x.GetBySpecAsync(
                                      It.IsAny <GetProductSpecification>(),
                                      It.IsAny <CancellationToken>()
                                      ))
            .ReturnsAsync((Entities.Product)null);

            //Act
            Func <Task> func = async() => await sut.Handle(query, CancellationToken.None);

            //Assert
            func.Should().ThrowAsync <ArgumentNullException>();
            productRepoMock.Verify(x => x.GetBySpecAsync(
                                       It.IsAny <GetProductSpecification>(),
                                       It.IsAny <CancellationToken>()
                                       ));
        }