Example #1
0
 private void AddFailRecord(StatusRecorder r)
 {
     r.AddEntry(
         StatusRecorder.Severity.Critical,
         $"Failed to download {type.TrackString()}.",
         type);
 }
Example #2
0
        public void GetAllTracksAndAddToWptListTest()
        {
            // Arrange
            var wptList  = WptListFactory.GetWptList(WptIdents);
            var recorder = new StatusRecorder();

            var handler = new TrackHandler <NorthAtlanticTrack>(
                wptList,
                wptList.GetEditor(),
                new AirportManager(),
                new TrackInUseCollection());

            // Act
            handler.GetAllTracks(DownloaderStub(), recorder);
            handler.AddToWaypointList(recorder);

            // Assert
            Assert.AreEqual(0, recorder.Records.Count);

            // Verify all tracks are added.
            AssertAllTracks(wptList);

            // Check one westbound track.
            AssertTrackC(wptList);

            // Check one eastbound track.
            AssertTrackZ(wptList);
        }
        public void GetAllTracksAndAddToWptListTest()
        {
            // Arrange
            var wptList = WptListFactory.GetWptList(wptIdents);

            AddAirways(wptList);

            var recorder = new StatusRecorder();

            var handler = new TrackHandler <PacificTrack>(
                wptList,
                wptList.GetEditor(),
                GetAirportList(),
                new TrackInUseCollection());

            // Act
            handler.GetAllTracks(DownloaderStub(), recorder);
            handler.AddToWaypointList(recorder);

            // Assert
            Assert.AreEqual(0, recorder.Records.Count);

            // Verify all tracks are added.
            AssertAllTracks(wptList);

            // Check one westbound track.
            AssertTrackJ(wptList);

            // Check one eastbound track.
            AssertTrack11(wptList);

            // Check connection routes
            AssertDct(wptList, "DANNO", "BOOKE"); // In track 11
            AssertDct(wptList, "BRINY", "ALCOA"); // In track J
        }
Example #4
0
        public void WhenMainRouteWptDoesNotExistShouldRecordFailure()
        {
            // Arrange
            var p1 = new Waypoint("P1", 0.0, 0.0);
            var p2 = new Waypoint("P2", 0.0, 2.0);

            var wptList = new WaypointList();

            var route = new Route();

            route.AddLastWaypoint(p1);
            route.AddLastWaypoint(p2, "DCT");
            var nodes = new TrackNodes("A", "NATA", route, new List <WptPair>());

            var recorder = new StatusRecorder();

            var adder = new TrackAdder(
                wptList,
                wptList.GetEditor(),
                recorder,
                TrackType.Nats);

            // Act
            adder.AddToWaypointList(new[] { nodes });

            // Assert
            Assert.AreEqual(1, recorder.Records.Count);
        }
Example #5
0
        public void GetAllTracksAndAddToWptListTest()
        {
            // Arrange
            var wptList = WptListFactory.GetWptList(wptIdents);

            AddAirways(wptList);

            var recorder = new StatusRecorder();

            var handler = new TrackHandler <AusTrack>(
                wptList,
                wptList.GetEditor(),
                GetAirportList(),
                new TrackInUseCollection());

            // Act
            handler.GetAllTracks(DownloaderStub(), recorder);
            handler.AddToWaypointList(recorder);

            // Assert
            Assert.AreEqual(0, recorder.Records.Count);

            // Verify all tracks are added.
            AssertAllTracks(wptList);

            // Check the tracks.
            AssertTrackMY14(wptList);
            AssertTrackBP14(wptList);
        }
Example #6
0
 /// <summary>
 /// Add the parsed tracks to WaypointList, if not added already.
 /// </summary>
 public void AddToWaypointList(StatusRecorder r)
 {
     if (InWptList == false)
     {
         new TrackAdder(wptList, editor, r, type).AddToWaypointList(nodes);
         tracksInUse.UpdateTracks(nodes, type);
         InWptList = true;
     }
 }
Example #7
0
 public AusotsParser(
     ITrackMessage data,
     StatusRecorder statusRecorder,
     AirportManager airportList)
 {
     allTxt = ((AusotsMessage)data).AllText;
     this.statusRecorder = statusRecorder;
     this.airportList    = airportList;
 }
Example #8
0
 public TrackAdder(
     WaypointList wptList,
     WaypointListEditor editor,
     StatusRecorder recorder,
     TrackType type)
 {
     this.wptList  = wptList;
     this.editor   = editor;
     this.recorder = recorder;
     this.type     = type;
 }
Example #9
0
        /// <summary>
        /// Load the tracks and undo previous edit to wptList.
        /// </summary>
        public void GetAllTracks(ITrackMessageProvider provider, StatusRecorder r)
        {
            try
            {
                GetTracks(provider, r);
                ReadMessage(r);
            }
            catch { }

            UndoEdit();
        }
Example #10
0
        public void AfterClearShouldBeEmpty()
        {
            var sr = new StatusRecorder();

            sr.AddEntry(StatusRecorder.Severity.Caution, "1", TrackType.Pacots);
            sr.AddEntry(StatusRecorder.Severity.Critical, "2", TrackType.Nats);

            sr.Clear();

            Assert.AreEqual(0, sr.Records.Count);
        }
Example #11
0
 // @Throws
 private async Task GetTracksAsync(ITrackMessageProvider provider, StatusRecorder r)
 {
     try
     {
         Message = await provider.GetMessageAsync();
     }
     catch
     {
         AddFailRecord(r);
         throw;
     }
 }
Example #12
0
 // @Throws
 private void GetTracks(ITrackMessageProvider provider, StatusRecorder r)
 {
     try
     {
         Message = provider.GetMessage();
     }
     catch
     {
         AddFailRecord(r);
         throw;
     }
 }
Example #13
0
        public async Task GetAllTracksAsync(StatusRecorder r)
        {
            try
            {
                await GetTracksAsync(GetTrackDownloader <T>(), r);

                ReadMessage(r);
            }
            catch { }

            UndoEdit();
        }
Example #14
0
        public void AddRecordTest()
        {
            var sr = new StatusRecorder();

            sr.AddEntry(StatusRecorder.Severity.Caution, "1", TrackType.Pacots);

            var items = sr.Records;

            Assert.AreEqual(1, items.Count);
            Assert.IsTrue(items[0].Severity == StatusRecorder.Severity.Caution);
            Assert.IsTrue(items[0].Message == "1");
            Assert.IsTrue(items[0].Type == TrackType.Pacots);
        }
Example #15
0
        // @Throws
        private List <T> Parse(StatusRecorder r)
        {
            try
            {
                return(GetParser <T>(Message, r, airportList).Parse());
            }
            catch
            {
                r.AddEntry(
                    StatusRecorder.Severity.Critical,
                    $"Failed to parse {type.TrackString()}.",
                    type);

                throw;
            }
        }
Example #16
0
        public static ITrackParser <T> GetParser <T>(ITrackMessage msg,
                                                     StatusRecorder statusRecorder, AirportManager airportList) where T : Track
        {
            var type = GetTrackType <T>();

            if (type == TrackType.Nats)
            {
                return((ITrackParser <T>) new NatsParser(msg, statusRecorder));
            }
            else if (type == TrackType.Pacots)
            {
                return((ITrackParser <T>) new PacotsParser(msg, airportList));
            }
            else if (type == TrackType.Ausots)
            {
                return((ITrackParser <T>) new AusotsParser(msg, statusRecorder, airportList));
            }

            throw new ArgumentException();
        }
Example #17
0
        // @Throws
        private void ReadMessage(StatusRecorder r)
        {
            var trks = Parse(r);

            var reader = new TrackReader <T>(wptList, airportList);

            nodes = new List <TrackNodes>();

            foreach (var i in trks)
            {
                try
                {
                    nodes.Add(reader.Read(i));
                }
                catch
                {
                    r.AddEntry(
                        StatusRecorder.Severity.Caution,
                        $"Unable to interpret track {i.Ident}.",
                        type);
                }
            }
        }
Example #18
0
 public NatsParser(ITrackMessage message, StatusRecorder statusRecorder)
 {
     this.message        = (NatsMessage)message;
     this.statusRecorder = statusRecorder;
 }
Example #19
0
 public void ChangeSize(Size size)
 {
     _width          = size.Width;
     _count          = size.Width * size.Height;
     _statusRecorder = new StatusRecorder(size.Width * size.Height);
 }
Example #20
0
        public void NewRecorderShouldBeEmpty()
        {
            var sr = new StatusRecorder();

            Assert.AreEqual(0, sr.Records.Count);
        }
Example #21
0
 /// <summary>
 /// Download tracks, parse all track messages and undo previous edit to wptList.
 /// </summary>
 public void GetAllTracks(StatusRecorder r)
 {
     GetAllTracks(GetTrackDownloader <T>(), r);
 }