コード例 #1
0
        public async Task Then_Api_Called_And_Location_Display_Names_Returned(
            GetLocationsQuery getLocationsQuery,
            [Frozen] Mock <ILocationApiClient <LocationApiConfiguration> > mockLocationApiClient,
            GetLocationsQueryHandler getLocationsQueryHandler)
        {
            mockLocationApiClient
            .Setup(x => x.Get <GetLocationsListResponse>(It.Is <GetLocationsQueryRequest>(y => y.GetUrl.Contains(getLocationsQuery.SearchTerm))))
            .ReturnsAsync(new GetLocationsListResponse {
                Locations = new List <GetLocationsListItem>
                {
                    new GetLocationsListItem {
                        LocationName = "Manchester", LocalAuthorityName = "Greater Manchester"
                    },
                    new GetLocationsListItem {
                        LocationName = "Warwick", LocalAuthorityName = "Warwickshire"
                    },
                    new GetLocationsListItem {
                        LocationName = "Newquay", LocalAuthorityName = "Cornwall"
                    }
                }
            });

            var result = await getLocationsQueryHandler.Handle(getLocationsQuery, CancellationToken.None);

            foreach (var location in result.Locations)
            {
                Assert.NotNull(location.DisplayName, location.DisplayName);
                Assert.AreNotEqual("", location.DisplayName);
            }
        }
コード例 #2
0
        public void GetLocations_WhenCalled_Returns4Records()
        {
            using (var context = new ScaScheduleContext())
            {
                // arrange
                var queryHandler = new GetLocationsQueryHandler(context);

                // act
                var actual = queryHandler.Handle(new GetLocationsQuery());

                // assert
                Assert.AreEqual(actual.Count(), 4);
            }
        }
        public async Task Then_Returns_Results_From_Service(
            GetLocationsQuery query,
            Domain.Locations.Locations locationsFromService,
            [Frozen] Mock <ILocationService> mockService,
            GetLocationsQueryHandler handler)
        {
            mockService
            .Setup(service => service.GetLocations(query.SearchTerm))
            .ReturnsAsync(locationsFromService);

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

            result.LocationItems.Should().BeEquivalentTo(locationsFromService.LocationItems);
        }
コード例 #4
0
        public async Task Then_Gets_Locations_From_Location_Api(
            GetLocationsQuery query,
            GetLocationsListResponse apiResponse,
            [Frozen] Mock <ILocationApiClient <LocationApiConfiguration> > mockApiClient,
            GetLocationsQueryHandler handler)
        {
            mockApiClient
            .Setup(client => client.Get <GetLocationsListResponse>(
                       It.Is <GetLocationsQueryRequest>(c => c.GetUrl.Contains(query.SearchTerm))))
            .ReturnsAsync(apiResponse);

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

            result.Locations.Should().BeEquivalentTo(apiResponse.Locations);
        }
コード例 #5
0
        public void GetLocationQueryHandler_WhenCalled_ReturnsFacilityIdPaddedWithLeadingZeroes()
        {
            // arrange
            using (var context = new ScaScheduleContext())
            {
                var handler = new GetLocationsQueryHandler(context);

                // act
                var actual = handler.Handle(new GetLocationsQuery());

                // assert
                Assert.AreEqual(actual.ToList()[0].FacilityId.Length, 6);
                Assert.IsTrue(actual.ToList()[0].FacilityId.Contains("00000"));
            }
        }
        public async Task Then_The_Service_Is_Called(
            string searchTerm,
            GetLocationsQuery query,
            List <Domain.Entities.Location> locations,
            [Frozen] Mock <ILocationService> service,
            GetLocationsQueryHandler handler)
        {
            //Arrange
            query.Query = searchTerm;
            service.Setup(x => x.GetLocationsByQuery(query.Query, query.ResultCount)).ReturnsAsync(locations);
            //Act
            var actual = await handler.Handle(query, CancellationToken.None);

            //Assert
            actual.SuggestedLocations.Should().BeEquivalentTo(locations.Select(c => (SuggestedLocation)c));
        }
        public async Task If_Query_Is_Two_Letter_String_Then_Service_Is_Not_Called(
            string searchTerm,
            GetLocationsQuery query,
            List <Domain.Entities.Location> locations,
            [Frozen] Mock <ILocationService> service,
            GetLocationsQueryHandler handler)
        {
            //Arrange
            query.Query = searchTerm;
            service.Setup(x => x.GetLocationsByQuery(query.Query, query.ResultCount)).ReturnsAsync(locations);

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

            //Assert
            service.Verify(x => x.GetLocationsByQuery(It.IsAny <string>(), It.IsAny <int>()), Times.Never);
            actual.SuggestedLocations.Should().BeNull();
        }
コード例 #8
0
        public async Task Then_If_No_District_Is_Returned_It_Is_Not_Added(
            string searchTerm,
            GetLocationsQuery query,
            List <SuggestedLocation> locations,
            SuggestedLocation district,
            [Frozen] Mock <IPostcodeService> service,
            GetLocationsQueryHandler handler)
        {
            //Arrange
            query.Query = searchTerm;
            service.Setup(x => x.GetPostcodesByOutcodeQuery(query.Query, query.ResultCount)).ReturnsAsync(locations);
            service.Setup(y => y.GetDistrictNameByOutcodeQuery(query.Query)).ReturnsAsync((SuggestedLocation)null);

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

            //Assert
            actual.SuggestedLocations.Should().Contain(locations);
            actual.SuggestedLocations.Should().NotContainNulls();
        }
コード例 #9
0
        public async Task Then_The_Service_Is_Called_And_District_First(
            string searchTerm,
            GetLocationsQuery query,
            List <SuggestedLocation> locations,
            SuggestedLocation district,
            [Frozen] Mock <IPostcodeService> service,
            GetLocationsQueryHandler handler)
        {
            //Arrange
            query.Query = searchTerm;
            service.Setup(x => x.GetPostcodesByOutcodeQuery(query.Query, query.ResultCount)).ReturnsAsync(locations);
            service.Setup(y => y.GetDistrictNameByOutcodeQuery(query.Query)).ReturnsAsync(district);

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

            //Assert
            actual.SuggestedLocations.Should().Contain(locations, district);
            actual.SuggestedLocations.First().Should().Be(district);
        }