示例#1
0
        public void Index_AscendingSortParam_ReturnsAlphabeticalEntries()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            string sortByParam = Sort.SORT_ASCENDING;

            List <Entry> sortedDataSource = dataSource.ToList();

            sortedDataSource.Sort((a, b) => (a.Term.CompareTo(b.Term)));

            Entry expectedFirstAlphabeticalEntry = sortedDataSource.First();

            // Act
            ViewResult   result      = controller.Index(sortByParam) as ViewResult;
            List <Entry> actualModel = result.Model as List <Entry>;

            // Assert
            Assert.AreEqual(expectedFirstAlphabeticalEntry.Id, actualModel.First().Id);
        }
示例#2
0
        public void Save_UpdatedEntryValues_ReturnsUpdatedDataSet()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            Entry updatedEntry = new Entry()
            {
                Id         = dataSource.First().Id,
                Term       = dataSource.First().Term,
                Definition = dataSource.First().Definition
            };

            updatedEntry.Term       = "New Term Value From User";
            updatedEntry.Definition = "New Defintion Text to Replace Defintion From User Input";

            // Act
            controller.Save(updatedEntry);

            // Assert
            Assert.AreEqual(dataSource.First().Term, updatedEntry.Term);
            Assert.AreEqual(dataSource.First().Definition, updatedEntry.Definition);
        }
示例#3
0
        public void Delete_NullEntryID_ThrowsHttpException()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            // Assert
            Assert.ThrowsException <HttpException>(() => controller.Delete(null));
        }
示例#4
0
        public void Delete_DeleteEntryId_ReturnsUpdatedDataSet()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            int deleteEntryId           = dataSource.First().Id;
            int expectedDataSourceCount = dataSource.Count() - 1;

            // Act
            controller.Delete(deleteEntryId);
            var actualModel = mockContext.Object.Entries.Count();

            // Assert
            Assert.AreEqual(expectedDataSourceCount, mockContext.Object.Entries.Count());
        }
示例#5
0
        public void Save_UpdatedEntryValuesForInvalidEntry_ThrowsHttpException()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            Entry updatedEntry = new Entry()
            {
                Id         = 9999,
                Term       = dataSource.First().Term,
                Definition = dataSource.First().Definition
            };

            // Assert
            Assert.ThrowsException <HttpException>(() => controller.Save(updatedEntry));
        }
示例#6
0
        public void Index_NullSort_ReturnsIndexViewWithChangedSort()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            string expectedViewName            = "";
            string expectedViewBagNameSortParm = Sort.SORT_DESCENDING;

            // Act
            ViewResult result = controller.Index(null) as ViewResult;

            // Assert
            Assert.AreEqual(expectedViewName, result.ViewName);
            Assert.AreEqual(expectedViewBagNameSortParm, result.ViewData.First().Value);
        }
示例#7
0
        public void Edit_ValidEntry_ReturnsEditFormViewAndCorrespondingEntry()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            string expectedViewName = "EntryForm";
            Entry  expectedEntry    = dataSource.Last();

            // Act
            ViewResult result = controller.Edit(expectedEntry.Id) as ViewResult;

            // Assert
            Assert.AreEqual(expectedViewName, result.ViewName);
            Assert.AreEqual(expectedEntry.Term, ((Entry)result.Model).Term);
        }
示例#8
0
        public void New_Called_ReturnsNewFormViewAndEntry()
        {
            // Arrange
            var dataSource  = GetEntriesData();
            var mockSet     = new MockDbSet <Entry>(dataSource);
            var mockContext = new Mock <GlossaryContext>();

            mockContext.Setup(c => c.Set <Entry>()).Returns(mockSet.Object);

            var controller = new EntryController(mockContext.Object);

            string expectedViewName          = "EntryForm";
            int    expectedUnknownNewEntryID = Entry.UNASSIGNED_ID;

            // Act
            ViewResult result = controller.New() as ViewResult;

            // Assert
            Assert.AreEqual(expectedViewName, result.ViewName);
            Assert.AreEqual(expectedUnknownNewEntryID, ((Entry)result.Model).Id);
        }