public void Create_Post_CreatesNewLunchAndSavesToDb()
        {
            // Arrange
            var controller = new LunchesController(_context);

            // Act
            var result = controller.Create(new LunchCreateEditViewModel
            {
                Host        = "Brent",
                MeetingTime = new DateTime(1999, 12, 31),
                Restaurants = new List <CheckBoxListItem>()
                {
                    new CheckBoxListItem {
                        Display = "some restaurant", IsChecked = true
                    }
                }
            }) as RedirectToRouteResult;

            // Assert
            var sut = _context.Lunches.First();

            sut.ShouldNotBeNull();
            sut.Restaurants.ShouldNotBeEmpty();
            result.RouteValues["action"].ShouldBe("Index");
        }
        public void Create_Get_CreatesDefaultAndShowsItInTheView()
        {
            // Arrange
            var controller = new LunchesController(_context);

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

            // Assert
            result.ShouldNotBeNull();
            result.Model.ShouldBeOfType <LunchCreateEditViewModel>();
        }
        public void Create_Post_ModelStateIsInvalidIfNoRestaurantSelected()
        {
            // Arrange
            var controller = new LunchesController(_context);

            // Act
            var result = controller.Create(new LunchCreateEditViewModel
            {
                Host        = "Brent",
                MeetingTime = new DateTime(1999, 12, 31),
                Restaurants = new List <CheckBoxListItem>()
                {
                    new CheckBoxListItem {
                        Display = "some restaurant", IsChecked = false
                    }
                }
            }) as RedirectToRouteResult;

            // Assert
            var sut = _context.Lunches.First();

            sut.ShouldNotBeNull();
        }