public async Task CreateCategoryAsync_UniqueCode_ProductWithSpecifiedCodeCreated() { const string newCode = "cc"; var newCategory = new UpdateProductCategoryRequest() { Code = newCode }; var mockUserContext = new Mock <IUserContext>(); var mockProductContext = new Mock <IProductCatalogueContext>(); List <DbCategory> categoryList = new List <DbCategory>() { new DbCategory() { Id = 1 }, new DbCategory() { Id = 2 } }; mockProductContext.Setup(c => c.Categories).ReturnsEntitySet(categoryList); mockUserContext.Setup(c => c.UserId).Returns(1); var service = new ProductCategoryService(mockProductContext.Object, mockUserContext.Object); var product = await service.CreateCategoryAsync(newCategory); Assert.Equal(newCode, product.Code); }
public async Task CreateCategoryAsync_CodeAlreadyPresent_RequestedResourceHasConflictExceptionThrown() { var newCategory = new UpdateProductCategoryRequest() { Code = "aa" }; var mockUserContext = new Mock <IUserContext>(); var mockProductContext = new Mock <IProductCatalogueContext>(); List <DbCategory> categoryList = new List <DbCategory>() { new DbCategory() { Id = 1 }, new DbCategory() { Id = 2 } }; mockProductContext.Setup(c => c.Categories).ReturnsEntitySet(categoryList); var service = new ProductCategoryService(mockProductContext.Object, mockUserContext.Object); Assert.ThrowsAsync <RequestedResourceHasConflictException>(() => service.CreateCategoryAsync(newCategory)); }
public async Task CreateProductCategory_AddedSuccessfuly_Test([Frozen] Mock <IProductCatalogueContext> context, IFixture fixture, ProductCategoryService productCategoryService) { var listEntity = fixture.CreateMany <ProductCategory>(13).ToList(); context.Setup(x => x.Categories).ReturnsEntitySet(listEntity); var createRequest = fixture.Create <UpdateProductCategoryRequest>(); var addedCategory = await productCategoryService.CreateCategoryAsync(createRequest); var category = await productCategoryService.GetCategoryAsync(addedCategory.Id); Assert.Equal(category.Name, createRequest.Name); Assert.Equal(category.Description, createRequest.Description); Assert.Equal(category.Code, createRequest.Code); }
public async Task CreateCategoryAsync_RequestedResourceHasConflictException( [Frozen] Mock <IProductCatalogueContext> context, ProductCategoryService service, IFixture fixture) { var categories = fixture.CreateMany <DbProductCategory>(5).ToList(); var products = fixture.CreateMany <CatalogueProduct>(5).ToList(); var updateCategory = new UpdateProductCategoryRequest { Code = categories[0].Code }; context.Setup(x => x.Products).ReturnsEntitySet(products); context.Setup(x => x.Categories).ReturnsEntitySet(categories); Func <Task> act = async() => await service.CreateCategoryAsync(updateCategory); act.Should().Throw <RequestedResourceHasConflictException>(); }
public async Task CreateCategoryAsync_AddOneElement( [Frozen] Mock <IProductCatalogueContext> context, ProductCategoryService service, IFixture fixture) { var categories = fixture.CreateMany <DbProductCategory>(5).ToList(); var products = fixture.CreateMany <CatalogueProduct>(5).ToList(); var updateCategory = fixture.Create <UpdateProductCategoryRequest>(); context.Setup(x => x.Products).ReturnsEntitySet(products); context.Setup(x => x.Categories).ReturnsEntitySet(categories); await service.CreateCategoryAsync(updateCategory); var result = await service.GetCategoriesAsync(0, 6); result.Count.Should().Be(6); }
public async Task CreateCategoryAsync_UpdateProductCategoryRequest_RequestedResourceHasConflictException( [Frozen] Mock <IProductCatalogueContext> context, ProductCategoryService service, IFixture fixture) { // arrange var dbSections = fixture.CreateMany <DbProductCategory>(1).ToList(); var updateProductCategoryRequest = fixture.Create <UpdateProductCategoryRequest>(); updateProductCategoryRequest.Code = dbSections[0].Code; context.Setup(s => s.Categories).ReturnsEntitySet(dbSections); // assert await Assert.ThrowsAsync <RequestedResourceHasConflictException>( () => service.CreateCategoryAsync(updateProductCategoryRequest)); }
public async Task CreateCategoryAsync_UpdateProductCategoryRequest_ProductCategoryInstance( [Frozen] Mock <IProductCatalogueContext> context, ProductCategoryService service, IFixture fixture) { // arrange var dbSections = fixture.CreateMany <DbProductCategory>(1).ToList(); context.Setup(s => s.Categories).ReturnsEntitySet(dbSections); var updateProductCategoryRequest = fixture.Create <UpdateProductCategoryRequest>(); updateProductCategoryRequest.Code = $"{dbSections[0].Code}1"; // act var newSection = await service.CreateCategoryAsync(updateProductCategoryRequest); // Assert Assert.Equal(updateProductCategoryRequest.Name, newSection.Name); Assert.Equal(updateProductCategoryRequest.Code, newSection.Code); }
public async Task CreateProductCategory_ConflictException_Test([Frozen] Mock <IProductCatalogueContext> context, IFixture fixture, ProductCategoryService productCategoryService) { var listEntity = fixture.CreateMany <ProductCategory>(13).ToList(); var createRequest = fixture.Create <UpdateProductCategoryRequest>(); createRequest.Code = listEntity[0].Code; context.Setup(x => x.Categories).ReturnsEntitySet(listEntity); var ex = await Assert.ThrowsAsync <RequestedResourceHasConflictException>(() => productCategoryService.CreateCategoryAsync(createRequest)); Assert.Equal(typeof(RequestedResourceHasConflictException), ex.GetType()); }