예제 #1
0
            public void CallGetOwnStateVectors()
            {
                //ARRANGE
                var client  = new OpenSkyClient(_httpClientFixture.HttpClient, "abc", "abc");
                var builder = new OwnStateVectorsRequestBuilder();
                //ACT
                Exception ex = Assert.Throws <AggregateException>(() => client.GetOwnStateVectors(builder.AppendSerial(1).AppendIcao24("896471").Build()));

                //ASSERT
                Assert.Equal("401", ex.InnerException.Message.Trim());
            }
예제 #2
0
            public void CallGetDeparturesByAirport()
            {
                //ARRANGE
                var client  = new OpenSkyClient(_httpClientFixture.HttpClient);
                var builder = new DeparturesByAirportRequestBuilder();
                //ACT
                var response = client.GetDeparturesByAirport(builder.WithAirport("OMDB").WithIntervalBegin(DateTime.UtcNow.AddHours(-48).ToUnixTimestamp()).WithIntervalEnd(DateTime.UtcNow.ToUnixTimestamp()).Build());

                //ASSERT
                Assert.True(response.Count > 0);
            }
예제 #3
0
            public void CallGetFlightsInTimeInterval()
            {
                //ARRANGE
                var client  = new OpenSkyClient(_httpClientFixture.HttpClient);
                var builder = new FlightsInTimeIntervalRequestBuilder();
                //ACT
                var response = client.GetFlightsInTimeInterval(builder.WithIntervalBegin(1565746000).WithIntervalEnd(1565751701).Build());

                //ASSERT
                Assert.True(response.Count > 0);
            }
예제 #4
0
            public void CallGetAllStateVectors()
            {
                //ARRANGE
                var client  = new OpenSkyClient(_httpClientFixture.HttpClient);
                var builder = new AllStateVectorsRequestBuilder();
                //ACT
                var response = client.GetAllStateVectors(builder.WithBoundingBox(45.8389m, 5.9962m, 47.8229m, 10.5226m).Build());

                //ASSERT
                Assert.True(response.StateVectors.Count > 0);
            }
        public async Task GetAllFlightsTest()
        {
            var client = new OpenSkyClient();

            var begin = new DateTime(2020, 1, 1, 13, 10, 0);
            var end   = new DateTime(2020, 1, 1, 15, 10, 0);

            var response = await client.GetAllFlightsBetweenAsync(begin, end);

            Assert.IsNotNull(response);
            Assert.AreEqual(2727, response.Flights.Length);
        }
예제 #6
0
            public void CallGetTrackByAircraft()
            {
                //ARRANGE
                var client = new OpenSkyClient(_httpClientFixture.HttpClient);
                var trackByAircraftRequestBuilder = new TrackByAircraftRequestBuilder();
                var allStateVectorRequestBuilder  = new AllStateVectorsRequestBuilder();
                //ACT
                var flyingAircraftIcao24 = client.GetAllStateVectors(allStateVectorRequestBuilder.WithBoundingBox(45m, 5m, 47m, 10m).Build()).StateVectors.Last().Icao24;
                var response             = client.GetTrackByAircraft(trackByAircraftRequestBuilder.WithIcao24(flyingAircraftIcao24).WithTime(0).Build());

                //ASSERT
                Assert.True(response.Path.Count > 0);
            }
예제 #7
0
            public void CallGetFlightsByAircraft()
            {
                //ARRANGE
                var client = new OpenSkyClient(_httpClientFixture.HttpClient);
                var allStateVectorRequestBuilder    = new AllStateVectorsRequestBuilder();
                var flightsByAircraftRequestBuilder = new FlightsByAircraftRequestBuilder();

                //ACT
                var flyingAircraftIcao24 = client.GetAllStateVectors(allStateVectorRequestBuilder.WithBoundingBox(45m, 5m, 47m, 10m).Build()).StateVectors.First().Icao24;
                var response             = client.GetFlightsByAircraft(flightsByAircraftRequestBuilder.WithIcao24(flyingAircraftIcao24).WithIntervalBegin(DateTime.UtcNow.AddHours(-480).ToUnixTimestamp()).WithIntervalEnd(DateTime.UtcNow.ToUnixTimestamp()).Build());

                //ASSERT
                Assert.True(response.Count > 0);
            }
예제 #8
0
        public async Task ProduceVectorMessagesAsync()
        {
            _logger.LogInformation("Producing messages...");
            using (var client = _httpClientFactory.CreateClient())
            {
                var openSkyClient = new OpenSkyClient(client);

                var vectors = openSkyClient.GetAllStateVectors(new AllStateVectorsRequestModel());
                var tasks   = new ConcurrentDictionary <string, Task>();

                Parallel.ForEach(vectors.StateVectors.ToArray(), (vector) =>
                {
                    tasks.TryAdd(vector.Icao24, _bus.Publish(vector));
                });

                await Task.WhenAll(tasks.Values);
            }
        }
예제 #9
0
 public StateVectorController(ILogger <StateVectorController> logger, IOptions <ApplicationOptions> applicationOptions, OpenSkyClient client)
 {
     this.logger             = logger;
     this.applicationOptions = applicationOptions.Value;
     this.client             = client;
 }