public void ReportFlightJson_Constructor_Initialises_To_Known_State_And_Properties_Work()
        {
            var json = new ReportFlightJson();

            TestUtilities.TestProperty(json, r => r.AircraftIndex, null, 1);
            TestUtilities.TestProperty(json, r => r.Callsign, null, "Ab");
            TestUtilities.TestProperty(json, r => r.EndTime, DateTime.MinValue, DateTime.Now);
            TestUtilities.TestProperty(json, r => r.FirstAltitude, 0, 1);
            TestUtilities.TestProperty(json, r => r.FirstGroundSpeed, 0, 1);
            TestUtilities.TestProperty(json, r => r.FirstIsOnGround, false);
            TestUtilities.TestProperty(json, r => r.FirstLatitude, 0.0, 1.0);
            TestUtilities.TestProperty(json, r => r.FirstLongitude, 0.0, 1.0);
            TestUtilities.TestProperty(json, r => r.FirstSquawk, 0, 1);
            TestUtilities.TestProperty(json, r => r.FirstTrack, 0f, 1f);
            TestUtilities.TestProperty(json, r => r.FirstVerticalRate, 0, 1);
            TestUtilities.TestProperty(json, r => r.HadAlert, false);
            TestUtilities.TestProperty(json, r => r.HadEmergency, false);
            TestUtilities.TestProperty(json, r => r.HadSpi, false);
            TestUtilities.TestProperty(json, r => r.LastAltitude, 0, 1);
            TestUtilities.TestProperty(json, r => r.LastGroundSpeed, 0, 1);
            TestUtilities.TestProperty(json, r => r.LastIsOnGround, false);
            TestUtilities.TestProperty(json, r => r.LastLatitude, 0.0, 1.0);
            TestUtilities.TestProperty(json, r => r.LastLongitude, 0.0, 1.0);
            TestUtilities.TestProperty(json, r => r.LastSquawk, 0, 1);
            TestUtilities.TestProperty(json, r => r.LastTrack, 0f, 1f);
            TestUtilities.TestProperty(json, r => r.LastVerticalRate, 0, 1);
            TestUtilities.TestProperty(json, r => r.NumADSBMsgRec, 0, 1);
            TestUtilities.TestProperty(json, r => r.NumModeSMsgRec, 0, 1);
            TestUtilities.TestProperty(json, r => r.NumPosMsgRec, 0, 1);
            TestUtilities.TestProperty(json, r => r.RouteIndex, 0, 1);
            TestUtilities.TestProperty(json, r => r.RowNumber, 0, 1);
            TestUtilities.TestProperty(json, r => r.StartTime, DateTime.MinValue, DateTime.Now);
        }
        /// <summary>
        /// Creates a JSON representation of the database flight and adds it to an existing list of flights.
        /// </summary>
        /// <param name="flight"></param>
        /// <param name="flightList"></param>
        /// <param name="rowNumber"></param>
        /// <returns></returns>
        private ReportFlightJson AddReportFlightJson(BaseStationFlight flight, List<ReportFlightJson> flightList, ref int rowNumber)
        {
            var result = new ReportFlightJson() {
                RowNumber = rowNumber++,
                Callsign = flight.Callsign,
                StartTime = flight.StartTime,
                EndTime = flight.EndTime.GetValueOrDefault(),
                FirstAltitude = flight.FirstAltitude.GetValueOrDefault(),
                FirstGroundSpeed = (int)flight.FirstGroundSpeed.GetValueOrDefault(),
                FirstIsOnGround = flight.FirstIsOnGround,
                FirstLatitude = flight.FirstLat.GetValueOrDefault(),
                FirstLongitude = flight.FirstLon.GetValueOrDefault(),
                FirstSquawk = flight.FirstSquawk.GetValueOrDefault(),
                FirstTrack = flight.FirstTrack.GetValueOrDefault(),
                FirstVerticalRate = flight.FirstVerticalRate.GetValueOrDefault(),
                HadAlert = flight.HadAlert,
                HadEmergency = flight.HadEmergency,
                HadSpi = flight.HadSpi,
                LastAltitude = flight.LastAltitude.GetValueOrDefault(),
                LastGroundSpeed = (int)flight.LastGroundSpeed.GetValueOrDefault(),
                LastIsOnGround = flight.LastIsOnGround,
                LastLatitude = flight.LastLat.GetValueOrDefault(),
                LastLongitude = flight.LastLon.GetValueOrDefault(),
                LastSquawk = flight.LastSquawk.GetValueOrDefault(),
                LastTrack = flight.LastTrack.GetValueOrDefault(),
                LastVerticalRate = flight.LastVerticalRate.GetValueOrDefault(),
                NumADSBMsgRec = flight.NumADSBMsgRec.GetValueOrDefault(),
                NumModeSMsgRec = flight.NumModeSMsgRec.GetValueOrDefault(),
                NumPosMsgRec = flight.NumPosMsgRec.GetValueOrDefault(),
            };
            flightList.Add(result);

            return result;
        }