Ejemplo n.º 1
0
        public async Task Then_If_Provider_Has_No_Permission_Value_Is_Set_Then_Failed_Authorisation_Is_Set_To_True(
            SearchReservationsQuery query,
            [Frozen] Mock <IProviderPermissionsService> providerPermissionService,
            SearchReservationsQueryValidator validator)
        {
            providerPermissionService.Setup(x => x.GetTrustedEmployers(query.ProviderId))
            .ReturnsAsync(new List <Employer>());

            var result = await validator.ValidateAsync(query);

            result.IsValid().Should().BeTrue();
            result.FailedAuthorisationValidation.Should().BeTrue();
        }
Ejemplo n.º 2
0
        public async Task Then_Is_Not_Valid_If_No_UkPrn_Is_Set(
            SearchReservationsQuery query,
            [Frozen] Mock <IProviderPermissionsService> providerPermissionService,
            SearchReservationsQueryValidator validator)
        {
            query.ProviderId = 0;

            var result = await validator.ValidateAsync(query);

            result.IsValid().Should().BeFalse();
            result.ErrorList.Should().Contain("ProviderId|ProviderId has not been supplied");
            providerPermissionService.Verify(x => x.GetTrustedEmployers(It.IsAny <uint>()), Times.Never);
        }
Ejemplo n.º 3
0
        public void And_Has_No_Permissions_Then_Throws_No_Permissions_Exception(SearchReservationsQuery query,
                                                                                ValidationResult validationResult,
                                                                                string propertyName,
                                                                                [Frozen] Mock <IValidator <SearchReservationsQuery> > mockValidator,
                                                                                SearchReservationsQueryHandler handler)
        {
            validationResult.ValidationDictionary.Clear();
            validationResult.FailedAuthorisationValidation = true;
            mockValidator
            .Setup(validator => validator.ValidateAsync(query))
            .ReturnsAsync(validationResult);

            Assert.ThrowsAsync <ProviderNotAuthorisedException>(() => handler.Handle(query, CancellationToken.None));
        }
Ejemplo n.º 4
0
        public void And_Invalid_Then_Throws_Validation_Exception(
            SearchReservationsQuery query,
            ValidationResult validationResult,
            string propertyName,
            [Frozen] Mock <IValidator <SearchReservationsQuery> > mockValidator,
            SearchReservationsQueryHandler handler)
        {
            validationResult.AddError(propertyName);
            validationResult.FailedAuthorisationValidation = false;
            mockValidator
            .Setup(validator => validator.ValidateAsync(query))
            .ReturnsAsync(validationResult);

            Func <Task> act = async() => { await handler.Handle(query, CancellationToken.None); };

            act.Should().ThrowExactly <ValidationException>()
            .Which.ValidationResult.MemberNames.First(c => c.StartsWith(propertyName)).Should().NotBeNullOrEmpty();
        }
Ejemplo n.º 5
0
        public async Task Then_Gets_Search_Result_From_Service(
            SearchReservationsQuery query,
            [Frozen] ValidationResult validationResult,
            [Frozen] Mock <IReservationService> mockReservationService,
            SearchReservationsQueryHandler handler)
        {
            validationResult.ValidationDictionary.Clear();
            validationResult.FailedAuthorisationValidation = false;

            await handler.Handle(query, CancellationToken.None);

            mockReservationService.Verify(service => service.SearchReservations(
                                              It.Is <SearchReservationsRequest>(request =>
                                                                                request.Filter.SearchTerm == query.Filter.SearchTerm &&
                                                                                request.ProviderId == query.ProviderId &&
                                                                                request.Filter.SelectedEmployer == query.Filter.SelectedEmployer &&
                                                                                request.Filter.SelectedCourse == query.Filter.SelectedCourse &&
                                                                                request.Filter.SelectedStartDate == query.Filter.SelectedStartDate)));
        }
Ejemplo n.º 6
0
        public async Task Then_Maps_Reservations(
            SearchReservationsQuery query,
            [Frozen] ValidationResult validationResult,
            SearchReservationsResponse serviceResponse,
            [Frozen] Mock <IReservationService> mockReservationService,
            SearchReservationsQueryHandler handler)
        {
            validationResult.ValidationDictionary.Clear();
            validationResult.FailedAuthorisationValidation = false;
            mockReservationService
            .Setup(service => service.SearchReservations(
                       It.Is <SearchReservationsRequest>(request =>
                                                         request.Filter.SearchTerm == query.Filter.SearchTerm &&
                                                         request.ProviderId == query.ProviderId)))
            .ReturnsAsync(serviceResponse);

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

            result.Reservations.Should().BeEquivalentTo(serviceResponse.Reservations);
            result.NumberOfRecordsFound.Should().Be(serviceResponse.NumberOfRecordsFound);
            result.EmployerFilters.Should().BeEquivalentTo(serviceResponse.EmployerFilters);
            result.CourseFilters.Should().BeEquivalentTo(serviceResponse.CourseFilters);
            result.StartDateFilters.Should().BeEquivalentTo(serviceResponse.StartDateFilters);
        }