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