public async Task GetAllProducts() { //Arrange mockRepo.Setup(p => p.GetProducts()).Returns(Task.FromResult(products)); // Act var result = await controller.GetAsync(); // Assert var okResult = result.Should().BeOfType <OkObjectResult>().Subject; var productsResult = okResult.Value.Should().BeAssignableTo <IEnumerable <ProductViewModel> >().Subject; productsResult.Count().Should().Be(3); }
public async void GetAsync_InvalidName_ReturnStatusNotFound() { //Arrange var productIdOne = new Guid("0643CCF0-AB00-4862-B3C5-40E2731ABCC9"); var productIdTwo = new Guid("A21D5777-A655-4020-B431-624BB331E9A2"); var productsDto = GetProductDtos(productIdOne, productIdTwo); var productDto = new List <ProductDto> { productsDto[0] }; var products = new List <Product>(); _productService.Setup(s => s.FindProductAsync(It.IsAny <Predicate <Product> >())).ReturnsAsync((IList <Product>)null); _mapper.Setup(m => m.ToProductDtos(It.IsAny <IList <Product> >())).Returns(productDto); var productsController = new ProductsController(_productService.Object, _mapper.Object); //Act var result = await productsController.GetAsync("test"); //Assert var notFoundResult = Assert.IsType <NotFoundResult>(result); Assert.Equal(404, notFoundResult.StatusCode); }
public async void GetAsync_ProductName_ReturnAllProductsWithThisNameAndStatusOk() { //Arrange var productIdOne = new Guid("0643CCF0-AB00-4862-B3C5-40E2731ABCC9"); var productIdTwo = new Guid("A21D5777-A655-4020-B431-624BB331E9A2"); var productsDto = GetProductDtos(productIdOne, productIdTwo); var productDto = new List <ProductDto> { productsDto[0] }; var products = new List <Product>(); _productService.Setup(s => s.FindProductAsync(It.IsAny <Predicate <Product> >())).ReturnsAsync(products); _mapper.Setup(m => m.ToProductDtos(It.IsAny <IList <Product> >())).Returns(productDto); var productsController = new ProductsController(_productService.Object, _mapper.Object); //Act var result = await productsController.GetAsync("test"); //Assert var okResult = Assert.IsType <OkObjectResult>(result); Assert.Equal(200, okResult.StatusCode); var resultproductDtos = (IList <ProductDto>)okResult.Value; Assert.Equal(1, resultproductDtos.Count); Assert.Equal(2, resultproductDtos[0].ProductOptions.Count); Assert.Equal(productIdOne, resultproductDtos[0].Id); Assert.Equal(productIdOne, resultproductDtos[0].ProductOptions[1].ProductId); Assert.Equal(new Guid("1FA85F64-5717-4562-B3FC-2C963F66AFA6"), resultproductDtos[0].ProductOptions[0].Id); }
public async Task GetAsync_GetProductsByName() { // Arrange var mockIProductService = new Mock <IProductService>(); mockIProductService .Setup(arg => arg.GetAllProductsAsync()) .ReturnsAsync(new Products(new List <Product>())); mockIProductService .Setup(arg => arg.GetProductsByNameAsync("TEST")) .ReturnsAsync(new Products(new List <Product>())); var mockIProductOptionService = new Mock <IProductOptionService>(); var sut = new ProductsController(mockIProductService.Object, mockIProductOptionService.Object); // Act var response = await sut.GetAsync("TEST"); // Assert Assert.IsType <OkObjectResult>(response); var objectResponse = response as ObjectResult; Assert.Equal(200, objectResponse.StatusCode); mockIProductService.Verify(arg => arg.GetAllProductsAsync(), Times.Never); mockIProductService.Verify(arg => arg.GetProductsByNameAsync("TEST"), Times.Once); }
public void GetAsyncReturnsOk() { var productsController = new ProductsController(new ProductsProvider()); var result = productsController.GetAsync("1").Result; Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(OkObjectResult)); }
public void GetAsyncReturnsNotFound() { var producstController = new ProductsController(new ProductsProvider()); var result = producstController.GetAsync("10000").Result; Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public async Task Get_ActionInvoked_ProductRepositoryCalled() { // Arrange ProductsController controller = GetController(); // Act await controller.GetAsync(); // Assert productRepository.Verify(pr => pr.GetAllProducts()); }
public async Task Get_NotExistedId_ReturnsNotFoundResult(string id) { var queriesHandlerMock = new Mock <IProductQueriesHandler>(); queriesHandlerMock.Setup(handler => handler.GetAsync(id)).ReturnsAsync((ProductViewModel)null); var productController = new ProductsController(GetProductCommandsHandler(), queriesHandlerMock.Object, null); var result = await productController.GetAsync(id); Assert.IsInstanceOf <NotFoundResult>(result); }
public async Task ProductsController_Get_Returns_Product_List() { var mockProductRepository = new Mock <IProductRepository>(); mockProductRepository.Setup(x => x.GetProducts(It.IsAny <ProductOptions>())) .Returns(Task.FromResult(GetProducts())); var productsController = new ProductsController(mockProductRepository.Object); var products = await productsController.GetAsync(); Assert.Equal(2, products.Count()); }
public void GetAsyncReturnNoFound() { var productsProvider = new ProductsProvider(); //is needed to pass the provider class to controller as a parameter var productsController = new ProductsController(productsProvider); var resultado = productsController.GetAsync("101").Result; Assert.IsNotNull(resultado); Assert.IsInstanceOfType(resultado, typeof(NotFoundResult)); }
public async Task Get_ExistedId_ReturnsOrResultWithProduct(string id) { var product = GetProduct(id); var queriesHandlerMock = new Mock <IProductQueriesHandler>(); queriesHandlerMock.Setup(handler => handler.GetAsync(id)).ReturnsAsync(product); var productController = new ProductsController(GetProductCommandsHandler(), queriesHandlerMock.Object, null); var result = await productController.GetAsync(id); Assert.IsInstanceOf <OkObjectResult>(result); Assert.AreEqual(product, ((OkObjectResult)result).Value); }
public void GetAsyncReturnsNotFound() { // Setup var provider = new ProductsProvider(); var controller = new ProductsController(provider); // Act var result = controller.GetAsync("1000").Result; // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public async Task GetById_ValidIdPassedAndFound_ProductRepositoryCalledWithCorrectId() { // Arrange ProductsController controller = GetController(); const int ProductId = 5; SetupProductService(new Product { Stock = 1 }); // Act await controller.GetAsync(ProductId); // Assert productRepository.Verify(pr => pr.GetProduct(ProductId)); }
public async void GetAsync_ReturnsOK_WithProductDetails() { var subject = new ProductsController(mockProductDetailsService.Object, mockProductPriceRepository.Object); var price = new Price { Value = 45.50M, CurrencyCode = "EUR" }; mockProductDetailsService.Setup(service => service.GetProductNameById(It.IsAny <string>())).Returns(Task.FromResult("foo")); mockProductPriceRepository.Setup(repo => repo.GetPrice(It.IsAny <string>())).Returns(price); var result = await subject.GetAsync("1234"); var ok = (OkObjectResult)result; var resultObj = (Product)ok.Value; Assert.Equal("1234", resultObj.Id); Assert.Equal("foo", resultObj.Name); Assert.Equal(price, resultObj.CurrentPrice); }
public async Task ProductsController_Get_By_UPC_Returns_Product() { var upc = "12345"; var mockProductRepository = new Mock <IProductRepository>(); var mockProduct = GetProducts().Where(x => x.ProductUpc == upc)?.FirstOrDefault(); mockProductRepository.Setup(x => x.GetProduct(It.Is <string>(y => y.Equals(upc)))) .Returns(Task.FromResult(mockProduct)); var productsController = new ProductsController(mockProductRepository.Object); var product = await productsController.GetAsync(upc); Assert.NotNull(mockProduct); Assert.NotNull(product); Assert.Equal(mockProduct.SalePrice, product.SalePrice); Assert.Equal(mockProduct.ListPrice, product.ListPrice); Assert.Equal(mockProduct.ProductUpc, product.ProductUpc); Assert.Equal(mockProduct.Description, product.Description); Assert.Equal(mockProduct.ProductName, product.ProductName); }
public async Task Get_ProductsFound_Returns200OkAsync() { var products = new List <Models.Product> { new Models.Product { Name = "A", Price = 99.99M, Quantity = 10 }, new Models.Product { Name = "B", Price = 101.99M, Quantity = 20 }, new Models.Product { Name = "C", Price = 10.99M, Quantity = 30 }, new Models.Product { Name = "D", Price = 5, Quantity = 40 } }; var result = await _controllerUnderTest.GetAsync(getProductsCommand, "High", new CancellationToken()); var okObjectResult = result as OkObjectResult; Assert.Equal(200, okObjectResult.StatusCode); }