public void TestCourseLengthTwoYearsCopyFrom_CourseSalaryEnrichmentViewModel() { var viewModel = new CourseSalaryEnrichmentViewModel(); var enrichmentModel = new CourseEnrichmentModel { CourseLength = "TwoYears" }; viewModel.CopyFrom(enrichmentModel); viewModel.CourseLength.Should().Be(CourseLength.TwoYears); viewModel.CourseLengthInput.Should().BeNullOrEmpty(); }
public async Task SalaryPost() { var manageApi = new Mock <IManageApi>(); var viewModel = new CourseSalaryEnrichmentViewModel { SalaryDetails = "SalaryDetails", CourseLength = CourseLength.TwoYears }; var enrichmentModel = new CourseEnrichmentModel { SalaryDetails = "SalaryDetails2", CourseLength = null }; var ucasCourseEnrichmentGetModel = new UcasCourseEnrichmentGetModel { EnrichmentModel = enrichmentModel }; manageApi.Setup(x => x.GetCourseEnrichment(TestHelper.ProviderCode, TestHelper.TargetedProviderCode)).ReturnsAsync(ucasCourseEnrichmentGetModel); var tempDataMock = new Mock <ITempDataDictionary>(); var urlHelperMock = new Mock <IUrlHelper>(); var previewLink = "preview-link"; Expression <Func <IUrlHelper, string> > urlSetup = url => url.Action(It.Is <UrlActionContext>(uac => uac.Action == "Preview")); urlHelperMock.Setup(urlSetup).Returns(previewLink); var frontendUrlMock = new Mock <IFrontendUrlService>(); var controller = new CourseController(manageApi.Object, new SearchAndCompareUrlService("http://www.example.com"), frontendUrlMock.Object); controller.TempData = tempDataMock.Object; controller.Url = urlHelperMock.Object; var result = await controller.SalaryPost(TestHelper.ProviderCode, TestHelper.AccreditingProviderCode, TestHelper.TargetedProviderCode, viewModel); var redirectToActionResult = result as RedirectToActionResult; Assert.IsNotNull(redirectToActionResult); Assert.AreEqual("Show", redirectToActionResult.ActionName); var tempData = controller.TempData; VerifyTempDataIsSet(tempDataMock, previewLink); var routeValues = redirectToActionResult.RouteValues; Assert.AreEqual(TestHelper.ProviderCode, routeValues["providerCode"]); Assert.AreEqual(TestHelper.AccreditingProviderCode, routeValues["accreditingProviderCode"]); Assert.AreEqual(TestHelper.TargetedProviderCode, routeValues["courseCode"]); manageApi.Verify(x => x.SaveCourseEnrichment(TestHelper.ProviderCode, TestHelper.TargetedProviderCode, It.Is <CourseEnrichmentModel>(c => Check(c, viewModel))), Times.Once()); }
public void CourseSalaryEnrichmentViewModel_CopyFrom() { var viewModel = new CourseSalaryEnrichmentViewModel { SalaryDetails = "VM.SalaryDetails" }; CourseEnrichmentModel model = GetAnEnrichmentModel(); viewModel.CopyFrom(model); viewModel.CourseLength.Should().Be(CourseLength.OneYear); viewModel.SalaryDetails.Should().Be("VM.SalaryDetails"); }
public void TestCourseLengthMapIntoForSelection_CourseSalaryEnrichmentViewModel(string courseLengthOther) { var viewModel = new CourseSalaryEnrichmentViewModel { CourseLength = CourseLength.OneYear, CourseLengthInput = courseLengthOther }; var enrichmentModel = new CourseEnrichmentModel(); viewModel.MapInto(ref enrichmentModel); enrichmentModel.CourseLength.Should().BeEquivalentTo("OneYear"); }
public void TestCourseLengthCopyFromForOtherTextEntry_CourseSalaryEnrichmentViewModel() { const string textEnteredByUser = "******"; var viewModel = new CourseSalaryEnrichmentViewModel(); var enrichmentModel = new CourseEnrichmentModel { CourseLength = textEnteredByUser }; viewModel.CopyFrom(enrichmentModel); viewModel.CourseLength.Should().Be(CourseLength.Other); viewModel.CourseLengthInput.Should().BeEquivalentTo(textEnteredByUser); }
public void TestCourseLengthMapIntoForOtherTextEntry_CourseSalaryEnrichmentViewModel() { const string TextEnteredByUser = "******"; var viewModel = new CourseSalaryEnrichmentViewModel { CourseLength = CourseLength.Other, CourseLengthInput = TextEnteredByUser }; var enrichmentModel = new CourseEnrichmentModel(); viewModel.MapInto(ref enrichmentModel); enrichmentModel.CourseLength.Should().BeEquivalentTo(TextEnteredByUser); }
public async Task SalaryPost_Invalid() { var manageApi = new Mock <IManageApi>(); var viewModel = new CourseSalaryEnrichmentViewModel { SalaryDetails = "SalaryDetails", CourseLength = CourseLength.Other }; var testCourse = new Course() { Name = "Name", CourseCode = "CourseCode" }; manageApi.Setup(x => x.GetCourse(TestHelper.ProviderCode, TestHelper.TargetedProviderCode)).ReturnsAsync(testCourse); var frontendUrlMock = new Mock <IFrontendUrlService>(); var controller = new CourseController(manageApi.Object, new SearchAndCompareUrlService("http://www.example.com"), frontendUrlMock.Object); controller.ModelState.AddModelError("you", "failed"); var result = await controller.SalaryPost(TestHelper.ProviderCode, TestHelper.AccreditingProviderCode, TestHelper.TargetedProviderCode, viewModel); var viewResult = result as ViewResult; Assert.IsNotNull(viewResult); Assert.AreEqual("Salary", viewResult.ViewName); var model = viewResult.Model as CourseSalaryEnrichmentViewModel; Assert.IsNotNull(model); Assert.AreEqual(TestHelper.ProviderCode, model.RouteData.ProviderCode); Assert.AreEqual(TestHelper.TargetedProviderCode, model.RouteData.CourseCode); Assert.AreEqual(viewModel.CourseLength, model.CourseLength); Assert.AreEqual(viewModel.SalaryDetails, model.SalaryDetails); }
public async Task <IActionResult> SalaryPost(string providerCode, string accreditingProviderCode, string courseCode, CourseSalaryEnrichmentViewModel viewModel) { if (!ModelState.IsValid) { var routeData = GetCourseRouteDataViewModel(providerCode, courseCode); var courseDetails = await _manageApi.GetCourse(providerCode, courseCode); var courseInfo = new CourseInfoViewModel { ProgrammeCode = courseDetails.CourseCode, Name = courseDetails.Name }; viewModel.RouteData = routeData; viewModel.CourseInfo = courseInfo; await LoadCopyableCoursesIntoViewBag(providerCode, courseCode); return(View("Salary", viewModel)); } if (await SaveEnrichment(providerCode, courseCode, viewModel)) { CourseSavedMessage(); } return(RedirectToAction("Show", new { providerCode = providerCode, accreditingProviderCode = accreditingProviderCode, courseCode })); }