public void ShowOtherVenuesAndDatesTest(bool otherVenuesExists) { // Arrange var courseDetailsCourseDetails = new _MVC_Views_CourseDetails_OtherDatesAndVenues_cshtml(); var courseDetailsViewModel = new CourseDetailsViewModel(); var courseDetails = new CourseDetails(); courseDetailsViewModel.CourseDetails.VenueDetails = new Venue(); if (otherVenuesExists) { courseDetailsViewModel.CourseDetails.Oppurtunities = new System.Collections.Generic.List <Oppurtunity>(); var otherDatesAndVenues = new Oppurtunity(); courseDetailsViewModel.CourseDetails.Oppurtunities.Add(otherDatesAndVenues); courseDetailsViewModel.CourseDetails.Oppurtunities.FirstOrDefault().VenueName = nameof(CourseDetails.Oppurtunities); } else { courseDetailsViewModel.CourseDetails.Oppurtunities = null; courseDetailsViewModel.NoOtherDateOrVenueAvailableMessage = nameof(CourseDetailsViewModel.NoOtherDateOrVenueAvailableMessage); } // Act var htmlDocument = courseDetailsCourseDetails.RenderAsHtml(courseDetailsViewModel); // Assert if (otherVenuesExists) { htmlDocument.DocumentNode.Descendants("td") .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") && div.InnerText.Contains(courseDetailsViewModel.CourseDetails.Oppurtunities.FirstOrDefault().VenueName)).Should().BeTrue(); } else { htmlDocument.DocumentNode.Descendants("td") .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") && div.InnerText.Contains(courseDetailsViewModel.NoOtherDateOrVenueAvailableMessage)).Should().BeTrue(); } }
public void Dfc9563NoOtherDatesTextTests(bool otherDatesAvailable) { // Arrange var otherDatesView = new _MVC_Views_CourseDetails_OtherDatesAndVenues_cshtml(); var viewModel = new CourseDetailsViewModel { NoOtherDateOrVenueAvailableMessage = nameof(CourseDetailsViewModel.NoOtherDateOrVenueAvailableMessage), CourseDetails = { VenueDetails = otherDatesAvailable ? new Venue() : null, Oppurtunities = otherDatesAvailable ? new List <Oppurtunity> { new Oppurtunity { StartDate = DateTime.Now, OppurtunityId = nameof(Oppurtunity.OppurtunityId), VenueName = nameof(Oppurtunity.VenueName), VenueUrl= nameof(Oppurtunity.VenueName) } } : Enumerable.Empty <Oppurtunity>().ToList() } }; // Act var htmlDocument = otherDatesView.RenderAsHtml(viewModel); // Assert if (otherDatesAvailable) { AssertTagInnerTextValueDoesNotExist(htmlDocument, viewModel.NoOtherDateOrVenueAvailableMessage, "td"); } else { AssertTagInnerTextValue(htmlDocument, viewModel.NoOtherDateOrVenueAvailableMessage, "td"); } }
public void OtherVenuesStartdatesTest(bool startDateIsNull) { //Arrange var startDate = DateTime.Now; var courseDetailsCourseDetails = new _MVC_Views_CourseDetails_OtherDatesAndVenues_cshtml(); var courseDetailsViewModel = new CourseDetailsViewModel(); var courseDetails = new CourseDetails(); courseDetailsViewModel.CourseDetails.VenueDetails = new Venue(); courseDetailsViewModel.CourseDetails.Oppurtunities = new System.Collections.Generic.List <Oppurtunity>(); var otherDatesAndVenues = new Oppurtunity(); if (!startDateIsNull) { otherDatesAndVenues.StartDate = startDate; } courseDetailsViewModel.CourseDetails.Oppurtunities.Add(otherDatesAndVenues); // Act var htmlDocument = courseDetailsCourseDetails.RenderAsHtml(courseDetailsViewModel); var expectedStartDate = $"{string.Format("{0:dd MMMM yyyy}", startDate)}"; var dateCell = htmlDocument.DocumentNode.SelectNodes("//table[1]/tbody/tr[2]/td[2]").FirstOrDefault().InnerText; // Assert if (startDateIsNull) { dateCell.Should().NotContain(expectedStartDate); } else { dateCell.Should().Contain(expectedStartDate); } }