public void Title_EditCategory_CorrectTitle()
        {
            var categoryName = "groceries";

            var viewmodel = new ModifyCategoryViewModel(new Mock <ICategoryRepository>().Object, new Mock <IDialogService>().Object)
            {
                IsEdit           = true,
                SelectedCategory = new Category {
                    Id = 9, Name = categoryName
                }
            };

            viewmodel.Title.ShouldBe(string.Format(Strings.EditCategoryTitle, categoryName));
        }
Пример #2
0
        public void Title_AddCategory_CorrectTitle()
        {
            // Arrange
            var viewmodel = new ModifyCategoryViewModel(new Mock <ICategoryService>().Object,
                                                        new Mock <IDialogService>().Object,
                                                        new Mock <ISettingsManager>().Object,
                                                        new Mock <IBackupManager>().Object,
                                                        new Mock <IMvxNavigationService>().Object)
            {
                IsEdit = false
            };

            // Act / Assert
            viewmodel.Title.ShouldBe(Strings.AddCategoryTitle);
        }
Пример #3
0
        public ActionResult CategoryEdit(ModifyCategoryViewModel cur)
        {
            var toedit = new Category
            {
                Id   = cur.CategoryId,
                Name = cur.Name,
                Slug = cur.Slug,
            };

            if (catl.AdminCategoryModify(toedit))
            {
                return(RedirectToAction("AdminCategory"));
            }
            TempData["error"] = "Invalid Modification. The name or slug already exists.";
            return(View(cur));
        }
Пример #4
0
        public void DeleteCategory_DeletesCategory()
        {
            // Arrange
            var categoryList        = new List <Category>();
            var categoryServiceMock = new Mock <ICategoryService>();

            categoryServiceMock.Setup(c => c.SaveCategory(It.IsAny <Category>()))
            .Callback((Category cat) => { categoryList.Add(cat); });
            categoryServiceMock.Setup(c => c.DeleteCategory(It.IsAny <Category>()))
            .Callback((Category cat) => { categoryList.Remove(cat); });

            var settingsManagerMock = new Mock <ISettingsManager>();

            var categoryPrimary = new Category
            {
                Data =
                {
                    Id   =                        1,
                    Name = "Test CategoryViewModel",
                    Note = "Notes about the test CategoryViewModel"
                }
            };

            categoryList.Add(categoryPrimary);

            var viewmodel = new ModifyCategoryViewModel(categoryServiceMock.Object,
                                                        new Mock <IDialogService>().Object,
                                                        settingsManagerMock.Object,
                                                        new Mock <IBackupManager>().Object,
                                                        new Mock <IMvxLogProvider>().Object,
                                                        new Mock <IMvxNavigationService>().Object)
            {
                IsEdit           = true,
                SelectedCategory = new CategoryViewModel(categoryPrimary)
            };

            // Act
            viewmodel.DeleteCommand.Execute();

            // Assert
            categoryList.Any().ShouldBeFalse();
        }
Пример #5
0
        public void Title_EditCategory_CorrectTitle()
        {
            // Arrange
            var categoryName = "groceries";

            var viewmodel = new ModifyCategoryViewModel(new Mock <ICategoryService>().Object,
                                                        new Mock <IDialogService>().Object,
                                                        new Mock <ISettingsManager>().Object,
                                                        new Mock <IBackupManager>().Object)
            {
                IsEdit           = true,
                SelectedCategory = new CategoryViewModel(new Category())
                {
                    Id = 9, Name = categoryName
                }
            };

            // Act / Assert
            viewmodel.Title.ShouldBe(string.Format(Strings.EditCategoryTitle, categoryName));
        }
Пример #6
0
        public void SaveCommand_SavesCategory()
        {
            // Arrange
            var categoryList        = new List <Category>();
            var categoryServiceMock = new Mock <ICategoryService>();

            categoryServiceMock.Setup(c => c.SaveCategory(It.IsAny <Category>()))
            .Callback((Category cat) => { categoryList.Add(cat); })
            .Returns(Task.CompletedTask);

            var settingsManagerMock = new Mock <ISettingsManager>();

            var categoryPrimary = new Category
            {
                Data =
                {
                    Id   =                        1,
                    Name = "Test CategoryViewModel",
                    Note = "Test Note"
                }
            };

            var viewmodel = new ModifyCategoryViewModel(categoryServiceMock.Object,
                                                        new Mock <IDialogService>().Object,
                                                        settingsManagerMock.Object,
                                                        new Mock <IBackupManager>().Object,
                                                        new Mock <IMvxLogProvider>().Object,
                                                        new Mock <IMvxNavigationService>().Object)
            {
                IsEdit           = false,
                SelectedCategory = new CategoryViewModel(categoryPrimary)
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            categoryList.Count.ShouldEqual(1);
        }
Пример #7
0
        public void SaveCategory_UpdateTimeStamp()
        {
            // Arrange
            var category = new CategoryViewModel(new Category())
            {
                Id = 0, Name = "CategoryViewModel", Notes = ""
            };

            var categoryServiceMock = new Mock <ICategoryService>();

            categoryServiceMock.SetupAllProperties();
            categoryServiceMock.Setup(x => x.SaveCategory(It.IsAny <Category>())).Returns(Task.CompletedTask);
            categoryServiceMock.Setup(x => x.GetAllCategories()).ReturnsAsync(new ObservableCollection <Category>());

            var localDateSetting = DateTime.MinValue;

            var settingsManagerMock = new Mock <ISettingsManager>();

            settingsManagerMock.SetupSet(x => x.LastDatabaseUpdate = It.IsAny <DateTime>())
            .Callback((DateTime x) => localDateSetting             = x);

            var viewmodel = new ModifyCategoryViewModel(categoryServiceMock.Object,
                                                        new Mock <IDialogService>().Object,
                                                        settingsManagerMock.Object,
                                                        new Mock <IBackupManager>().Object,
                                                        new Mock <IMvxLogProvider>().Object,
                                                        new Mock <IMvxNavigationService>().Object)
            {
                IsEdit           = false,
                SelectedCategory = category
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1));
            localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1));
        }
        public void DoneCommand_NameEmpty_ShowMessage()
        {
            // Setup
            var wasDialogServiceCalled = false;

            var dialogSetup = new Mock <IDialogService>();

            dialogSetup.Setup(x => x.ShowMessage(It.IsAny <string>(), It.IsAny <string>()))
            .Callback((string a, string b) => wasDialogServiceCalled = true);

            var vm = new ModifyCategoryViewModel(new Mock <ICategoryRepository>().Object,
                                                 dialogSetup.Object)
            {
                SelectedCategory = new Category()
            };

            // Execute
            vm.SaveCommand.Execute(new Category());

            // Assert
            wasDialogServiceCalled.ShouldBeTrue();
        }
Пример #9
0
        public void SaveCommand_DoesNotAllowDuplicateNames()
        {
            // Arrange
            var saveWasCalled       = false;
            var categoryServiceMock = new Mock <ICategoryService>();

            categoryServiceMock.Setup(c => c.CheckIfNameAlreadyTaken(It.IsAny <string>()))
            .ReturnsAsync(true);
            categoryServiceMock.Setup(c => c.SaveCategory(It.IsAny <Category>()))
            .Callback(() => saveWasCalled = true)
            .Returns(Task.CompletedTask);

            var categoryPrimary = new Category
            {
                Data =
                {
                    Id   = 1,
                    Name = "Test CategoryViewModel"
                }
            };

            var viewmodel = new ModifyCategoryViewModel(categoryServiceMock.Object,
                                                        new Mock <IDialogService>().Object,
                                                        new Mock <ISettingsManager>().Object,
                                                        new Mock <IBackupManager>().Object,
                                                        new Mock <IMvxLogProvider>().Object,
                                                        new Mock <IMvxNavigationService>().Object)
            {
                IsEdit           = false,
                SelectedCategory = new CategoryViewModel(categoryPrimary)
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            saveWasCalled.ShouldBeFalse();
        }
        public void SaveCategory_UpdateTimeStamp()
        {
            var category = new Category {
                Id = 0, Name = "category", Notes = ""
            };

            var categoryRepositorySetup = new Mock <ICategoryRepository>();

            categoryRepositorySetup.SetupAllProperties();
            categoryRepositorySetup.Setup(x => x.Save(category)).Returns(true);
            categoryRepositorySetup.Setup(x => x.GetList(null)).Returns(() => new ObservableCollection <Category>());

            var viewmodel = new ModifyCategoryViewModel(categoryRepositorySetup.Object, new Mock <IDialogService>().Object)
            {
                IsEdit           = false,
                SelectedCategory = category
            };

            viewmodel.SaveCommand.Execute();

            localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1));
            localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1));
        }
        public void SaveCommand_Does_Not_Allow_Duplicate_Names()
        {
            var categoryList = new List <CategoryViewModel>();

            var categoryRepositorySetup = new Mock <ICategoryRepository>();

            categoryRepositorySetup.Setup(c => c.GetList(It.IsAny <Expression <Func <CategoryViewModel, bool> > >()))
            .Returns(categoryList);
            categoryRepositorySetup.Setup(c => c.Save(It.IsAny <CategoryViewModel>()))
            .Callback((CategoryViewModel cat) => { categoryList.Add(cat); });

            var settingsManagerMock = new Mock <ISettingsManager>();

            var categoryPrimary = new CategoryViewModel
            {
                Id   = 1,
                Name = "Test CategoryViewModel"
            };
            var categorySecondary = new CategoryViewModel
            {
                Name = "Test CategoryViewModel"
            };

            categoryList.Add(categoryPrimary);

            var viewmodel = new ModifyCategoryViewModel(categoryRepositorySetup.Object,
                                                        new Mock <IDialogService>().Object,
                                                        settingsManagerMock.Object,
                                                        new Mock <IBackupManager>().Object)
            {
                IsEdit           = false,
                SelectedCategory = categorySecondary
            };

            viewmodel.SaveCommand.Execute();
            categoryList.Count.ShouldBe(1);
        }
        public void SaveCommand_SavesCategory()
        {
            var categoryList            = new List <Category>();
            var categoryRepositorySetup = new Mock <ICategoryRepository>();

            categoryRepositorySetup.Setup(c => c.Save(It.IsAny <Category>()))
            .Callback((Category cat) => { categoryList.Add(cat); });

            var categoryPrimary = new Category
            {
                Id    = 1,
                Name  = "Test Category",
                Notes = "Test Note"
            };

            var viewmodel = new ModifyCategoryViewModel(categoryRepositorySetup.Object, new Mock <IDialogService>().Object)
            {
                IsEdit           = false,
                SelectedCategory = categoryPrimary
            };

            viewmodel.SaveCommand.Execute();
            categoryList.Count.ShouldBe(1);
        }