public async Task ShouldReturnLondonUserOnly_WhenLocationServiceReturnsNoUsers() { var testUsersInLondon = "[{ \"longitude\": 24.12, \"latitude\": 12.1111 }]"; var testAllUsers = "[{ \"longitude\": 24.12, \"latitude\": 12.1111 }, { \"longitude\": -0.118092, \"latitude\": 51.509865 }]"; bpdtsClient.GetUsersInCity("London").Returns(Task.FromResult(testUsersInLondon)); bpdtsClient.GetAllUsers().Returns(Task.FromResult(testAllUsers)); // Act var result = await userLocationController.Get(); // Assert Assert.IsInstanceOf <OkObjectResult>(result.Result); var okObjectResult = result.Result as OkObjectResult; var users = okObjectResult.Value as List <User>; Assert.AreEqual(1, users.Count); var user = users.First(); Assert.AreEqual(12.1111, user.Latitude); Assert.AreEqual(24.12, user.Longitude); }
public async Task <ActionResult <List <User> > > Get() { try { var usersLivingInLondon = this.DeserialiseUsers(await _bpdtsClient.GetUsersInCity("London")); var usersLivingWithin50MilesOfLondon = await this.GetUsersLivingWithin50MilesOfLondon(); return(Ok(usersLivingInLondon.Union(usersLivingWithin50MilesOfLondon, new UserDistinctComparer()).ToList())); } catch (Exception exception) { _logger.LogError(exception.Message); return(StatusCode(StatusCodes.Status500InternalServerError, exception.Message)); } }