CapRaffle.UnitTests.DrawWinnerControllerTests.Setup C# (CSharp) Method

Setup() private method

private Setup ( ) : void
return void
        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 = "[email protected]", NumberOfSpots = 2 },
                new UserEvent { EventId = 1, UserEmail = "[email protected]", NumberOfSpots = 1 },
                new UserEvent { EventId = 2, UserEmail = "[email protected]", NumberOfSpots = 1 },
                new UserEvent { EventId = 5, UserEmail = "[email protected]", NumberOfSpots = 2 },
                new UserEvent { EventId = 5, UserEmail = "[email protected]", NumberOfSpots = 2 },
                new UserEvent { EventId = 1, UserEmail = "[email protected]", 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 = "[email protected]", NumberOfSpotsWon = 2 },
                new Winner { EventId = 2, UserEmail = "[email protected]", NumberOfSpotsWon = 2}
            }.AsQueryable());
            categories.FirstOrDefault().Selected = true;

            selectedEvent = new EventViewModel { SelectedEvent = eventMock.Object.Events.FirstOrDefault(), Categories = categories };

            controller = new DrawWinnerController(drawingMock.Object);
        }