public void Then_Maps_Feedback_Rating_To_A_Score(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.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 response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.TotalEmployerResponses.Should().Be(129);
            response.Feedback.TotalFeedbackRating.Should().Be(3);
        }
Esempio n. 2
0
        public void Then_Returns_Empty_Feedback_Attribute_Lists_If_Totals_Are_Zero(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.FeedbackAttributes = new List <GetFeedbackAttributeItem>
            {
                new GetFeedbackAttributeItem
                {
                    AttributeName = "First Attribute",
                    Strength      = 10,
                    Weakness      = 10
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Second Attribute",
                    Strength      = 12,
                    Weakness      = 12
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Third Attribute",
                    Strength      = 13,
                    Weakness      = 13
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.FeedbackAttributes.Strengths.Should().BeEmpty();
            response.Feedback.FeedbackAttributes.Weaknesses.Should().BeEmpty();
        }
        public void Then_Returns_Feedback_Of_Four_If_Max(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.EmployerFeedback.FeedbackRatings = new List <GetEmployerFeedbackRatingItem>
            {
                new GetEmployerFeedbackRatingItem
                {
                    FeedbackName  = "Excellent",
                    FeedbackCount = 6,
                }
            };

            source.ApprenticeFeedback.ProviderRating = new List <GetApprenticeFeedbackRatingItem>
            {
                new GetApprenticeFeedbackRatingItem
                {
                    Rating = "Excellent",
                    Count  = 6,
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), new List <FeedbackRatingType>(), true);

            response.EmployerFeedback.TotalEmployerResponses.Should().Be(6);
            response.EmployerFeedback.TotalFeedbackRating.Should().Be(4);

            response.ApprenticeFeedback.TotalApprenticeResponses.Should().Be(6);
            response.ApprenticeFeedback.TotalFeedbackRating.Should().Be(4);
        }
        public void Then_Maps_FeedbackDetail(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.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 response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.FeedbackDetail.Should().BeEquivalentTo(source.FeedbackRatings);
        }
Esempio n. 5
0
        public void Then_No_Weaknesses_Returns_Empty_List(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.FeedbackAttributes = new List <GetFeedbackAttributeItem>
            {
                new GetFeedbackAttributeItem
                {
                    AttributeName = "First Attribute",
                    Strength      = 12,
                    Weakness      = 10
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Second Attribute",
                    Strength      = 13,
                    Weakness      = 12
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Third Attribute",
                    Strength      = 14,
                    Weakness      = 13
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.FeedbackAttributes.Strengths.Should().NotBeEmpty();
            response.Feedback.FeedbackAttributes.Strengths.Should().Contain(source.FeedbackAttributes.Select(c => c.AttributeName).ToList());
            response.Feedback.FeedbackAttributes.Weaknesses.Should().BeEmpty();
        }
        public void Then_Maps_Fields_Appropriately(
            GetProvidersListItem source)
        {
            var response = (GetTrainingCourseProviderListItem)source;

            response.Name.Should().Be(source.Name);
            response.ProviderId.Should().Be(source.Ukprn);
        }
        public void Then_The_Fields_Are_Correctly_Mapped(GetProvidersListItem source)
        {
            //Arrange
            var actual = (GetProviderResponse)source;

            //Assert
            actual.Should().BeEquivalentTo(source);
        }
        public void Then_Maps_The_Fields_Correctly(GetProvidersListItem source)
        {
            //Act
            var actual = (GetProvidersResponse)source;

            //Assert
            actual.Should().BeEquivalentTo(source);
        }
        public void Then_Maps_Zero_If_No_Feedback(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.FeedbackRatings = null;

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.TotalEmployerResponses.Should().Be(0);
            response.Feedback.TotalFeedbackRating.Should().Be(0);
        }
        public GetTrainingCourseProviderListItem Map(GetProvidersListItem source, string sectorSubjectArea,
                                                     int level, List <DeliveryModeType> deliveryModes, List <FeedbackRatingType> employerFeedbackRatings, List <FeedbackRatingType> apprenticeFeedbackRatings, bool hasLocation)
        {
            var achievementRate               = GetAchievementRateItem(source.AchievementRates, sectorSubjectArea, level);
            var getDeliveryTypes              = FilterDeliveryModes(source.DeliveryTypes);
            var getEmployerFeedbackResponse   = EmployerFeedbackResponse(source.EmployerFeedback);
            var getApprenticeFeedbackResponse = ApprenticeFeedbackResponse(source.ApprenticeFeedback);

            if (deliveryModes != null && deliveryModes.Any())
            {
                if (!deliveryModes.Exists(c => getDeliveryTypes.Select(x => x.DeliveryModeType).Contains(c)))
                {
                    return(null);
                }

                if (deliveryModes.Contains(DeliveryModeType.National))
                {
                    if (getDeliveryTypes.FirstOrDefault(x =>
                                                        x.National && x.DeliveryModeType == DeliveryModeType.Workplace) == null)
                    {
                        return(null);
                    }
                }
            }

            if (employerFeedbackRatings != null &&
                employerFeedbackRatings.Any() &&
                !employerFeedbackRatings.Contains((FeedbackRatingType)getEmployerFeedbackResponse.TotalFeedbackRating))
            {
                return(null);
            }


            if (apprenticeFeedbackRatings != null &&
                apprenticeFeedbackRatings.Any() &&
                !apprenticeFeedbackRatings.Contains((FeedbackRatingType)getApprenticeFeedbackResponse.TotalFeedbackRating))
            {
                return(null);
            }

            return(new GetTrainingCourseProviderListItem
            {
                Name = source.Name,
                TradingName = source.TradingName,
                ProviderId = source.Ukprn,
                ShortlistId = source.ShortlistId,
                OverallCohort = achievementRate?.OverallCohort,
                OverallAchievementRate = achievementRate?.OverallAchievementRate,
                DeliveryModes = getDeliveryTypes,
                EmployerFeedback = getEmployerFeedbackResponse,
                ApprenticeFeedback = getApprenticeFeedbackResponse,
                HasLocation = hasLocation
            });
        }
        public async Task Then_The_Api_Is_Called_With_The_Request_And_Providers_Returned(
            GetProviderQuery query,
            GetProvidersListItem apiResponse,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > apiClient,
            GetProviderQueryHandler handler
            )
        {
            apiClient.Setup(x =>
                            x.Get <GetProvidersListItem>(
                                It.Is <GetProviderRequest>(c => c.GetUrl.Equals($"api/providers/{query.Id}"))))
            .ReturnsAsync(apiResponse);

            var actual = await handler.Handle(query, CancellationToken.None);

            actual.Provider.Should().BeEquivalentTo(apiResponse);
        }
        public async Task Then_Nulls_Are_Filtered_Out_From_The_Providers_List_And_The_Filtered_Count_Returned(
            int id,
            GetCourseProvidersRequest request,
            GetProvidersListItem provider1,
            GetProvidersListItem provider2,
            ProviderCourseSortOrder.SortOrder sortOrder,
            GetTrainingCourseProvidersResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] TrainingCoursesController controller)
        {
            request.DeliveryModes = new List <DeliveryModeType>
            {
                DeliveryModeType.Workplace
            };
            provider1.DeliveryTypes = provider1.DeliveryTypes.Select(c =>
            {
                c.DeliveryModes = "100PercentEmployer";
                return(c);
            }).ToList();
            provider2.DeliveryTypes = provider2.DeliveryTypes.Select(c =>
            {
                c.DeliveryModes = "DayRelease";
                return(c);
            }).ToList();
            mediatorResult.Providers = new List <GetProvidersListItem> {
                provider1, provider2
            };
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetTrainingCourseProvidersQuery>(c => c.Id.Equals(id)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetProviders(id, request) as ObjectResult;

            Assert.IsNotNull(controllerResult);
            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = controllerResult.Value as GetTrainingCourseProvidersResponse;

            Assert.IsNotNull(model);
            model.TrainingCourseProviders.Count().Should().Be(1);
            model.Total.Should().Be(mediatorResult.Total);
            model.TotalFiltered.Should().Be(model.TrainingCourseProviders.Count());
        }
        public void Then_Maps_Not_Found_Delivery_Mode(string sectorSubjectArea, GetProvidersListItem source)
        {
            var deliveryTypeItem = new GetDeliveryTypeItem {
                DeliveryModes = "NotFound"
            };

            source.DeliveryTypes = new List <GetDeliveryTypeItem> {
                deliveryTypeItem
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.DeliveryModes.First().DeliveryModeType.Should().Be(DeliveryModeType.NotFound);
            response.DeliveryModes.First().Address1.Should().BeNullOrEmpty();
            response.DeliveryModes.First().Address2.Should().BeNullOrEmpty();
            response.DeliveryModes.First().County.Should().BeNullOrEmpty();
            response.DeliveryModes.First().Postcode.Should().BeNullOrEmpty();
            response.DeliveryModes.First().Town.Should().BeNullOrEmpty();
            response.DeliveryModes.First().DistanceInMiles.Should().Be(0);
        }
        public void Then_Maps_Fields_Appropriately_Matching_AchievementRate(
            string sectorSubjectArea,
            GetProvidersListItem source, GetAchievementRateItem item, GetAchievementRateItem item2)
        {
            item.SectorSubjectArea  = sectorSubjectArea;
            item.Level              = "Two";
            source.AchievementRates = new List <GetAchievementRateItem>
            {
                item,
                item2
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 2, null, null, true);

            response.Name.Should().Be(source.Name);
            response.ProviderId.Should().Be(source.Ukprn);
            response.OverallCohort.Should().Be(item.OverallCohort);
            response.HasLocation.Should().BeTrue();
            response.OverallAchievementRate.Should().Be(item.OverallAchievementRate);
        }
        public void Then_Returns_Feedback_Of_Four_If_Between_Boundary(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.FeedbackRatings = new List <GetFeedbackRatingItem>
            {
                new GetFeedbackRatingItem
                {
                    FeedbackName  = "Good",
                    FeedbackCount = 1,
                },
                new GetFeedbackRatingItem
                {
                    FeedbackName  = "Excellent",
                    FeedbackCount = 1,
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.TotalEmployerResponses.Should().Be(2);
            response.Feedback.TotalFeedbackRating.Should().Be(4);
        }
        public void Then_Returns_Feedback_Of_Three_If_Between_Boundary(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.EmployerFeedback.FeedbackRatings = new List <GetEmployerFeedbackRatingItem>
            {
                new GetEmployerFeedbackRatingItem
                {
                    FeedbackName  = "Poor",
                    FeedbackCount = 4,
                },
                new GetEmployerFeedbackRatingItem
                {
                    FeedbackName  = "Good",
                    FeedbackCount = 4,
                }
            };

            source.ApprenticeFeedback.ProviderRating = new List <GetApprenticeFeedbackRatingItem>
            {
                new GetApprenticeFeedbackRatingItem
                {
                    Rating = "Poor",
                    Count  = 4,
                },
                new GetApprenticeFeedbackRatingItem
                {
                    Rating = "Good",
                    Count  = 4,
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), new List <FeedbackRatingType>(), true);

            response.EmployerFeedback.TotalEmployerResponses.Should().Be(8);
            response.EmployerFeedback.TotalFeedbackRating.Should().Be(3);

            response.ApprenticeFeedback.TotalApprenticeResponses.Should().Be(8);
            response.ApprenticeFeedback.TotalFeedbackRating.Should().Be(3);
        }
        public void Then_If_Delivery_Modes_Are_Passed_The_Results_Are_Filtered(string sectorSubjectArea, GetProvidersListItem source)
        {
            source.AchievementRates = null;
            source.DeliveryTypes    = new List <GetDeliveryTypeItem>
            {
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "100PercentEmployer|DayRelease",
                    DistanceInMiles = 2.5m
                },
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "100PercentEmployer|DayRelease|BlockRelease",
                    DistanceInMiles = 3.1m
                },
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "BlockRelease",
                    DistanceInMiles = 5.5m
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>
            {
                DeliveryModeType.DayRelease
            }, new List <FeedbackRatingType>(), true);

            response.DeliveryModes.Count.Should().Be(3);
            response.DeliveryModes.Should().Contain(c => c.DeliveryModeType == DeliveryModeType.DayRelease);
        }
        public async Task Then_FeedbackRating_Filter_Is_Applied(
            int id,
            GetCourseProvidersRequest request,
            string location,
            GetProvidersListItem provider1,
            GetProvidersListItem provider2,
            GetProvidersListItem provider3,
            GetTrainingCourseProvidersResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] TrainingCoursesController controller)
        {
            request.ProviderRatings = new List <FeedbackRatingType>
            {
                FeedbackRatingType.Excellent,
                FeedbackRatingType.Good
            };
            request.DeliveryModes     = null;
            provider1.FeedbackRatings = new List <GetFeedbackRatingItem>
            {
                new GetFeedbackRatingItem
                {
                    FeedbackName  = "Excellent",
                    FeedbackCount = 1,
                }
            };
            provider2.FeedbackRatings = new List <GetFeedbackRatingItem>
            {
                new GetFeedbackRatingItem
                {
                    FeedbackName  = "Poor",
                    FeedbackCount = 1,
                }
            };
            provider3.FeedbackRatings = new List <GetFeedbackRatingItem>
            {
                new GetFeedbackRatingItem
                {
                    FeedbackName  = "Good",
                    FeedbackCount = 1,
                }
            };
            mediatorResult.Providers = new List <GetProvidersListItem> {
                provider1, provider2, provider3
            };
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetTrainingCourseProvidersQuery>(c => c.Id.Equals(id)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetProviders(id, request) as ObjectResult;

            Assert.IsNotNull(controllerResult);
            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = controllerResult.Value as GetTrainingCourseProvidersResponse;

            Assert.IsNotNull(model);
            model.TrainingCourseProviders.Count().Should().Be(2);
            model.Total.Should().Be(mediatorResult.Total);
            model.TotalFiltered.Should().Be(model.TrainingCourseProviders.Count());
        }
        public void Then_Maps_Delivery_Types_Returning_The_Smallest_Distance_Only_For_One_Type(string deliveryModeString, DeliveryModeType deliveryModeType, string sectorSubjectArea, GetProvidersListItem source)
        {
            source.AchievementRates = null;
            source.DeliveryTypes    = new List <GetDeliveryTypeItem>
            {
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = deliveryModeString,
                    DistanceInMiles = 2.5m
                },
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = deliveryModeString,
                    DistanceInMiles = 3.1m
                },
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = deliveryModeString,
                    DistanceInMiles = 5.5m
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.DeliveryModes.Count.Should().Be(1);
            response.DeliveryModes.FirstOrDefault(c => c.DeliveryModeType == deliveryModeType)?.DistanceInMiles.Should().Be(2.5m);
            response.DeliveryModes.FirstOrDefault().National.Should().BeFalse();
        }
Esempio n. 20
0
        public void Then_Returns_The_Top_Three_Feedback_Attribute_Strengths_And_Weaknesses(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.FeedbackAttributes = new List <GetFeedbackAttributeItem>
            {
                new GetFeedbackAttributeItem
                {
                    AttributeName = "First Attribute",
                    Strength      = 11,
                    Weakness      = 10
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Second Attribute",
                    Strength      = 11,
                    Weakness      = 10
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Third Attribute",
                    Strength      = 13,
                    Weakness      = 10
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Fourth Attribute",
                    Strength      = 14,
                    Weakness      = 10
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Fifth Attribute",
                    Strength      = 11,
                    Weakness      = 11
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Sixth Attribute",
                    Strength      = 13,
                    Weakness      = 14
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Seventh Attribute",
                    Strength      = 14,
                    Weakness      = 15
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Eighth Attribute",
                    Strength      = 14,
                    Weakness      = 20
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Ninth Attribute",
                    Strength      = 140,
                    Weakness      = 144
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Tenth Attribute",
                    Strength      = 10,
                    Weakness      = 14
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.FeedbackAttributes.Strengths.Should().ContainInOrder(new List <string> {
                "Fourth Attribute", "Third Attribute", "First Attribute"
            });
            response.Feedback.FeedbackAttributes.Weaknesses.Should().ContainInOrder(new List <string> {
                "Eighth Attribute", "Ninth Attribute", "Tenth Attribute"
            });
        }
        public void Then_Maps_All_DeliveryType_Fields_And_Sets_At_WorkPlace_Distance_To_Zero(string sectorSubjectArea, GetProvidersListItem source, GetDeliveryTypeItem item)
        {
            source.AchievementRates = null;
            item.DeliveryModes      = "100PercentEmployer";
            source.DeliveryTypes    = new List <GetDeliveryTypeItem> {
                item
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.DeliveryModes.First().Should().BeEquivalentTo(item, options => options.Excluding(c => c.DeliveryModes).Excluding(c => c.DistanceInMiles));
            response.DeliveryModes.First().DeliveryModeType.Should().Be(DeliveryModeType.Workplace);
            response.DeliveryModes.First().DistanceInMiles.Should().Be(0m);
        }
        public void Then_Maps_Fields_Appropriately_Returning_Null_For_AchievementRate_Data_If_No_Matching_No_AchievementRate(string sectorSubjectArea,
                                                                                                                             GetProvidersListItem source, GetAchievementRateItem item, GetAchievementRateItem item2)
        {
            source.AchievementRates = new List <GetAchievementRateItem>
            {
                item,
                item2
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, null, null, true);

            response.Name.Should().Be(source.Name);
            response.ProviderId.Should().Be(source.Ukprn);
            response.OverallCohort.Should().BeNull();
            response.OverallAchievementRate.Should().BeNull();
        }
Esempio n. 23
0
        public void Then_If_Same_Feedback_Attribute_Score_And_Same_Responses_Then_The_Attribute_Is_Returned_In_Alphabetical_Order(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.FeedbackAttributes = new List <GetFeedbackAttributeItem>
            {
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Sixth Attribute",
                    Strength      = 14,
                    Weakness      = 13
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Seventh Attribute",
                    Strength      = 15,
                    Weakness      = 14
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.FeedbackAttributes.Strengths.Should().ContainInOrder(new List <string> {
                "Seventh Attribute"
            });
        }
        public void Then_Maps_Delivery_Types_Returning_The_Smallest_Distance_Only(string sectorSubjectArea, GetProvidersListItem source)
        {
            source.AchievementRates = null;
            source.DeliveryTypes    = new List <GetDeliveryTypeItem>
            {
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "100PercentEmployer|DayRelease",
                    DistanceInMiles = 2.5m,
                    National        = true
                },
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "100PercentEmployer|DayRelease|BlockRelease",
                    DistanceInMiles = 3.1m
                },
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "BlockRelease",
                    DistanceInMiles = 5.5m
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.DeliveryModes.Count.Should().Be(3);
            response.DeliveryModes.FirstOrDefault(c => c.DeliveryModeType == DeliveryModeType.BlockRelease)?.DistanceInMiles.Should().Be(3.1m);
            response.DeliveryModes.FirstOrDefault(c => c.DeliveryModeType == DeliveryModeType.DayRelease)?.DistanceInMiles.Should().Be(2.5m);
            response.DeliveryModes.FirstOrDefault(c => c.DeliveryModeType == DeliveryModeType.Workplace)?.DistanceInMiles.Should().Be(0m);
            response.DeliveryModes.FirstOrDefault().National.Should().BeTrue();
        }
Esempio n. 25
0
        public void Then_If_Same_Feedback_Attribute_Score_Then_The_Attribute_With_Most_Response_Is_First(GetProvidersListItem source, string sectorSubjectArea)
        {
            source.FeedbackAttributes = new List <GetFeedbackAttributeItem>
            {
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Zattribute",
                    Strength      = 140,
                    Weakness      = 144
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Yattribute",
                    Strength      = 1040,
                    Weakness      = 1044
                },
                new GetFeedbackAttributeItem
                {
                    AttributeName = "Attribute",
                    Strength      = 10,
                    Weakness      = 14
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Feedback.FeedbackAttributes.Weaknesses.Should().ContainInOrder(new List <string> {
                "Yattribute", "Zattribute", "Attribute"
            });
        }
        public void Then_Maps_Fields_Appropriately_Returning_Null_For_AchievementRate_Data_If_No_AchievementRates_And_Empty_List_For_DeliveryModes_If_No_Delivery_Modes(string sectorSubjectArea, GetProvidersListItem source)
        {
            source.AchievementRates = null;
            source.DeliveryTypes    = new List <GetDeliveryTypeItem>();

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType>(), true);

            response.Name.Should().Be(source.Name);
            response.ProviderId.Should().Be(source.Ukprn);
            response.OverallCohort.Should().BeNull();
            response.OverallAchievementRate.Should().BeNull();
            response.DeliveryModes.Should().BeEmpty();
        }
        public void Then_If_There_Are_Multiple_Ratings_To_Filter_Then_Matches_On_Values(string sectorSubjectArea, GetProvidersListItem source)
        {
            source.FeedbackRatings = new List <GetFeedbackRatingItem>
            {
                new GetFeedbackRatingItem
                {
                    FeedbackName  = "Good",
                    FeedbackCount = 1,
                },
                new GetFeedbackRatingItem
                {
                    FeedbackName  = "Excellent",
                    FeedbackCount = 1,
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>(), new List <FeedbackRatingType> {
                FeedbackRatingType.Poor, FeedbackRatingType.Excellent
            }, true);

            response.Should().NotBeNull();
            response.Should().BeEquivalentTo(source, options => options.ExcludingMissingMembers());
        }
        public void Then_If_National_At_Workplace_Is_Selected_As_Delivery_Mode_Filter_Then_Not_Null_Returned_If_National_At_Workplace(string sectorSubjectArea, GetProvidersListItem source)
        {
            source.AchievementRates = null;
            source.DeliveryTypes    = new List <GetDeliveryTypeItem>
            {
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "100PercentEmployer",
                    DistanceInMiles = 2.5m,
                    National        = true
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>
            {
                DeliveryModeType.Workplace,
                DeliveryModeType.National
            }, new List <FeedbackRatingType>(), true);

            response.Should().NotBeNull();
        }
        public void The_If_There_Are_Delivery_Modes_To_Filter_And_Returns_No_Delivery_Modes_After_Filter_Then_Null_Returned(string sectorSubjectArea, GetProvidersListItem source)
        {
            source.AchievementRates = null;
            source.DeliveryTypes    = new List <GetDeliveryTypeItem>
            {
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "BlockRelease",
                    DistanceInMiles = 5.5m
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>
            {
                DeliveryModeType.DayRelease
            }, new List <FeedbackRatingType>(), true);

            response.Should().BeNull();
        }
        public void Then_If_There_Are_Multiple_Delivery_Modes_Filtered_And_Match_Then_It_Is_Returned_Correctly(string sectorSubjectArea, GetProvidersListItem source)
        {
            source.AchievementRates = null;
            source.DeliveryTypes    = new List <GetDeliveryTypeItem>
            {
                new GetDeliveryTypeItem
                {
                    DeliveryModes   = "100PercentEmployer|DayRelease",
                    DistanceInMiles = 2.5m
                }
            };

            var response = new GetTrainingCourseProviderListItem().Map(source, sectorSubjectArea, 1, new List <DeliveryModeType>
            {
                DeliveryModeType.DayRelease,
                DeliveryModeType.Workplace
            }, new List <FeedbackRatingType>(), true);

            response.DeliveryModes.Count.Should().Be(2);
        }