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