private async Task <IEnumerable <User> > GetUsersLivingWithin50MilesOfLondon() { ILocation london = new Location { Latitude = 51.509865, Longitude = -0.118092 }; var allUsers = DeserialiseUsers(await _bpdtsClient.GetAllUsers()); var milesRadius = 50; return(allUsers.Where(a => _locationService.IsWithinMilesOfLocation(sourceLocation: a, miles: milesRadius, targetLocation: london))); }
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); }