public async Task CreateProductAsync_UniqueCode_ProductWithSpecifiedCodeCreated() { const string newCode = "cc"; var newProduct = new UpdateProductRequest() { Code = newCode }; 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 product = await service.CreateProductAsync(newProduct); Assert.Equal(newCode, product.Code); }
public async Task CreateProductAsync_CodeAlreadyPresent_RequestedResourceHasConflictExceptionThrown() { var newProduct = new UpdateProductRequest() { Code = "aa" }; 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 <RequestedResourceHasConflictException>(() => service.CreateProductAsync(newProduct)); }
public async void CreateProductAsync_EntityWithExistedCode_CustomExceptionThrows([Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { Configure(context, fixture); var updateProductRequest = fixture.Create <UpdateProductRequest>(); updateProductRequest.Code = _product[0].Code; await Assert.ThrowsAsync <RequestedResourceHasConflictException>(() => service.CreateProductAsync(updateProductRequest)); }
public async void CreateProductAsync_ValidEntity_SuccessfullHiveAddition([Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { Configure(context, fixture); var updateProductRequest = fixture.Create <UpdateProductRequest>(); var result = await service.CreateProductAsync(updateProductRequest); result.Code.Should().Be(updateProductRequest.Code); result.Name.Should().Be(updateProductRequest.Name); }
public async Task CreateProduct_AddedSuccessfuly_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.CreateProductAsync(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 ProductCreateAsync_RequestedResourceHasConflictException( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { var products = fixture.CreateMany <CatalogueProduct>(5).ToList(); var product = new UpdateProductRequest { Code = products[0].Code }; context.Setup(x => x.Products).ReturnsEntitySet(products); Func <Task> act = async() => await service.CreateProductAsync(product); act.Should().Throw <RequestedResourceHasConflictException>(); }
public async Task ProductCreateAsync_AddOneElement_ColectionCountSix( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { var products = fixture.CreateMany <CatalogueProduct>(5).ToList(); var product = fixture.Create <UpdateProductRequest>(); context.Setup(x => x.Products).ReturnsEntitySet(products); await service.CreateProductAsync(product); var result = await service.GetProductsAsync(0, 8); result.Count.Should().Be(6); }
public async Task CreateProductAsync_UpdateProductRequest_RequestedResourceHasConflictException( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { // arrange var dbProducts = fixture.CreateMany <DbProduct>(3).ToList(); var updateRequest = fixture.Create <UpdateProductRequest>(); updateRequest.Code = dbProducts[1].Code; context.Setup(s => s.Products).ReturnsEntitySet(dbProducts); // assert await Assert.ThrowsAsync <RequestedResourceHasConflictException>(() => service.CreateProductAsync(updateRequest)); }
public async Task CreateProductAsync_UpdateProductRequest_Product( [Frozen] Mock <IProductCatalogueContext> context, ProductCatalogueService service, IFixture fixture) { // arrange var dbProducts = fixture.CreateMany <DbProduct>(3).ToList(); var updateRequest = fixture.Create <UpdateProductRequest>(); updateRequest.Code = dbProducts[1].Code; dbProducts[1].Code = dbProducts[0].Code; dbProducts[2].Code = dbProducts[0].Code; context.Setup(s => s.Products).ReturnsEntitySet(dbProducts); // act var product = await service.CreateProductAsync(updateRequest); // assert Assert.Equal(updateRequest.Code, product.Code); }
public async Task CreateProduct_ConflictException_Test([Frozen] Mock <IProductCatalogueContext> context, IFixture fixture, ProductCatalogueService productCatalogueService) { var listEntity = fixture.CreateMany <CatalogueProduct>(13).ToList(); var createRequest = fixture.Create <UpdateProductRequest>(); createRequest.Code = listEntity[0].Code; context.Setup(x => x.Products).ReturnsEntitySet(listEntity); var ex = await Assert.ThrowsAsync <RequestedResourceHasConflictException>(() => productCatalogueService.CreateProductAsync(createRequest)); Assert.Equal(typeof(RequestedResourceHasConflictException), ex.GetType()); }