public void CreateCategoryShouldSetDeletedToFalseIfProductAlreadyExistsAndIsDeletedIsTrue()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: $"CreateCategoryShouldCreateCategory_Category_Database")
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var mapper = this.SetUpAutoMapper();

            var categoriesService = new CategoriesService(dbContext, mapper);

            var categoryName  = Guid.NewGuid().ToString();
            var categoryName1 = Guid.NewGuid().ToString();
            var model         = new CreateCategoryBindingModel {
                Name = categoryName
            };
            var model1 = new CreateCategoryBindingModel {
                Name = categoryName1
            };

            categoriesService.CreateCategory(model);
            categoriesService.CreateCategory(model1);

            var categoryToRemove = dbContext.Categories.FirstOrDefault(x => x.Name == categoryName);

            categoryToRemove.IsDeleted = true;
            dbContext.Categories.Update(categoryToRemove);
            dbContext.SaveChanges();

            var category1 = categoriesService.CreateCategory(model);

            Assert.NotNull(category1);
            Assert.True(category1.IsDeleted == false);
        }
        public void RemoveCategoryShouldSetIsDeletedToTrue()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: $"RemoveCategoryShouldSetIsDeletedToTrue_Category_Database")
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var mapper = this.SetUpAutoMapper();

            var categoriesService = new CategoriesService(dbContext, mapper);

            var categoryName  = Guid.NewGuid().ToString();
            var categoryName1 = Guid.NewGuid().ToString();
            var model         = new CreateCategoryBindingModel {
                Name = categoryName
            };
            var model1 = new CreateCategoryBindingModel {
                Name = categoryName1
            };

            categoriesService.CreateCategory(model);
            categoriesService.CreateCategory(model1);
            categoriesService.RemoveCategory(model);
            var category1 = categoriesService.CreateCategory(model);

            Assert.NotNull(category1);
            Assert.True(category1.IsDeleted == false);
        }
        public void FindAllCategoriesShouldReturnOnlyCategoriesWhereIsDeletedIsFalse()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: $"FindAllCategoriesShouldReturnOnlyCategoriesWhereIsDeletedIsFalse_Category_Database")
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var mapper = this.SetUpAutoMapper();

            var categoriesService = new CategoriesService(dbContext, mapper);

            var categoryName  = Guid.NewGuid().ToString();
            var categoryName1 = Guid.NewGuid().ToString();
            var categoryName2 = Guid.NewGuid().ToString();
            var model         = new CreateCategoryBindingModel {
                Name = categoryName
            };
            var model1 = new CreateCategoryBindingModel {
                Name = categoryName1
            };
            var model2 = new CreateCategoryBindingModel {
                Name = categoryName2
            };

            categoriesService.CreateCategory(model);
            categoriesService.CreateCategory(model1);
            categoriesService.CreateCategory(model2);
            categoriesService.RemoveCategory(model);
            categoriesService.RemoveCategory(model1);

            var categories = categoriesService.FindAllCategories();

            Assert.True(categories.Count == 1);
        }
Example #4
0
 public IActionResult CreateCategory([FromBody] CategoryInputModel category)
 {
     if (ModelState.IsValid)
     {
         int id = _categoriesService.CreateCategory(category);
         return(CreatedAtRoute("GetCategoryById", new { id }, null));
     }
     return(StatusCode(412, category));
 }
Example #5
0
        public void Create_Category_Test()
        {
            var result = service.CreateCategory("test");
            var cat    = new Category()
            {
                Name = "Test"
            };

            Assert.Equal(cat.Name, result.Name);
        }
        public IActionResult CreateCategory([FromBody] CategoryInputModel body)
        {
            if (!ModelState.IsValid)
            {
                throw new ModelFormatException("Model not properly formatted");
            }
            var entity = _categoriesService.CreateCategory(body);

            return(CreatedAtRoute("GetCategoryById", new { categoryId = entity.Id }, null));
        }
        public void CreateCategoryShouldntCreateCategoryAndShouldReturnNullIfAlreadyExists()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: $"CreateCategoryShouldntCreateCategoryAndShouldReturnNullIfAlreadyExists_Category_Database")
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var mapper = this.SetUpAutoMapper();

            var categoriesService = new CategoriesService(dbContext, mapper);

            var categoryName = Guid.NewGuid().ToString();
            var model        = new CreateCategoryBindingModel {
                Name = categoryName
            };

            categoriesService.CreateCategory(model);
            var category1 = categoriesService.CreateCategory(model);

            Assert.True(dbContext.Categories.Count() == 1);
            Assert.Null(category1);
        }
Example #8
0
        public ActionResult Category_Create([DataSourceRequest] DataSourceRequest request, Category category)
        {
            try
            {
                if (category != null && ModelState.IsValid)
                {
                    _categoriesService.CreateCategory(category);
                }

                return(Json(new[] { category }.ToDataSourceResult(request, ModelState)));
            }
            catch (Exception)
            {
                return(Json(new DataSourceResult
                {
                    Errors = "A server error has occurred!"
                }));
            }
        }
        GivenValidCreateCategory_ThenMapperShouldBeCalledWithCorrectArguments()
        {
            var expectedCategoryDto = new CategoryDto
            {
                CategoryName    = "testname",
                TransactionType = TransactionType.Expense,
                Subcategories   = new List <string> {
                    "test1", "test2"
                }
            };

            _mockMapper.Setup(mapper => mapper.Map <Category>(It.IsAny <CategoryDto>())).Returns(new Category());

            var service = new CategoriesService(_mockCurrentUserContext.Object, _mockRepository.Object,
                                                _mockMapper.Object);

            await service.CreateCategory(expectedCategoryDto);

            _mockMapper.Verify(mapper => mapper.Map <Category>(expectedCategoryDto));
        }
        GivenCategoryDto_ThenRepositoryCreateCategoryInvokedWithCorrectArgument()
        {
            const string expectedUserId = "userId-123";

            _mockCurrentUserContext.SetupGet(context => context.UserId).Returns(expectedUserId);

            const string expectedCategoryName    = "categoryName";
            var          expectedTransactionType = TransactionType.Expense;
            var          expectedSubcategories   = new List <string> {
                "sub1", "sub2"
            };

            var inputDto = new CategoryDto
            {
                CategoryName    = expectedCategoryName,
                TransactionType = expectedTransactionType,
                Subcategories   = expectedSubcategories
            };

            var expectedCategory = new Category
            {
                UserId          = expectedUserId,
                CategoryName    = expectedCategoryName,
                TransactionType = expectedTransactionType,
                Subcategories   = expectedSubcategories,
            };

            _mockMapper.Setup(mapper => mapper.Map <Category>(It.IsAny <CategoryDto>())).Returns(new Category
            {
                CategoryName  = expectedCategoryName,
                Subcategories = expectedSubcategories
            });

            var service = new CategoriesService(_mockCurrentUserContext.Object, _mockRepository.Object,
                                                _mockMapper.Object);

            await service.CreateCategory(inputDto);

            _mockRepository.Verify(repository => repository.CreateCategory(expectedCategory));
        }
        public void RemoveCategoryShouldReturnNullIfCategoriesCountIs1()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: $"RemoveCategoryShouldReturnNullIfCategoriesCountIs1_Category_Database")
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var mapper = this.SetUpAutoMapper();

            var categoriesService = new CategoriesService(dbContext, mapper);

            var categoryName = Guid.NewGuid().ToString();
            var model        = new CreateCategoryBindingModel {
                Name = categoryName
            };

            categoriesService.CreateCategory(model);
            var category = categoriesService.RemoveCategory(model);

            Assert.Null(category);
        }
        public void CreateCategoryShouldCreateCategory()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: $"CreateCategoryShouldCreateCategory_Category_Database")
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var mapper = this.SetUpAutoMapper();

            var categoriesService = new CategoriesService(dbContext, mapper);

            var categoryName = Guid.NewGuid().ToString().Substring(0, 15);
            var model        = new CreateCategoryBindingModel {
                Name = categoryName
            };

            var category = categoriesService.CreateCategory(model);

            Assert.True(dbContext.Categories.Count() == 1);
            Assert.True(category.Name == categoryName);
        }