public void WhenGetsANonOkResponseShouldThrowsAnException() { _responseHandler.AddResponse(FIND_ROUTES_URL, new HttpResponseMessage(HttpStatusCode.BadRequest)); _responseHandler.AddResponse(FIND_STOPS_URL, new HttpResponseMessage(HttpStatusCode.BadRequest)); _responseHandler.AddResponse(FIND_DEPARTURES_URL, new HttpResponseMessage(HttpStatusCode.BadRequest)); var client = new HttpClient (_responseHandler); var repository = new RouteRepository (client); Assert.Throws<Exception> (async () => await repository.FindRoutesByStopNameAsync (string.Empty)); Assert.Throws<Exception> (async () => await repository.FindStopsByRouteIdAsync (0)); Assert.Throws<Exception> (async () => await repository.FindDeparturesByRouteIdAsync (0)); }
public async void GivenThreeDeparturesThenReturnsTheseDeparturesWithTheirData() { var responseContent = new StringBuilder () .Append ("{ \"rows\": [") .Append ("{ \"id\": 76, \"calendar\": \"WEEKDAY\", \"time\": \"00:07\" },") .Append ("{ \"id\": 114, \"calendar\": \"SATURDAY\", \"time\": \"23:35\" },") .Append ("{ \"id\": 133, \"calendar\": \"SUNDAY\", \"time\": \"23:29\" }") .Append ("], \"rowsAffected\": 0 }") .ToString (); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent (responseContent); _responseHandler.AddResponse(FIND_DEPARTURES_URL, response); var client = new HttpClient (_responseHandler); var repository = new RouteRepository (client); var departures = await repository.FindDeparturesByRouteIdAsync (0); Assert.AreEqual (3, departures.Count); Assert.AreEqual ("WEEKDAY", departures [0].Calendar); Assert.AreEqual ("00:07", departures [0].Time); Assert.AreEqual ("SATURDAY", departures [1].Calendar); Assert.AreEqual ("23:35", departures [1].Time); Assert.AreEqual ("SUNDAY", departures [2].Calendar); Assert.AreEqual ("23:29", departures [2].Time); }