示例#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 CreateDictionary_Test()
        {
            var mockRepo = new Mock <DevCmsDb>();

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

            var model = new EditDictionaryDto
            {
                Name  = "Test",
                Items = null
            };

            var controller = new DictionariesController(mockRepo.Object);

            Assert.Equal(1, mockRepo.Object.Dictionaries.Count());

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

            Assert.Equal("Edit", viewResult.ViewName);

            mockRepo.Verify();
            mockRepo.Verify(db => db.SaveChanges(), Times.Once());

            Assert.Equal(2, mockRepo.Object.Dictionaries.Count());
            var newDictionary = mockRepo.Object.Dictionaries.Last();

            Assert.Equal("Test", newDictionary.Name);

            Assert.Empty(resultModel.Items);
        }
示例#3
0
 private void Start()
 {
     if (Instance == null)
     {
         Instance = this;
     }
     controller = GetComponent <DictionariesController>();
 }
示例#4
0
        public void Delete_Test_NegativeParameter()
        {
            var mockRepo = new Mock <DevCmsDb>();

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

            var controller = new DictionariesController(mockRepo.Object);
            var result     = controller.Delete(-1);

            Assert.IsType <NotFoundResult>(result);
        }
示例#5
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);
        }
示例#6
0
        public void DeleteItem_Test_NotFound()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.DictionaryItems, GetItemsList());

            var controller = new DictionariesController(mockRepo.Object);

            var result = controller.DeleteItem(-1);

            Assert.IsType <NotFoundResult>(result);

            result = controller.DeleteItem(11);
            Assert.IsType <NotFoundResult>(result);
        }
示例#7
0
        public void DeleteItem_Test()
        {
            var mockRepo = new Mock <DevCmsDb>();

            mockRepo.SetupDbSetMock(db => db.DictionaryItems, GetItemsList());

            Assert.Equal(1, mockRepo.Object.DictionaryItems.Count());

            var controller = new DictionariesController(mockRepo.Object);
            var result     = controller.DeleteItem(1);
            var viewResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Edit", viewResult.ActionName);
            mockRepo.Verify(db => db.SaveChanges(), Times.Once);
            Assert.Equal(0, mockRepo.Object.DictionaryItems.Count());
        }
示例#8
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);
        }
示例#9
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);
        }
示例#10
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);
        }
示例#11
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);
        }
示例#12
0
        public void CreateDictionary_Test_InvalidModel()
        {
            var mockRepo = new Mock <DevCmsDb>();

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

            var model = new EditDictionaryDto();

            var controller = new DictionariesController(mockRepo.Object);

            controller.ModelState.AddModelError("Name", "Required");
            Assert.Equal(1, mockRepo.Object.Dictionaries.Count());
            var result      = controller.Index(model);
            var viewResult  = Assert.IsType <ViewResult>(result);
            var resultModel = Assert.IsAssignableFrom <EditDictionaryDto>(viewResult.ViewData.Model);

            mockRepo.Verify();
            mockRepo.Verify(db => db.SaveChanges(), Times.Never);

            Assert.Equal(1, mockRepo.Object.Dictionaries.Count());

            Assert.Null(resultModel.Name);
        }
示例#13
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);
        }
示例#14
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);
        }