public async Task Then_If_There_Is_No_Course_Or_Provider_Then_Not_Found_Returned( int standardCode, int providerId, string location, double lat, double lon, Guid?shortlistUserId, GetTrainingCourseProviderResult mediatorResult, [Frozen] Mock <IMediator> mockMediator, [Greedy] TrainingCoursesController controller) { mediatorResult.ProviderStandard = null; mediatorResult.Course = null; mediatorResult.TotalProviders = 0; mediatorResult.TotalProvidersAtLocation = 0; mockMediator .Setup(mediator => mediator.Send( It.Is <GetTrainingCourseProviderQuery>( c => c.CourseId.Equals(standardCode) && c.ProviderId.Equals(providerId) && c.Location.Equals(location) && c.Lat.Equals(lat) && c.Lon.Equals(lon) && c.ShortlistUserId.Equals(shortlistUserId) ), It.IsAny <CancellationToken>())) .ReturnsAsync(mediatorResult); var controllerResult = await controller.GetProviderCourse(standardCode, providerId, location, lat, lon, shortlistUserId) as StatusCodeResult; Assert.IsNotNull(controllerResult); controllerResult.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public GetProviderCourseItem Map(GetTrainingCourseProviderResult source, string sectorSubjectArea, int level, bool hasLocation) { var achievementRate = GetAchievementRateItem(source.ProviderStandard.AchievementRates, sectorSubjectArea, level); var nationalRate = GetAchievementRateItem(source.OverallAchievementRates, sectorSubjectArea, level); var deliveryModes = FilterDeliveryModes(source.ProviderStandard.DeliveryTypes); var employerFeedbackResponse = EmployerFeedbackResponse(source.ProviderStandard.EmployerFeedback); var apprenticeFeedbackResponse = ApprenticeFeedbackResponse(source.ProviderStandard.ApprenticeFeedback); return(new GetProviderCourseItem { ProviderAddress = new GetProviderAddress().Map(source.ProviderStandard.ProviderAddress, hasLocation), Website = source.ProviderStandard.StandardInfoUrl, Phone = source.ProviderStandard.Phone, Email = source.ProviderStandard.Email, Name = source.ProviderStandard.Name, TradingName = source.ProviderStandard.TradingName, MarketingInfo = source.ProviderStandard.MarketingInfo, ProviderId = source.ProviderStandard.Ukprn, OverallCohort = achievementRate?.OverallCohort, NationalOverallCohort = nationalRate?.OverallCohort, OverallAchievementRate = achievementRate?.OverallAchievementRate, NationalOverallAchievementRate = nationalRate?.OverallAchievementRate, DeliveryModes = deliveryModes, EmployerFeedback = employerFeedbackResponse, ApprenticeFeedback = apprenticeFeedbackResponse, ShortlistId = source.ProviderStandard.ShortlistId }); }
public async Task Then_Gets_Training_Course_And_Providers_From_Mediator( int standardCode, int providerId, string location, double lat, double lon, Guid?shortlistUserId, GetTrainingCourseProviderResult mediatorResult, [Frozen] Mock <IMediator> mockMediator, [Greedy] TrainingCoursesController controller) { mockMediator .Setup(mediator => mediator.Send( It.Is <GetTrainingCourseProviderQuery>( c => c.CourseId.Equals(standardCode) && c.ProviderId.Equals(providerId) && c.Location.Equals(location) && c.Lat.Equals(lat) && c.Lon.Equals(lon) && c.ShortlistUserId.Equals(shortlistUserId) ), It.IsAny <CancellationToken>())) .ReturnsAsync(mediatorResult); var controllerResult = await controller.GetProviderCourse(standardCode, providerId, location, lat, lon, shortlistUserId) as ObjectResult; Assert.IsNotNull(controllerResult); controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK); var model = controllerResult.Value as GetTrainingCourseProviderResponse; Assert.IsNotNull(model); model.TrainingCourse.Should().BeEquivalentTo((GetTrainingCourseListItem)mediatorResult.Course); model.TrainingCourseProvider.Should() .BeEquivalentTo(mediatorResult.ProviderStandard, options => options .Excluding(c => c.StandardInfoUrl) .Excluding(c => c.StandardId) .Excluding(c => c.AchievementRates) .Excluding(c => c.Ukprn) .Excluding(c => c.DeliveryTypes) .Excluding(c => c.EmployerFeedback) .Excluding(c => c.ApprenticeFeedback) .Excluding(c => c.ProviderAddress) ); model.AdditionalCourses.Courses.Should().BeEquivalentTo(mediatorResult.AdditionalCourses); model.TrainingCourse.Should().NotBeNull(); model.TrainingCourse.Id.Should().Be(mediatorResult.Course.LarsCode); model.ProvidersCount.ProvidersAtLocation.Should().Be(mediatorResult.TotalProvidersAtLocation); model.ProvidersCount.TotalProviders.Should().Be(mediatorResult.TotalProviders); model.Location.Location.GeoPoint.Should().BeEquivalentTo(mediatorResult.Location.GeoPoint); model.Location.Name.Should().Be(mediatorResult.Location.Name); model.TrainingCourseProvider.EmployerFeedback.Should().NotBeNull(); model.TrainingCourseProvider.ApprenticeFeedback.Should().NotBeNull(); model.TrainingCourseProvider.ProviderAddress.Should().BeEquivalentTo(mediatorResult.ProviderStandard.ProviderAddress); model.ShortlistItemCount.Should().Be(mediatorResult.ShortlistItemCount); }
public async Task Then_If_There_Is_No_Provider_For_That_Standard_Then_Null_Is_Returned( int standardCode, int providerId, string location, double lat, double lon, GetTrainingCourseProviderResult mediatorResult, [Frozen] Mock <IMediator> mockMediator, [Greedy] TrainingCoursesController controller) { mediatorResult.ProviderStandard = null; mediatorResult.TotalProviders = 0; mediatorResult.TotalProvidersAtLocation = 0; mockMediator .Setup(mediator => mediator.Send( It.Is <GetTrainingCourseProviderQuery>( c => c.CourseId.Equals(standardCode) && c.ProviderId.Equals(providerId) && c.Location.Equals(location) && c.Lat.Equals(lat) && c.Lon.Equals(lon) ), It.IsAny <CancellationToken>())) .ReturnsAsync(mediatorResult); var controllerResult = await controller.GetProviderCourse(standardCode, providerId, location, lat, lon) as ObjectResult; Assert.IsNotNull(controllerResult); controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK); var model = controllerResult.Value as GetTrainingCourseProviderResponse; Assert.IsNotNull(model); model.TrainingCourse.Should().NotBeNull(); model.Location.Should().NotBeNull(); model.TrainingCourseProvider.Should().BeNull(); }
public void Then_The_Fields_Are_Mapped(GetTrainingCourseProviderResult providerStandardItem) { providerStandardItem.ProviderStandard.FeedbackRatings = new List <GetFeedbackRatingItem> { new GetFeedbackRatingItem { FeedbackName = "Good", FeedbackCount = 92, }, new GetFeedbackRatingItem { FeedbackName = "Excellent", FeedbackCount = 29, }, new GetFeedbackRatingItem { FeedbackName = "Poor", FeedbackCount = 7, }, new GetFeedbackRatingItem { FeedbackName = "Very Poor", FeedbackCount = 1, } }; var actual = new GetProviderCourseItem().Map(providerStandardItem, "", 1, true); actual.Should().BeEquivalentTo(providerStandardItem.Course, options => options.ExcludingMissingMembers()); actual.Website.Should().Be(providerStandardItem.ProviderStandard.StandardInfoUrl); actual.ProviderId.Should().Be(providerStandardItem.ProviderStandard.Ukprn); actual.ProviderAddress.Should().BeEquivalentTo(providerStandardItem.ProviderStandard.ProviderAddress); actual.Feedback.TotalEmployerResponses.Should().Be(129); actual.Feedback.TotalFeedbackRating.Should().Be(3); actual.MarketingInfo.Should().Be(providerStandardItem.ProviderStandard.MarketingInfo); }
public void Then_Maps_Fields_Appropriately_Matching_AchievementRates_With_Sector_And_Level_Higher_Than_Three(string sectorSubjectArea, GetTrainingCourseProviderResult source, GetAchievementRateItem item, GetAchievementRateItem item2) { item.SectorSubjectArea = sectorSubjectArea; item.Level = "AllLevels"; source.ProviderStandard.AchievementRates = new List <GetAchievementRateItem> { item, item2 }; var response = new GetProviderCourseItem().Map(source, sectorSubjectArea, 5, true); response.Name.Should().Be(source.ProviderStandard.Name); response.TradingName.Should().Be(source.ProviderStandard.TradingName); response.ProviderId.Should().Be(source.ProviderStandard.Ukprn); response.OverallCohort.Should().Be(item.OverallCohort); response.OverallAchievementRate.Should().Be(item.OverallAchievementRate); }
public void Then_Maps_Fields_Appropriately_Returning_Null_For_AchievementRate_Data_If_No_Matching_No_AchievementRates(string sectorSubjectArea, GetTrainingCourseProviderResult source, GetAchievementRateItem item, GetAchievementRateItem item2) { source.ProviderStandard.AchievementRates = new List <GetAchievementRateItem> { item, item2 }; source.OverallAchievementRates = new List <GetAchievementRateItem> { item, item2 }; var response = new GetProviderCourseItem().Map(source, sectorSubjectArea, 1, true); response.Name.Should().Be(source.ProviderStandard.Name); response.TradingName.Should().Be(source.ProviderStandard.TradingName); response.ProviderId.Should().Be(source.ProviderStandard.Ukprn); response.OverallCohort.Should().BeNull(); response.NationalOverallCohort.Should().BeNull(); response.OverallAchievementRate.Should().BeNull(); response.NationalOverallAchievementRate.Should().BeNull(); }