public async Task Handle_CallsInnerApi_ReturnsValidResponse(
            GetStandardResponse apiResponseStandard,
            GetProviderCourseResponse apiResponseProviderCourse,
            List <GetProviderCourseLocationsResponse> apiResponseProviderCourseLocation,
            GetProviderCourseQuery query,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > apiClientMockCourse,
            [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock,
            GetProviderCourseQueryHandler sut)
        {
            apiClientMockCourse.Setup(c => c.GetWithResponseCode <GetStandardResponse>(It.Is <GetStandardRequest>(c =>
                                                                                                                  c.GetUrl.Equals(new GetStandardRequest(query.LarsCode).GetUrl)))).
            ReturnsAsync(new ApiResponse <GetStandardResponse>(apiResponseStandard, HttpStatusCode.OK, ""));

            apiClientMock.Setup(c => c.GetWithResponseCode <GetProviderCourseResponse>(It.Is <GetProviderCourseRequest>(c =>
                                                                                                                        c.GetUrl.Equals(new GetProviderCourseRequest(query.Ukprn, query.LarsCode).GetUrl)))).
            ReturnsAsync(new ApiResponse <GetProviderCourseResponse>(apiResponseProviderCourse, HttpStatusCode.OK, ""));

            apiClientMock.Setup(c => c.GetWithResponseCode <List <GetProviderCourseLocationsResponse> >(It.Is <GetProviderCourseLocationsRequest>(c =>
                                                                                                                                                  c.GetUrl.Equals(new GetProviderCourseLocationsRequest(query.Ukprn, query.LarsCode).GetUrl)))).
            ReturnsAsync(new ApiResponse <List <GetProviderCourseLocationsResponse> >(apiResponseProviderCourseLocation, HttpStatusCode.OK, ""));

            var result = await sut.Handle(query, new CancellationToken());

            result.Should().NotBeNull();
        }
Beispiel #2
0
        public void Then_Maps_Fields_Appropriately(
            GetStandardResponse source)
        {
            var response = (EpaoCourse)source;

            response.Id.Should().Be(source.LarsCode);
            response.Periods.Should().BeEquivalentTo(source.StandardDates);
        }
        public async Task <GetStandardResponse> CreateAsync(ICreateStandardRequest request)
        {
            var standard = await _service.CreateAsync(request);

            await _unitOfWork.CommitAsync();

            return(GetStandardResponse.Create(standard));
        }
        public async Task <GetStandardResponse> UpdateAsync(IUpdateStandard request)
        {
            var standard = await _service.UpdateAsync(request);

            if (standard == null)
            {
                return(null);
            }

            await _unitOfWork.CommitAsync();

            return(GetStandardResponse.Create(standard));
        }
        public void ShouldReturnViewModelWhenAssessmentOrgsEntityNotFound()
        {
            var viewModel = new StandardViewModel();
            var response  = new GetStandardResponse {
                StatusCode = GetStandardResponse.ResponseCodes.AssessmentOrgsEntityNotFound
            };

            _mockMediator.Setup(x => x.Send(It.IsAny <GetStandardQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(response);
            _mockMappingService.Setup(m => m.Map <GetStandardResponse, StandardViewModel>(response))
            .Returns(viewModel);

            var result = _sut.Standard("2", "test").Result as ViewResult;

            result.Should().NotBeNull();
            result.Model.Should().Be(viewModel);
        }
        public void Handle_CallsInnerApi_ReturnsExceptionWhenProviderCourseGetsBadRequest(
            GetStandardResponse apiResponseStandard,
            GetProviderCourseQuery query,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > apiClientMockCourse,
            [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock,
            GetProviderCourseQueryHandler sut)
        {
            apiClientMockCourse.Setup(c => c.GetWithResponseCode <GetStandardResponse>(It.Is <GetStandardRequest>(c =>
                                                                                                                  c.GetUrl.Equals(new GetStandardRequest(query.LarsCode).GetUrl)))).
            ReturnsAsync(new ApiResponse <GetStandardResponse>(apiResponseStandard, HttpStatusCode.OK, ""));

            apiClientMock.Setup(c => c.GetWithResponseCode <GetProviderCourseResponse>(It.Is <GetProviderCourseRequest>(c =>
                                                                                                                        c.GetUrl.Equals(new GetProviderCourseRequest(query.Ukprn, query.LarsCode).GetUrl))))
            .ReturnsAsync(new ApiResponse <GetProviderCourseResponse>(new GetProviderCourseResponse(), HttpStatusCode.BadRequest, "Error"));

            Assert.ThrowsAsync <HttpRequestContentException>(() => sut.Handle(query, new CancellationToken()));
        }
        public async Task Then_Gets_Courses_From_Api_And_If_Course_Doesnt_Exist_Its_Not_Added(
            GetEpaoCoursesQuery query,
            List <GetEpaoCoursesListItem> apiResponse,
            GetEpaoCoursesListItem additionalItem,
            List <GetStandardResponse> matchingStandards,
            GetStandardResponse nonMatchedStandard,
            [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient,
            [Frozen] Mock <ICacheStorageService> mockCacheStorageService,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            GetEpaoCoursesQueryHandler handler)
        {
            var i = 0;

            foreach (var course in matchingStandards)
            {
                course.LarsCode = apiResponse[i].StandardCode;
                i++;
            }
            apiResponse.Add(additionalItem);
            var allStandards = new List <GetStandardResponse>();

            allStandards.AddRange(matchingStandards);
            allStandards.Add(nonMatchedStandard);

            mockAssessorsApiClient
            .Setup(client => client.GetAll <GetEpaoCoursesListItem>(
                       It.Is <GetEpaoCoursesRequest>(request => request.EpaoId == query.EpaoId)))
            .ReturnsAsync(apiResponse);

            foreach (var standard in allStandards)
            {
                mockCoursesApiClient
                .Setup(client => client.Get <GetStandardResponse>(It.Is <GetStandardRequest>(c => c.StandardId.Equals(standard.LarsCode))))
                .ReturnsAsync(standard);
            }

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

            result.EpaoId.Should().Be(query.EpaoId);
            result.Courses.Should().BeEquivalentTo(matchingStandards);
            result.Courses.SingleOrDefault(c => c.LarsCode.Equals(additionalItem.StandardCode)).Should().BeNull();
        }
        public void ShouldReturnStandard()
        {
            // Assign
            var response  = new GetStandardResponse();
            var viewModel = new StandardViewModel();

            _mockMediator.Setup(m => m.Send(It.IsAny <GetStandardQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(response);

            _mockMappingService.Setup(m => m.Map <GetStandardResponse, StandardViewModel>(response))
            .Returns(viewModel);

            // Act
            var result = _sut.Standard("1", "test").Result as ViewResult;

            // Assert
            _mockMediator.Verify(m => m.Send(It.IsAny <GetStandardQuery>(), It.IsAny <CancellationToken>()));
            _mockMappingService.Verify(m => m.Map <GetStandardResponse, StandardViewModel>(response));

            result.Model.Should().Be(viewModel);
        }
        public async Task <GetStandardResponse> GetbyExternalIdAsync(string externalId)
        {
            var response = await _unitOfWork.StandardRepository.GetByExternalIdAsync(externalId);

            return(GetStandardResponse.Create(response));
        }