public void Setup() { var mockHttpContext = new Mock<ControllerContext>(); mockHttpContext.SetupGet(p => p.HttpContext.User.Identity.Name).Returns("creator 2"); mockHttpContext.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true); eventMock = new Mock<IEventRepository>(); eventMock.Setup(m => m.Events).Returns(new Event[] { new Event { EventId = 1, Name = "event 1", Created = DateTime.Now, Creator = "creator 1", AvailableSpots = 4, DeadLine = DateTime.Now, CategoryId = 1 }, new Event { EventId = 2, Name = "event 2", Created = DateTime.Now, Creator = "creator 2", AvailableSpots = 2, DeadLine = DateTime.Now, CategoryId = 2 }, new Event { EventId = 3, Name = "event 3", Created = DateTime.Now, Creator = "creator 3", AvailableSpots = 2, DeadLine = DateTime.Now, CategoryId = 3 }, new Event { EventId = 4, Name = "event 4", Created = DateTime.Now, Creator = "creator 4", AvailableSpots = 2, DeadLine = DateTime.Now, CategoryId = 4 }, new Event { EventId = 5, Name = "event 5", Created = DateTime.Now, Creator = "creator 5", AvailableSpots = 3, DeadLine = DateTime.Now, CategoryId = 5 } }.AsQueryable()); eventMock.Setup(m => m.Participants).Returns(new UserEvent[] { new UserEvent { EventId = 1, UserEmail = "*****@*****.**", NumberOfSpots = 2 }, new UserEvent { EventId = 1, UserEmail = "*****@*****.**", NumberOfSpots = 1 }, new UserEvent { EventId = 2, UserEmail = "*****@*****.**", NumberOfSpots = 1 }, new UserEvent { EventId = 5, UserEmail = "*****@*****.**", NumberOfSpots = 2 }, new UserEvent { EventId = 5, UserEmail = "*****@*****.**", NumberOfSpots = 2 }, new UserEvent { EventId = 1, UserEmail = "*****@*****.**", NumberOfSpots = 1 } }.AsQueryable()); eventMock.Setup(m => m.EventParticipants(It.IsAny<int>())) .Returns((int eventId) => { return eventMock.Object.Participants.Where(s => s.EventId == eventId); }); eventMock.Setup(m => m.Categories).Returns(new Category[] { new Category { CategoryId = 1, Name = "Category1" }, new Category { CategoryId = 2, Name = "Category2" }, new Category { CategoryId = 3, Name = "Category3" }, new Category { CategoryId = 4, Name = "Category4" }, new Category { CategoryId = 5, Name = "Category5" } }.AsQueryable()); IEnumerable<SelectListItem> categories = eventMock.Object.Categories.ToList().Select(x => new SelectListItem { Text = x.Name, Value = x.CategoryId.ToString() } ); drawingMock = new Mock<IDrawingRepository>(); drawingMock.Setup(m => m.Winners).Returns(new Winner[] { new Winner { EventId = 1, UserEmail = "*****@*****.**", NumberOfSpotsWon = 2 }, new Winner { EventId = 2, UserEmail = "*****@*****.**", NumberOfSpotsWon = 2} }.AsQueryable()); categories.FirstOrDefault().Selected = true; selectedEvent = new EventViewModel { SelectedEvent = eventMock.Object.Events.FirstOrDefault(), Categories = categories }; controller = new DrawWinnerController(drawingMock.Object); }