public async Task All_GivenUnsuccessfulResponse_ThrowsException() { const string subscriptionKey = "subscriptionKey"; var requestReceived = new ManualResetEvent(false); using (var server = TestServerBuilder.New() .WithResponseFromJsonResource(departureResource, HttpStatusCode.OK) .WithMiddleware(RequestListener) .Build()) { var tranInformation = NsSharpFactory.Create(subscriptionKey, server.CreateClient(), A.JsonConverter) .NsTravelInformation(); await tranInformation.Departures.All(DepartureRequest.Create(A.StationCode)); requestReceived.WaitOne(1500, false) .Should().BeTrue(); } Task RequestListener(HttpContext context, Func <Task> next) { context.Request.Headers.Values.Should().Contain(subscriptionKey); context.Request.GetDisplayUrl().Should().Contain(Constants.NsPublicTravelInformationApiAddress); requestReceived.Set(); return(next()); } }
public void With_GivenUicCode_SetsUicCodeOnBuild() { var uicCode = A.UicCode; var expectedUicCode = HttpUtility.UrlEncode(uicCode.ToString()); var sut = DepartureRequest.Create(uicCode); sut.Build().Should().ContainEquivalentOf(expectedUicCode); }
public void ConnectDriverToRoute(Route route, Driver driver, Dispatcher dispatcher) { driver.SetCurrentRoute(route); route.SetStatus(RouteStatus.Assigned); var departureRequest = DepartureRequest.Create(dispatcher, driver); this.requestRepository.AddDeparture(departureRequest); this.routeRepository.Update(route); this.driverRepository.Update(driver); this.PersistenceContext.SaveChanges(); }
public async Task All_GivenSuccessfulResponse_ReturnsDepartures() { using (var server = TestServerBuilder.New() .WithResponseFromJsonResource(departureResource, HttpStatusCode.OK) .Build()) { var sut = server.Departures(); var departures = await sut.All(DepartureRequest.Create(A.StationCode)); departures.Should().NotBeNullOrEmpty(); } }
public void All_GivenUnsuccessfulResponse_ThrowsException() { using (var server = TestServerBuilder.New() .WithResponseFromJsonResource(departureResource, HttpStatusCode.InternalServerError) .Build()) { var sut = server.Departures(); Func <Task> all = () => sut.All(DepartureRequest.Create(A.StationCode)); all.Should().Throw <GetDeparturesFailed>(); } }
public async Task All_GivenRequestTime_ReportsTimeOfRequest() { using (var server = TestServerBuilder.New() .WithResponseFromJsonResource(departureResource, HttpStatusCode.OK) .Build()) { var httpClient = server.CreateClient(); (TimeSpan, string)requestTime = (TimeSpan.Zero, string.Empty); var sut = new NsDepartures(() => httpClient, A.JsonConverter, (span, s) => requestTime = (span, s)); await sut.All(DepartureRequest.Create(A.StationCode)); requestTime.Should().NotBeNull(); requestTime.Item2.Should().NotBeNullOrEmpty(); requestTime.Item1.Should().BeGreaterThan(TimeSpan.Zero); } }
public void With_GivenNullUicCode_ThrowsArgumentException() { Action createAction = () => DepartureRequest.Create((UicCode)null); createAction.Should().Throw <ArgumentException>(); }