public void FilterTrack(object o, TracksChangedEventArgs args) { foreach (var track in args.Tracks) { if (_airspace.IsTrackInAirspace(track)) { FilteredTracksList.Add(track); } } var handler = TracksFiltered; handler?.Invoke(this, new TracksFilteredEventArgs(FilteredTracksList)); }
public void Setup() { _nEventsRecieved = 0; insideLowerBoundry = new Track() { Altitude = 500, X = 10000, Y = 10000 }; insideMiddle = new Track() { Altitude = 10000, X = 50000, Y = 50000 }; insideUpperBoundry = new Track() { Altitude = 20000, X = 90000, Y = 90000 }; outsideLowerBoundry = new Track() { Altitude = 499, X = 9999, Y = 9999 }; outsideUpperBoundry = new Track() { Altitude = 20001, X = 90001, Y = 90001 }; _dataReader = Substitute.For <IParsing>(); _airspace = Substitute.For <IAirspace>(); _airspace.IsTrackInAirspace(insideLowerBoundry).Returns(true); _airspace.IsTrackInAirspace(insideMiddle).Returns(true); _airspace.IsTrackInAirspace(insideUpperBoundry).Returns(true); _airspace.IsTrackInAirspace(outsideLowerBoundry).Returns(false); _airspace.IsTrackInAirspace(outsideUpperBoundry).Returns(false); _uut = new Filtering(_airspace, _dataReader); _uut.TracksFiltered += (o, args) => { _filteredTracks = args.FilteredTracks; ++_nEventsRecieved; }; }