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));
        }
예제 #3
0
        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);
        }
예제 #8
0
        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());
        }