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(); }
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); }
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)); }
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(); }
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))); }
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); }