Exemple #1
0
        public async Task Then_Gets_Locations_List_From_Mediator_Defaulting_To_Twenty_Items(
            string query,
            GetLocationsQueryResult queryResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] SearchController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetLocationsQuery>(request =>
                                                 request.Query == query &&
                                                 request.ResultCount.Equals(20)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(queryResult);

            var controllerResult = await controller.Index(query) as ObjectResult;

            var model = controllerResult.Value as GetLocationsListResponse;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            model.Locations.Should().BeEquivalentTo(queryResult.SuggestedLocations, options => options.ExcludingMissingMembers());
        }
Exemple #2
0
        public async Task Then_No_Results_From_Mediator_Returns_Empty_Ok_Response(
            string query,
            GetLocationsQueryResult queryResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] SearchController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetLocationsQuery>(request =>
                                                 request.Query == query &&
                                                 request.ResultCount.Equals(20)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(new GetLocationsQueryResult {
                SuggestedLocations = null
            });

            var controllerResult = await controller.Index(query) as ObjectResult;

            var model = controllerResult.Value as GetLocationsListResponse;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            model.Locations.Should().BeEmpty();
        }
Exemple #3
0
        public async Task Then_The_Query_Is_Sent_And_Data_Retrieved_And_Json_Returned(
            string searchTerm,
            GetLocationsQueryResult response,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] LocationsController controller)
        {
            //Arrange
            mediator.Setup(x =>
                           x.Send(It.Is <GetLocationsQuery>(c =>
                                                            c.SearchTerm.Equals(searchTerm)), It.IsAny <CancellationToken>()))
            .ReturnsAsync(response);

            //Act
            var actual = await controller.Locations(searchTerm);

            //Assert
            Assert.IsNotNull(actual);
            var actualResult = actual as JsonResult;

            Assert.IsNotNull(actualResult);
            var model = (LocationsViewModel)actualResult.Value;

            Assert.IsNotNull(model);
        }
Exemple #4
0
        public void Then_The_Fields_Are_Correctly_Mapped_From_GetLocationsQueryResult(GetLocationsQueryResult source)
        {
            var location = source.SuggestedLocations.FirstOrDefault();

            var actual = (GetLocationsListItem)location;

            actual.Should().BeEquivalentTo(location, options => options.ExcludingMissingMembers());
            actual.Location.Coordinates.FirstOrDefault().Should().Be(location.Lat);
            actual.Location.Coordinates.LastOrDefault().Should().Be(location.Long);
            GetLocationsListItem.Geometry.Type.Should().Be("Point");
        }