예제 #1
0
        public void Setup()
        {
            //Arrange
            _objectifyingModule = Substitute.For <IObjectifyingModule>();
            _airspace           = Substitute.For <IAirspace>();

            _uut = new FilterModule(_objectifyingModule, _airspace);
            _uut.TracksFiltered += (sender, args) =>
            {
                _tracks = args.Data;
            };

            //Border is (10000, 10000, 500) to (90000, 90000, 20000).
            _insideAirspace  = new Point(50000, 50000, 10000);
            _outsideAirspace = new Point(500, 500, 5);

            //Assumptions
            _airspace.CheckIfWithinAirspace(_insideAirspace).Returns(true);
            _airspace.CheckIfWithinAirspace(_outsideAirspace).Returns(false);
        }
예제 #2
0
        //Filter tracks - focuses only on tracks within the airspace
        //Ignores irrelevant airplanes
        private void FilterTracks(object sender, EventTracks e)
        {
            var filtered = new List <ITrack>();

            foreach (var track in e.Data)
            {
                if (_airspace.CheckIfWithinAirspace(track.Position))
                {
                    filtered.Add(track);
                }
            }

            NewFiltered(new EventTracks(filtered));
        }