public void ShowEntryRequirementsTest(bool hasValue)
        {
            // Arrange
            var courseDetailsCourseDetails = new _MVC_Views_CourseDetails_CourseDetails_cshtml();
            var courseDetailsViewModel     = new CourseDetailsViewModel();

            courseDetailsViewModel.CourseDetails = new CourseDetails();
            if (hasValue)
            {
                courseDetailsViewModel.CourseDetails.EntryRequirements = nameof(CourseDetailsViewModel.CourseDetails.EntryRequirements);
            }
            else
            {
                courseDetailsViewModel.NoEntryRequirementsAvailableMessage = nameof(CourseDetailsViewModel.NoEntryRequirementsAvailableMessage);
            }

            // Act
            var htmlDocument = courseDetailsCourseDetails.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (hasValue)
            {
                htmlDocument.DocumentNode.Descendants("p")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-body") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.EntryRequirements)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("p")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-body") &&
                     div.InnerText.Contains(courseDetailsViewModel.NoEntryRequirementsAvailableMessage)).Should().BeTrue();
            }
        }
        public void ShowHideBackToResultsTest(bool referralUrlExists)
        {
            // Arrange
            var courseDetailsHtml      = new _MVC_Views_CourseDetails_CourseDetails_cshtml();
            var courseDetailsViewModel = new CourseDetailsViewModel();
            var courseDetails          = new CourseDetails();

            if (referralUrlExists)
            {
                courseDetailsViewModel.ReferralPath = nameof(CourseDetailsViewModel.ReferralPath);
            }
            else
            {
                courseDetailsViewModel.ReferralPath = null;
            }

            // Act
            var htmlDocument = courseDetailsHtml.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (referralUrlExists)
            {
                htmlDocument.DocumentNode.Descendants("a")
                .Any(a => a.Attributes["class"].Value.Contains("govuk-back-link") &&
                     a.Attributes["href"].Value.Contains(courseDetailsViewModel.ReferralPath)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("a")
                .Any(a => a.Attributes["class"].Value.Contains("govuk-back-link") &&
                     a.Attributes["href"].Value.Contains(courseDetailsViewModel.ReferralPath)).Should().BeFalse();
            }
        }
        public void Dfc9560MissingFieldsTest(CourseDetailsViewModel courseDetailsViewModel, CourseDetails courseDetails)
        {
            //Arrange
            courseDetailsViewModel.CourseDetails = courseDetails;
            var detailsView = new _MVC_Views_CourseDetails_CourseDetails_cshtml();

            //Act
            var htmlDocument = detailsView.RenderAsHtml(courseDetailsViewModel);

            //Asserts
            if (!string.IsNullOrWhiteSpace(courseDetails.AttendancePattern))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.AttendancePatternLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.AttendancePattern, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.AwardingOrganisation))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.AwardingOrganisationLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.AwardingOrganisation, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.CourseWebpageLink))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.CourseWebpageLinkLabel, "th");
                AssertElementExistsByAttributeAndValue(htmlDocument, "a", "href", courseDetails.CourseWebpageLink);
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.StudyMode))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.CourseTypeLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.StudyMode, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.AdditionalPrice))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.AdditionalPriceLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.AdditionalPrice, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.QualificationName))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.QualificationNameLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.QualificationName, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.QualificationLevel))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.QualificationLevelLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.QualificationLevel, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.Cost))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.PriceLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.Cost, "td");
            }
        }
コード例 #4
0
        public CourseDetailsWorkBasedVenuesTests()
        {
            courseDetailsView = new _MVC_Views_CourseDetails_CourseDetails_cshtml();

            courseDetailsViewModel = new CourseDetailsViewModel
            {
                NationalWorkBasedText = "National",
                CourseDetails         =
                {
                    National       = true,
                    AttendanceMode = "Work based",
                }
            };
        }
        public void Dfc7056CourseDetailsPartialViewTests()
        {
            // Arrange
            var courseDetailsIndex = new _MVC_Views_CourseDetails_CourseDetails_cshtml();

            var courseDetails = new CourseDetails();
            var model         = new CourseDetailsViewModel();

            model.CourseDetails.Title = nameof(CourseDetails.Title);

            // Act
            var htmlDocument = courseDetailsIndex.RenderAsHtml(model);

            // Assert
            AssertTagInnerTextValue(htmlDocument, model.CourseDetails.Title, "h1");
            this.AssertTableCounts(htmlDocument, 1);
            this.AssertH2HeadingCounts(htmlDocument, 9);
        }
        public void ShowVenueDetailsTest(bool venueExists)
        {
            // Arrange
            var courseDetailsCourseDetails = new _MVC_Views_CourseDetails_CourseDetails_cshtml();
            var courseDetailsViewModel     = new CourseDetailsViewModel();

            courseDetailsViewModel.CourseDetails = new CourseDetails();

            if (venueExists)
            {
                courseDetailsViewModel.CourseDetails.VenueDetails = new Venue
                {
                    VenueName = nameof(CourseDetails.VenueDetails.VenueName),
                    Location  = new Address
                    {
                        AddressLine1 = nameof(CourseDetails.VenueDetails.Location.AddressLine1),
                        AddressLine2 = nameof(CourseDetails.VenueDetails.Location.AddressLine2),
                        Town         = nameof(CourseDetails.VenueDetails.Location.Town),
                        County       = nameof(CourseDetails.VenueDetails.Location.County),
                        Postcode     = nameof(CourseDetails.VenueDetails.Location.Postcode)
                    },
                    Website      = nameof(CourseDetails.VenueDetails.Website),
                    EmailAddress = nameof(CourseDetails.VenueDetails.EmailAddress),
                    PhoneNumber  = nameof(CourseDetails.VenueDetails.PhoneNumber),
                    Facilities   = nameof(CourseDetails.VenueDetails.Facilities),
                    Fax          = nameof(CourseDetails.VenueDetails.Fax)
                };
            }
            else
            {
                courseDetailsViewModel.CourseDetails.VenueDetails = null;
            }

            // Act
            var htmlDocument = courseDetailsCourseDetails.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (venueExists)
            {
                htmlDocument.DocumentNode.Descendants("td")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.VenueDetails.VenueName)).Should().BeTrue();

                htmlDocument.DocumentNode.Descendants("td")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.VenueDetails.Location.AddressLine1)).Should().BeTrue();
                htmlDocument.DocumentNode.Descendants("td")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.VenueDetails.Location.AddressLine2)).Should().BeTrue();
                htmlDocument.DocumentNode.Descendants("td")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.VenueDetails.Location.Town)).Should().BeTrue();
                htmlDocument.DocumentNode.Descendants("td")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.VenueDetails.Location.Postcode)).Should().BeTrue();
                htmlDocument.DocumentNode.Descendants("td")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.VenueDetails.Location.County)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("td")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-table__cell") &&
                     div.InnerText.Contains(nameof(courseDetailsViewModel.CourseDetails.VenueDetails.VenueName))).Should().BeFalse();
            }
        }