예제 #1
0
        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);
        }
예제 #2
0
        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);
        }