public async void Index_ReturnsMatchingModel(int futureEventCount, int pastEventCount)
        {
            DateTime futureDate = DateTime.Now.AddDays(1);
            DateTime pastDate = DateTime.Now.AddDays(-1);

            List<Event> events = new List<Event>();

            for (int i = 0; i < futureEventCount; i++)
            {
                events.Add(new Event()
                {
                    Date = futureDate
                });
            }

            for (int i = 0; i < futureEventCount; i++)
            {
                events.Add(new Event()
                {
                    Date = pastDate
                });
            }

            Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake();
            Mock<DbSet<Event>> eventDbSetStub = TestHelpers.GetFakeAsyncDbSet(events.AsQueryable());
            dbStub.Setup(db => db.Events).Returns(eventDbSetStub.Object);

            EventsController controller = new EventsController(dbStub.Object, idGetter: null);

            var result = await controller.Index() as ViewResult;

            Assert.That(result != null);
            Assert.That(result.Model, Is.InstanceOf<EventListViewModel>());

            var model = (EventListViewModel)result.Model;

            Assert.That(model.Events, Has.Count.EqualTo(futureEventCount));
        }