public void TestUpdateSportEventGetRequestsReturnsViewWithSportEventModel()
        {
            //Arrange
            var dummySportEvent = new SportEvent
            {
                Name           = "Voetbaltoernooi",
                Description    = "Potje voetballen voor de starters",
                MaxAttendees   = 5,
                MinAttendees   = 20,
                SportId        = 2,
                EventStartTime = DateTime.Today.AddHours(11),
                EventEndTime   = DateTime.Today.AddHours(13)
            };
            var sports = new[]
            {
                new Sport {
                    Name = "Voetbal"
                },
                new Sport {
                    Name = "Basketbal"
                },
                new Sport {
                    Name = "Hockey"
                },
                new Sport {
                    Name = "Volleybal"
                },
            };

            var addSportEventViewModel = new AddSportEventViewModel
            {
                SportEvent = dummySportEvent,
                Sports     = sports
            };


            var mockSportManager      = new Mock <ISportManager>();
            var mockSportEventManager = new Mock <ISportEventManager>();
            var controller            = new SportEventController(mockSportEventManager.Object, mockSportManager.Object);

            mockSportManager.Setup(sm => sm.SportsList()).Returns(sports);
            mockSportEventManager.Setup(sm => sm.ViewSportEvent(It.IsAny <int>())).Returns(dummySportEvent);

            //Act
            var result    = controller.Update(1) as ViewResult;
            var viewModel = (AddSportEventViewModel)result.Model;

            //Assert
            Assert.IsType(typeof(ViewResult), result);
            Assert.Equal(4, viewModel.Sports.Count());
        }
        public void TestUpdateSportEventPostRequestModelStateInvalidReturnsToIndex()
        {
            //Arrange
            var dummySportEvent = new SportEvent
            {
                Name           = "Voetbaltoernooi",
                Description    = "Potje voetballen voor de starters",
                MaxAttendees   = 5,
                MinAttendees   = 20,
                SportId        = 2,
                EventStartTime = DateTime.Today.AddHours(11),
                EventEndTime   = DateTime.Today.AddHours(13)
            };

            var addSportEventViewModel = new AddSportEventViewModel
            {
                SportEvent = dummySportEvent
            };

            var mockSportManager      = new Mock <ISportManager>();
            var mockSportEventManager = new Mock <ISportEventManager>();
            var mockTempData          = new Mock <ITempDataDictionary>();
            var controller            = new SportEventController(mockSportEventManager.Object, mockSportManager.Object)
            {
                TempData = mockTempData.Object
            };

            controller.ModelState.AddModelError("key", "error message");

            mockSportEventManager.Setup(sm => sm.EditSportEvent(It.IsAny <SportEvent>())).Returns(true);

            //Act
            var result = controller.Update(addSportEventViewModel) as ViewResult;


            //Assert
            Assert.IsType(typeof(ViewResult), result);
            Assert.Same("Update", result.ViewName);
        }