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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }