예제 #1
0
        public void Edit_Post_Test()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var model      = new EditDictionaryDto
            {
                Name = "Sex2",
                Id   = 1,
                AddedOrEditedItem = new EditDictionaryItemDto
                {
                    Id   = 1,
                    Name = "Male2"
                }
            };
            var result     = controller.Edit(model);
            var viewResult = Assert.IsType <ViewResult>(result);

            mockRepo.Verify(db => db.SaveChanges(), Times.Once());
            Assert.Equal("Sex2", mockRepo.Object.Dictionaries.First().Name);
            Assert.Equal("Male2", mockRepo.Object.Dictionaries.First().Items.First().Name);

            var resultModel = Assert.IsAssignableFrom <EditDictionaryDto>(
                viewResult.ViewData.Model);

            Assert.Equal("Sex2", resultModel.Name);
            Assert.Equal("Male2", resultModel.Items.First().Name);
        }
예제 #2
0
        public void Edit_Test_Get_EditItem_NotFound()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var result     = controller.Edit(1, 11);

            Assert.IsType <NotFoundResult>(result);
        }
예제 #3
0
        public void Edit_Post_Test_InvalidDictionaryId()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var model      = new EditDictionaryDto
            {
                Name = "mmm",
                Id   = 11,
            };
            var result = controller.Edit(model);

            Assert.IsType <NotFoundResult>(result);
        }
예제 #4
0
        public void Edit_Test_Get()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var result     = controller.Edit(1, null);

            var viewResult  = Assert.IsType <ViewResult>(result);
            var resultModel = Assert.IsAssignableFrom <EditDictionaryDto>(
                viewResult.ViewData.Model);

            Assert.Equal(2, resultModel.Items.Count());
            Assert.Equal("Male", resultModel.Items.First().Name);
            Assert.Equal(1, resultModel.Id);
            Assert.Equal("Sex", resultModel.Name);
            Assert.Null(resultModel.AddedOrEditedItem);
        }
예제 #5
0
        public void Edit_Post_Test_InvalidItemId()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var model      = new EditDictionaryDto
            {
                Name = "mmm",
                Id   = 1,
                AddedOrEditedItem = new EditDictionaryItemDto
                {
                    Id   = 11,
                    Name = "Item mmm"
                }
            };

            Assert.Throws <InvalidOperationException>(() => controller.Edit(model));
            mockRepo.Verify(db => db.SaveChanges(), Times.Never);
        }
예제 #6
0
        public void Edit_Post_Test_AddItem_DictionaryNotFound()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var model      = new EditDictionaryDto
            {
                Id = 11,
                AddedOrEditedItem = new EditDictionaryItemDto//todo: not exist
                {
                    Name = "Third"
                }
            };

            controller.ModelState.AddModelError("Name", "Required");

            var result = controller.Edit(model);

            Assert.IsType <NotFoundResult>(result);
        }
예제 #7
0
        public void Edit_Post_Test_AddItem()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var model      = new EditDictionaryDto
            {
                Id = 1,
                AddedOrEditedItem = new EditDictionaryItemDto
                {
                    Name = "Unknown",
                }
            };

            controller.ModelState.AddModelError("Name", "Required");
            Assert.Single(controller.ModelState);

            Assert.Equal(2, mockRepo.Object.Dictionaries.First().Items.Count);

            var result = controller.Edit(model);

            var viewResult  = Assert.IsType <ViewResult>(result);
            var resultModel = Assert.IsAssignableFrom <EditDictionaryDto>(
                viewResult.ViewData.Model);

            mockRepo.Verify(db => db.SaveChanges(), Times.Once);
            Assert.Empty(controller.ModelState);
            Assert.Equal(3, mockRepo.Object.Dictionaries.First().Items.Count);

            Assert.Equal(3, resultModel.Items.Count());
            var items = mockRepo.Object.Dictionaries.First().Items.Where(a => a.Name == "Unknown");

            Assert.Single(items);
        }
예제 #8
0
        public void Edit_Post_Test_InvalidModelState()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.Dictionaries, GetDictionaries());

            var controller = new DictionariesController(mockRepo.Object);
            var model      = new EditDictionaryDto
            {
                Id = 1,
                AddedOrEditedItem = new EditDictionaryItemDto
                {
                    Id   = 1,
                    Name = "Item mmm"
                }
            };

            controller.ModelState.AddModelError("Name", "Required");
            controller.Edit(model);

            mockRepo.Verify(db => db.SaveChanges(), Times.Never);
            Assert.Equal("Sex", mockRepo.Object.Dictionaries.First().Name);
            Assert.Equal("Male", mockRepo.Object.Dictionaries.First().Items.First().Name);
        }