public async Task UpdateProductAsync_IdNotPresent_RequestedResourceNotFoundExceptionThrown() { var newProduct = new UpdateProductRequest() { Code = "bb" }; var mockUserContext = new Mock <IUserContext>(); var mockProductContext = new Mock <IProductCatalogueContext>(); List <CatalogueProduct> productList = new List <CatalogueProduct>() { new CatalogueProduct() { Id = 1, Code = "aa" }, new CatalogueProduct() { Id = 2, Code = "bb" } }; mockProductContext.Setup(c => c.Products).ReturnsEntitySet(productList); var service = new ProductCatalogueService(mockProductContext.Object, mockUserContext.Object); Assert.ThrowsAsync <RequestedResourceNotFoundException>(() => service.UpdateProductAsync(3, newProduct)); }
public async Task UpdateProductAsync_ValidRequest_ProductUpdated() { var newProduct = new UpdateProductRequest() { Code = "cc" }; var mockUserContext = new Mock <IUserContext>(); var mockProductContext = new Mock <IProductCatalogueContext>(); List <CatalogueProduct> productList = new List <CatalogueProduct>() { new CatalogueProduct() { Id = 1, Code = "aa" }, new CatalogueProduct() { Id = 2, Code = "bb" } }; mockUserContext.Setup(c => c.UserId).Returns(1); mockProductContext.Setup(c => c.Products).ReturnsEntitySet(productList); var service = new ProductCatalogueService(mockProductContext.Object, mockUserContext.Object); var updatedProduct = await service.UpdateProductAsync(1, newProduct); Assert.Equal(newProduct.Code, updatedProduct.Code); }
public async Task UpdateProductAsync_UpdateProductRequest_Product( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { // arrange var updateRequest = fixture.Create <UpdateProductRequest>(); var dbProducts = fixture.CreateMany <DbProduct>(2).ToList(); var productId = 1; dbProducts[0].Id = productId + 1; dbProducts[0].Code = $"{updateRequest.Code}1"; dbProducts[1].Id = productId; dbProducts[1].Code = updateRequest.Code; context.Setup(s => s.Products).ReturnsEntitySet(dbProducts); // act var updateProduct = await service.UpdateProductAsync(productId, updateRequest); // assert Assert.Equal(updateRequest.Code, updateProduct.Code); Assert.Equal(updateRequest.Name, updateProduct.Name); }
public async void UpdateProductAsync_NotExistedEntityIdentifier_CustomExceptionThrows([Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { Configure(context, fixture); var updateProductRequest = fixture.Create <UpdateProductRequest>(); int id = 0; await Assert.ThrowsAsync <RequestedResourceNotFoundException>(() => service.UpdateProductAsync(id, updateProductRequest)); }
public async void UpdateProductAsync_EntityWithExistedCode_CustomExceptionThrows([Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { Configure(context, fixture); var updateProductRequest = fixture.Create <UpdateProductRequest>(); updateProductRequest.Code = _product[0].Code; int id = _product[1].Id; await Assert.ThrowsAsync <RequestedResourceHasConflictException>(() => service.UpdateProductAsync(id, updateProductRequest)); }
public async void UpdateProductAsync_ValidEntity_SuccessfullHiveEdition([Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { Configure(context, fixture); var updateProductRequest = fixture.Create <UpdateProductRequest>(); int id = _product[0].Id; var result = await service.UpdateProductAsync(id, updateProductRequest); result.Id.Should().Be(id); result.Code.Should().Be(updateProductRequest.Code); result.Name.Should().Be(updateProductRequest.Name); }
public async Task ProductUpdateAsync_RequestedResourceNotFoundException( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { var products = fixture.CreateMany <CatalogueProduct>(5).ToList(); var updateProduct = fixture.Create <UpdateProductRequest>(); context.Setup(x => x.Products).ReturnsEntitySet(products); Func <Task> act = async() => await service.UpdateProductAsync(0, updateProduct); act.Should().Throw <RequestedResourceNotFoundException>(); }
public async Task ProductUpdateAsync_UpdateOneItem_ReturnOneItem( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { var products = fixture.CreateMany <CatalogueProduct>(5).ToList(); var updateProduct = fixture.Create <UpdateProductRequest>(); context.Setup(x => x.Products).ReturnsEntitySet(products); var result = await service.UpdateProductAsync(products[0].Id, updateProduct); result.Code.Should().Be(service.GetProductAsync(products[0].Id).Result.Code); }
public async Task UpdateProduct_UpdateSuccessfuly_Test([Frozen] Mock <IProductCatalogueContext> context, IFixture fixture, ProductCatalogueService productCatalogueService) { var listEntity = fixture.CreateMany <CatalogueProduct>(13).ToList(); context.Setup(x => x.Products).ReturnsEntitySet(listEntity); var createRequest = fixture.Create <UpdateProductRequest>(); var addedProduct = await productCatalogueService.UpdateProductAsync(listEntity[0].Id, createRequest); var product = await productCatalogueService.GetProductAsync(addedProduct.Id); Assert.Equal(product.Name, createRequest.Name); Assert.Equal(product.ManufacturerCode, createRequest.ManufacturerCode); Assert.Equal(product.Code, createRequest.Code); Assert.Equal(product.Description, createRequest.Description); }
public async Task UpdateProductAsync_UpdateProductRequest_RequestedResourceNotFoundException( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { // arrange var updateRequest = fixture.Create <UpdateProductRequest>(); var dbProducts = fixture.CreateMany <DbProduct>(2).ToList(); var productId = 1; dbProducts[0].Id = productId + 1; dbProducts[0].Code = $"{updateRequest.Code}1"; dbProducts[1].Id = productId + 1; dbProducts[1].Code = $"{updateRequest.Code}1"; context.Setup(s => s.Products).ReturnsEntitySet(dbProducts); // assert await Assert.ThrowsAsync <RequestedResourceNotFoundException>(() => service.UpdateProductAsync(productId, updateRequest)); }
public async Task DeleteProduct_NotFoundException_Test([Frozen] Mock <IProductCatalogueContext> context, IFixture fixture, ProductCatalogueService productCatalogueService, int productCatalogId) { var listEntity = fixture.CreateMany <CatalogueProduct>(13).ToList(); var createRequest = fixture.Create <UpdateProductRequest>(); context.Setup(x => x.Products).ReturnsEntitySet(listEntity); var ex = await Assert.ThrowsAsync <RequestedResourceNotFoundException>(() => productCatalogueService.UpdateProductAsync(productCatalogId, createRequest)); Assert.Equal(typeof(RequestedResourceNotFoundException), ex.GetType()); }