Ejemplo n.º 1
0
        public async Task RemoveCategoryAsync_removes_category_then_saves()
        {
            // Arrange
            var category = new BudgetCategory {
                ID = 1
            };
            var categories = new List <BudgetCategory> {
                category
            }.AsQueryable();
            var sequence = new MockSequence();

            _mockRepo.Setup(m => m.GetCategories()).Returns(categories);
            _mockRepo.InSequence(sequence).Setup(m => m.DeleteBudgetCategory(It.IsAny <BudgetCategory>()));
            _mockRepo.InSequence(sequence).Setup(m => m.SaveChangesAsync()).ReturnsAsync(1);

            // Act
            await _testService.RemoveCategoryAsync(1);

            // Assert
            _mockRepo.Verify(m => m.DeleteBudgetCategory(category), Times.Once());
            _mockRepo.Verify(m => m.SaveChangesAsync(), Times.Once());
        }
Ejemplo n.º 2
0
 /// <summary>
 /// The default Constructor
 /// </summary>
 /// <param name="service">The service to use in the controller</param>
 public BudgetCategoryController(ICategoryManagerService service)
     : base(
         // Setup required functions
         singleAdder: vm => service.AddCategoryAsync(vm.Name, vm.Amount, vm.Type),
         singleDeleter: id => service.RemoveCategoryAsync(id),
         singleEditor: vm => service.UpdateCategoryAsync(vm.NavId, vm.Amount, vm.EffectiveFrom, vm.Type),
         existanceChecker: vm => service.CategoryExists(vm.NavId)
         )
 {
     CollectionGetter  = () => GetViewModelCollection(service);
     ViewModelCreator  = id => CreateViewModel(id, service);
     ExceptionHandling = new Dictionary <Type, Func <Exception, IActionResult> > {
         { typeof(InvalidDateExpection), ex => {
               ModelState.AddModelError(nameof(BudgetCategory.EffectiveFrom), ex.Message);
               return(null);
           } },
         { typeof(ExpenseTrackerException), ex => {
               return(NotFound());
           } }
     };
 }