示例#1
0
        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());
            }
        }
示例#2
0
        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);
        }
示例#3
0
 public Departure(DepartureRequest request, Flight flight, Crew crew, Plane plane, int id)
 {
     Id            = id;
     DepartureTime = request.DepartureTime;
     FlightId      = flight.Id;
     Flight        = flight;
     CrewId        = crew.Id;
     Crew          = crew;
     PlaneId       = plane.Id;
     Plane         = plane;
 }
        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();
        }
示例#5
0
        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();
            }
        }
示例#6
0
        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>();
            }
        }
示例#7
0
        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 DepartureRequest UpdateDeparture(DepartureRequest requestToDecline)
 {
     dbContext.DepartureRequests.Update(requestToDecline);
     return(requestToDecline);
 }
 public DepartureRequest AddDeparture(DepartureRequest departureRequest)
 {
     dbContext.DepartureRequests.Add(departureRequest);
     return(departureRequest);
 }
示例#10
0
        public void With_GivenNullUicCode_ThrowsArgumentException()
        {
            Action createAction = () => DepartureRequest.Create((UicCode)null);

            createAction.Should().Throw <ArgumentException>();
        }