public void WebSite_PolarPlotJson_Returns_Correct_Json_For_Request_For_Polar_Plots_From_Internet_When_Permission_Granted()
        {
            _Configuration.InternetClientSettings.CanShowPolarPlots = true;
            var request = new PolarPlotAddress(_Request)
            {
                FeedId = 1,
            };

            _PolarPlotSlices.Add(new PolarPlotSlice()
            {
                AltitudeLower  = 101,
                AltitudeHigher = 200,
                PolarPlots     =
                {
                    { 21, new PolarPlot()
                        {
                            Altitude = 110, Latitude = 1.234, Longitude = 5.678, Angle = 21, Distance = 42,
                        } },
                    { 90, new PolarPlot()
                        {
                            Altitude = 120, Latitude = -43.2, Longitude = -32.1, Angle = 90, Distance = 56,
                        } },
                }
            });
            SetupPolarPlotterForFeed(1);

            var json = SendJsonRequest <PolarPlotsJson>(request.Address, isInternetClient: true);

            Assert.AreEqual(1, json.FeedId);
            Assert.AreNotEqual(0, json.Slices.Count);
        }
        public void WebSite_PolarPlotJson_Returns_Correct_Json_For_Request_For_Polar_Plots()
        {
            var request = new PolarPlotAddress(_Request)
            {
                FeedId = 1,
            };

            _PolarPlotSlices.Add(new PolarPlotSlice()
            {
                AltitudeLower  = 101,
                AltitudeHigher = 200,
                PolarPlots     =
                {
                    { 21, new PolarPlot()
                        {
                            Altitude = 110, Latitude = 1.234, Longitude = 5.678, Angle = 21, Distance = 42,
                        } },
                    { 90, new PolarPlot()
                        {
                            Altitude = 120, Latitude = -43.2, Longitude = -32.1, Angle = 90, Distance = 56,
                        } },
                }
            });
            _PolarPlotSlices.Add(new PolarPlotSlice()
            {
                AltitudeLower  = 201,
                AltitudeHigher = 300,
            });

            SetupPolarPlotterForFeed(1);
            var json = SendJsonRequest <PolarPlotsJson>(request.Address);

            Assert.AreEqual(1, json.FeedId);
            Assert.AreEqual(2, json.Slices.Count);

            var slice = json.Slices[0];

            Assert.AreEqual(101, slice.StartAltitude);
            Assert.AreEqual(200, slice.FinishAltitude);
            Assert.AreEqual(2, slice.Plots.Count);

            var plot = slice.Plots[0];

            Assert.AreEqual(1.234f, plot.Latitude, 0.001f);
            Assert.AreEqual(5.678f, plot.Longitude, 0.001f);

            plot = slice.Plots[1];
            Assert.AreEqual(-43.2f, plot.Latitude, 0.001f);
            Assert.AreEqual(-32.1f, plot.Longitude, 0.001f);

            slice = json.Slices[1];
            Assert.AreEqual(201, slice.StartAltitude);
            Assert.AreEqual(300, slice.FinishAltitude);
            Assert.AreEqual(0, slice.Plots.Count);
        }
        public void WebSite_PolarPlotJson_Returns_Correct_Json_When_Feed_Is_Missing()
        {
            var request = new PolarPlotAddress(_Request)
            {
            };

            SetupPolarPlotterForFeed(1);
            var json = SendJsonRequest <PolarPlotsJson>(request.Address);

            Assert.AreEqual(-1, json.FeedId);
            Assert.AreEqual(0, json.Slices.Count);
        }
        public void WebSite_PolarPlotJson_Returns_Correct_Json_When_Feed_Has_No_Polar_Plot()
        {
            var request = new PolarPlotAddress(_Request)
            {
                FeedId = 1,
            };
            var aircraftList = SetupPolarPlotterForFeed(1);

            aircraftList.Setup(r => r.PolarPlotter).Returns((IPolarPlotter)null);

            var json = SendJsonRequest <PolarPlotsJson>(request.Address);

            Assert.AreEqual(1, json.FeedId);
            Assert.AreEqual(0, json.Slices.Count);
        }