public async Task Then_The_Help_Url_Is_Built_From_Config_If_Feature_Enabled_And_Show_Demand_Is_Returned( int standardCode, GetCourseResult response, LocationCookieItem locationCookieItem, [Frozen] Mock <IMediator> mediator, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > cookieStorageService, [Frozen] Mock <IOptions <FindApprenticeshipTrainingWeb> > config, [Greedy] CoursesController controller) { //Arrange config.Object.Value.EmployerDemandFeatureToggle = true; response.ShowEmployerDemand = true; mediator .Setup(x => x.Send( It.Is <GetCourseQuery>(c => c.CourseId.Equals(standardCode)), It.IsAny <CancellationToken>())) .ReturnsAsync(response); //Act var actual = await controller.CourseDetail(standardCode, "") as ViewResult; //Assert Assert.IsNotNull(actual); var actualModel = actual.Model as CourseViewModel; Assert.IsNotNull(actualModel); actualModel.HelpFindingCourseUrl.Should().Be($"{config.Object.Value.EmployerDemandUrl}/registerdemand/course/{actualModel.Id}/enter-apprenticeship-details"); }
public async Task Then_The_Help_Url_Set_If_Feature_Disabled( int standardCode, GetCourseResult response, LocationCookieItem locationCookieItem, [Frozen] Mock <IMediator> mediator, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > cookieStorageService, [Frozen] Mock <IOptions <FindApprenticeshipTrainingWeb> > config, [Greedy] CoursesController controller) { //Arrange config.Object.Value.EmployerDemandFeatureToggle = false; mediator .Setup(x => x.Send( It.Is <GetCourseQuery>(c => c.CourseId.Equals(standardCode)), It.IsAny <CancellationToken>())) .ReturnsAsync(response); //Act var actual = await controller.CourseDetail(standardCode, "") as ViewResult; //Assert Assert.IsNotNull(actual); var actualModel = actual.Model as CourseViewModel; Assert.IsNotNull(actualModel); actualModel.HelpFindingCourseUrl.Should().Be("https://help.apprenticeships.education.gov.uk/hc/en-gb#contact-us"); }
public async Task Then_If_No_Course_Is_Returned_Redirected_To_Page_Not_Found( int standardCode, GetCourseResult response, LocationCookieItem locationCookieItem, [Frozen] Mock <IMediator> mediator, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > cookieStorageService, [Greedy] CoursesController controller) { //Arrange cookieStorageService .Setup(x => x.Get(Constants.LocationCookieName)) .Returns(locationCookieItem); mediator .Setup(x => x.Send(It.Is <GetCourseQuery>(c => c.CourseId.Equals(standardCode)), It.IsAny <CancellationToken>())) .ReturnsAsync(new GetCourseResult()); //Act var actual = await controller.CourseDetail(standardCode, ""); //Assert Assert.IsNotNull(actual); var actualResult = actual as RedirectToRouteResult; Assert.IsNotNull(actualResult); actualResult.RouteName.Should().Be(RouteNames.Error404); }
public async Task Then_Gets_Training_Courses_From_Mediator( int courseId, GetCourseResult mediatorResult, [Frozen] Mock <IMediator> mockMediator, [Greedy] CoursesController controller) { mockMediator .Setup(mediator => mediator.Send( It.Is <GetCourseQuery>(c => c.CourseId.Equals(courseId)), It.IsAny <CancellationToken>())) .ReturnsAsync(mediatorResult); var controllerResult = await controller.Get(courseId) as ObjectResult; Assert.IsNotNull(controllerResult); controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK); var model = controllerResult.Value as GetCourseResponse; Assert.IsNotNull(model); model.Course.Should().BeEquivalentTo(mediatorResult.Course, options => options .Excluding(c => c.LarsCode) .Excluding(c => c.StandardUId)); model.Course.Id.Should().Be(mediatorResult.Course.LarsCode); }
public async Task Then_The_Query_Is_Sent_And_Data_Retrieved_And_View_Shown( int standardCode, GetCourseResult response, LocationCookieItem locationCookieItem, ShortlistCookieItem shortlistCookieItem, [Frozen] Mock <IMediator> mediator, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > cookieStorageService, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > shortlistStorageService, [Greedy] CoursesController controller) { //Arrange response.ShowEmployerDemand = true; cookieStorageService .Setup(x => x.Get(Constants.LocationCookieName)) .Returns(locationCookieItem); shortlistStorageService .Setup(x => x.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookieItem); mediator .Setup(x => x.Send(It.Is <GetCourseQuery>(c => c.CourseId.Equals(standardCode) && c.ShortlistUserId.Equals(shortlistCookieItem.ShortlistUserId) && c.Lat.Equals(locationCookieItem.Lat) && c.Lon.Equals(locationCookieItem.Lon) ), It.IsAny <CancellationToken>())) .ReturnsAsync(response); //Act var actual = await controller.CourseDetail(standardCode, ""); //Assert Assert.IsNotNull(actual); var actualResult = actual as ViewResult; Assert.IsNotNull(actualResult); var actualModel = actualResult.Model as CourseViewModel; Assert.IsNotNull(actualModel); actualModel.TotalProvidersCount.Should().Be(response.ProvidersCount.TotalProviders); actualModel.ProvidersAtLocationCount.Should().Be(response.ProvidersCount.ProvidersAtLocation); actualModel.LocationName.Should().Be(locationCookieItem.Name); actualModel.ShortlistItemCount.Should().Be(response.ShortlistItemCount); }
public async Task And_Location_Minus_1_Then_Removes_Location( int standardCode, string locationName, GetCourseResult response, [Frozen] Mock <IMediator> mediator, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > cookieStorageService, [Greedy] CoursesController controller) { //Arrange locationName = "-1"; mediator .Setup(x => x.Send( It.Is <GetCourseQuery>(c => c.CourseId.Equals(standardCode)), It.IsAny <CancellationToken>())) .ReturnsAsync(response); //Act await controller.CourseDetail(standardCode, locationName); //Assert cookieStorageService.Verify(service => service.Delete(Constants.LocationCookieName)); }
public async Task Then_If_There_Is_A_Location_Cookie_The_Lat_Lon_And_Name_Are_Passed_To_The_Query( int standardCode, GetCourseResult response, LocationCookieItem locationCookieItem, [Frozen] Mock <IMediator> mediator, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > cookieStorageService, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > shortlistStorageService, [Greedy] CoursesController controller) { //Arrange cookieStorageService.Setup(x => x.Get(Constants.LocationCookieName)) .Returns(locationCookieItem); shortlistStorageService .Setup(x => x.Get(Constants.ShortlistCookieName)) .Returns((ShortlistCookieItem)null); mediator.Setup(x => x.Send(It.Is <GetCourseQuery>(c => c.CourseId.Equals(standardCode) && c.Lat.Equals(locationCookieItem.Lat) && c.Lon.Equals(locationCookieItem.Lon) && c.LocationName.Equals(locationCookieItem.Name) && c.ShortlistUserId == null ), It.IsAny <CancellationToken>())) .ReturnsAsync(response); //Act var actual = await controller.CourseDetail(standardCode, ""); //Assert Assert.IsNotNull(actual); var actualResult = actual as ViewResult; Assert.IsNotNull(actualResult); var actualModel = actualResult.Model as CourseViewModel; Assert.IsNotNull(actualModel); }
protected override void ProcessRecord() { Logger.Instance(typeof(McGetCourseCmdlet)).Info("Get-McCourse -CourseName {0} -CourseId {1} -CourseUri {2} -CourseTearcher {3} -CourseSchool {4}", this.CourseName, this.CourseId, this.CourseUri, this.CourseTearcher, this.CourseSchool); try { //构建Request对象 CourseRequestMessage request = new CourseRequestMessage() { Name = this.CourseName, Id = this.CourseId, School = this.CourseSchool, Tearcher = this.CourseTearcher, Uri = this.CourseUri }; //调用WCF读取数据 CourseService courseService = new CourseService("127.0.0.1", "8850"); CourseResponseMessage response = courseService.GetCourse(request); List <GetCourseResult> results = new List <GetCourseResult>(); //构建结果对象 foreach (Course course in response.Courses) { GetCourseResult result = new GetCourseResult() { Name = course.Name, Tearcher = course.Tearcher, Url = course.Url }; results.Add(result); } this.WriteObject(results); } catch (Exception e) { //this.WriteError(new ErrorRecord(e,"0001",null,null)); } }