예제 #1
0
파일: Filter.cs 프로젝트: Chr1000/ATM
        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));
        }
예제 #2
0
        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;
            };
        }