public void ShowPublish() { var enrichmentModel = new CourseEnrichmentModel { AboutCourse = "AboutCourse", InterviewProcess = "InterviewProcess", HowSchoolPlacementsWork = "HowSchoolPlacementsWork" }; var ucasCourseEnrichmentGetModel = new UcasCourseEnrichmentGetModel { EnrichmentModel = enrichmentModel }; var mockApi = new Mock <IManageApi>(); mockApi.Setup(x => x.GetCourseEnrichment(TestHelper.ProviderCode, TestHelper.TargetedProviderCode)).ReturnsAsync(ucasCourseEnrichmentGetModel).Verifiable(); mockApi.Setup(x => x.PublishCourseToSearchAndCompare(TestHelper.ProviderCode, TestHelper.TargetedProviderCode)).ReturnsAsync(true).Verifiable(); mockApi.Setup(x => x.GetCourse(TestHelper.ProviderCode, TestHelper.TargetedProviderCode)).ReturnsAsync(new Course { ProgramType = "", Provider = new GovUk.Education.ManageCourses.Domain.Models.Provider() }).Verifiable(); var objectValidator = new Mock <IObjectModelValidator>(); BaseCourseEnrichmentViewModel objectToVerify = null; objectValidator.Setup(o => o.Validate(It.IsAny <ActionContext>(), It.IsAny <ValidationStateDictionary>(), It.IsAny <string>(), It.IsAny <Object>())) .Callback <ActionContext, ValidationStateDictionary, string, Object>((a, b, c, d) => { objectToVerify = d as BaseCourseEnrichmentViewModel; }) .Verifiable(); var frontendUrlMock = new Mock <IFrontendUrlService>(); var courseController = new CourseController(mockApi.Object, new Mock <ISearchAndCompareUrlService>().Object, frontendUrlMock.Object); courseController.ObjectValidator = objectValidator.Object; courseController.TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>()); var res = courseController.ShowPublish(TestHelper.ProviderCode, "def", TestHelper.TargetedProviderCode).Result; mockApi.VerifyAll(); objectValidator.VerifyAll(); Assert.AreEqual("success", courseController.TempData["MessageType"]); Assert.AreEqual("Your course has been published", courseController.TempData["MessageTitle"]); Assert.IsNotNull(objectToVerify); Assert.AreEqual("AboutCourse", objectToVerify.AboutCourse); Assert.AreEqual("InterviewProcess", objectToVerify.InterviewProcess); Assert.AreEqual("HowSchoolPlacementsWork", objectToVerify.HowSchoolPlacementsWork); }
private static BaseCourseEnrichmentViewModel GetCourseEnrichmentViewModel(UcasCourseEnrichmentGetModel ucasCourseEnrichmentGetModel, bool isSalary, CourseRouteDataViewModel routeData = null) { BaseCourseEnrichmentViewModel result = null; ucasCourseEnrichmentGetModel = ucasCourseEnrichmentGetModel ?? new UcasCourseEnrichmentGetModel(); var enrichmentModel = ucasCourseEnrichmentGetModel?.EnrichmentModel ?? new CourseEnrichmentModel(); if (isSalary) { result = new SalaryBasedCourseEnrichmentViewModel() { AboutCourse = enrichmentModel.AboutCourse, InterviewProcess = enrichmentModel.InterviewProcess, HowSchoolPlacementsWork = enrichmentModel.HowSchoolPlacementsWork, Qualifications = enrichmentModel.Qualifications, PersonalQualities = enrichmentModel.PersonalQualities, OtherRequirements = enrichmentModel.OtherRequirements, CourseLength = enrichmentModel.CourseLength.GetCourseLength(), CourseLengthInput = enrichmentModel.CourseLength.GetCourseLengthInput(), SalaryDetails = enrichmentModel.SalaryDetails, DraftLastUpdatedUtc = ucasCourseEnrichmentGetModel.UpdatedTimestampUtc, LastPublishedUtc = ucasCourseEnrichmentGetModel.LastPublishedTimestampUtc, RouteData = routeData }; } else { result = new FeeBasedCourseEnrichmentViewModel() { AboutCourse = enrichmentModel.AboutCourse, InterviewProcess = enrichmentModel.InterviewProcess, HowSchoolPlacementsWork = enrichmentModel.HowSchoolPlacementsWork, Qualifications = enrichmentModel.Qualifications, PersonalQualities = enrichmentModel.PersonalQualities, OtherRequirements = enrichmentModel.OtherRequirements, CourseLength = enrichmentModel.CourseLength.GetCourseLength(), CourseLengthInput = enrichmentModel.CourseLength.GetCourseLengthInput(), FeeUkEu = enrichmentModel.FeeUkEu.GetFeeValue(), FeeInternational = enrichmentModel.FeeInternational.GetFeeValue(), FeeDetails = enrichmentModel.FeeDetails, FinancialSupport = enrichmentModel.FinancialSupport, DraftLastUpdatedUtc = ucasCourseEnrichmentGetModel.UpdatedTimestampUtc, LastPublishedUtc = ucasCourseEnrichmentGetModel.LastPublishedTimestampUtc, RouteData = routeData }; } return(result); }
private static List <ValidationResult> Validate(BaseCourseEnrichmentViewModel input) { var feeBasedCourseEnrichmentViewModel = (input as FeeBasedCourseEnrichmentViewModel); var salaryBasedCourseEnrichmentViewModel = (input as SalaryBasedCourseEnrichmentViewModel); var validationResults = new List <ValidationResult>(); if (feeBasedCourseEnrichmentViewModel != null) { var validationContext = new ValidationContext(feeBasedCourseEnrichmentViewModel, null, null); Validator.TryValidateObject(feeBasedCourseEnrichmentViewModel, validationContext, validationResults, true); } else { var validationContext = new ValidationContext(salaryBasedCourseEnrichmentViewModel, null, null); Validator.TryValidateObject(salaryBasedCourseEnrichmentViewModel, validationContext, validationResults, true); } return(validationResults); }