public void Update(Tos obj) { var recievedTracks = obj.RecievedTracks; foreach (var track in recievedTracks) { if (_airSpace.IsInValidAirSpace(track)) { if (_trackStorage.Contains(track)) { _trackStorage.Update(track); } else { _trackStorage.Add(track); } } else if (_trackStorage.Contains(track) && !_airSpace.IsInValidAirSpace(track)) { _trackStorage.Remove(track); } } _collisonDetector.CheckForCollision(_trackStorage.GetAllTracks()); _render.PrintTrackData(_trackStorage.GetAllTracks()); }
public void CheckForCollision_SeparationEventRaised_SeparationCounterIsTwo() { //Reset event counters SeparationEventCounter = 0; NotCollidingEventCounter = 0; //Add colliding tracks to list var tracks = new List <ITrack> { new Track { PositionX = 5000, PositionY = 5000, Tag = "AAA", Timestamp = DateTime.Now, Altitude = 1000 }, new Track { PositionX = 5000, PositionY = 5000, Tag = "BBB", Timestamp = DateTime.Now, Altitude = 1000 }, }; _uut.CheckForCollision(tracks); //Is equal to two because both tracks cause the event. Assert.That(SeparationEventCounter, Is.EqualTo(2)); }