Example #1
0
        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");
        }
Example #2
0
        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");
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #8
0
 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));
     }
 }