예제 #1
0
 public HandleRTD(ITransponderReceiver receiver, IAirspace CheckPlanes, IDetectSeparationEvent detect) // Changed to IAirspace
 {
     Receiver = receiver;
     Receiver.TransponderDataReady += OnDataReady;
     _CheckPlanes          = CheckPlanes;
     detectSeparationEvent = detect;
 }
예제 #2
0
        public void SetUp()
        {
            _parser   = Substitute.For <IParser>();
            _filter   = new Filter(_parser);
            _airspace = new Airspace(_filter);
            _updater  = new Updater(_filter);

            _filter.IsTrackInAirspace += (o, args) =>
            {
                _track = args.Track;
                _nEventsReceived++;
            };

            _filter.TracksFiltered += (o, args) =>
            {
                _tracksFilteredList = args.FilteredTracks;
                _nEventsReceived++;
            };

            _filter.TrackLeft += (o, args) =>
            {
                _trackLeft = args.Track;
                _nEventsReceived++;
            };
        }
예제 #3
0
        public void SetUp()
        {
            fakeCheckPlanes = Substitute.For <ICheckPlanes>();
            uut             = new Airspace(fakeCheckPlanes);
            fakePlanes      = new List <IPlane>();
            fakeILeaveEvent = Substitute.For <ILeaveEvent>();
            receivedData    = new LeaveEventArgs.Msg();
            nEventsReceived = 0;

            CheckPlanes.ListOfTags = new List <string>();
            time1 = new DateTime(2010, 10, 10, 00, 01, 00);

            fakePlane             = new Plane();
            fakePlane.XCoordinate = 20000;
            fakePlane.YCoordinate = 42000;
            fakePlane.Altitude    = 900;
            fakePlane.Tag         = "MarkusFriis";
            fakePlanes.Add(fakePlane);


            fakeILeaveEvent.RaisedLeaveEvent += (o, args) =>
            {
                receivedData = args.Message;
                ++nEventsReceived;
            };
        }
예제 #4
0
 public Monitor(IAirspace airspaceDataSource, ISeperationManager seperationEventDataSource)
 {
     AirspaceDataSource = airspaceDataSource;
     AirspaceDataSource.AirspaceContentUpdated += OnAirspaceContentUpdated;
     SeperationEventDataSource = seperationEventDataSource;
     SeperationEventDataSource.SeperationEventsUpdated += OnSeperationEventsUpdated;
 }
예제 #5
0
 //fake inject constructer
 public Decoder(ITransponderReceiver receiver, ICalculator calc, IPrint printer, IAirspace space)
 {
     this.receiver = receiver;
     this.receiver.TransponderDataReady += DecodeReadyData;
     this.calc    = calc;
     this.printer = printer;
     this.space   = space;
 }
예제 #6
0
 public void SetUp()
 {
     _fakeView              = Substitute.For <IView>();
     _fakeSeperation        = Substitute.For <ISeperationHandler>();
     _fakeFlight            = Substitute.For <IFlightRecordReceiver>();
     _fakeMonitoredAirspace = Substitute.For <IAirspace>();
     _uut = new FlightObserver(_fakeMonitoredAirspace, _fakeFlight, _fakeView, _fakeSeperation);
 }
예제 #7
0
 public Output(ITrackFactory trackFactory, IAirspace airspace, ISeparation separation)
 {
     airspace.OnAirspaceCheckEventDone  += Airspace_OnAirspaceCheckEventDone;
     trackFactory.OnTrackListDoneEvent  += TrackFactory_OnTrackListDoneEvent;
     airspace.OnPlaneEnteringAirspace   += Airspace_OnPlaneEnteringAirspace;
     airspace.OnPlaneExitingAirspace    += Airspace_OnPlaneExitingAirspace;
     separation.OnPlaneCollision        += Separation_OnPlaneCollision;
     separation.OnPlaneAvoidedCollision += Separation_OnPlaneAvoidedCollision;
 }
예제 #8
0
파일: ATM.cs 프로젝트: Phalap/SWTGroup10
 public ATM(ILogger logger, IRenderer renderer, ITransponderReceiver transponderReceiver, IAirspace airspace)
 {
     _logger                  = logger;
     _renderer                = renderer;
     _transponderReceiver     = transponderReceiver;
     _airspace                = airspace;
     _currentSeperationEvents = new List <SeperationEvent>();
     _currentTracks           = new List <TrackData>();
 }
예제 #9
0
 //fake inject constructer
 public Decoder(ITransponderReceiver receiver, ICalculator calc, IPrint printer, IAirspace space, ISeperation seperation)
 {
     this.receiver = receiver;
     this.receiver.TransponderDataReady += ReceiverOnTransponderDataReady;
     this.calc       = calc;
     this.printer    = printer;
     this.space      = space;
     this.seperation = seperation;
 }
예제 #10
0
        public void Setup()
        {
            fakeDetectSeparationEvent = Substitute.For <IDetectSeparationEvent>();
            fakeAirspace    = Substitute.For <IAirspace>();
            fakeCheckPlanes = Substitute.For <ICheckPlanes>();

            uut = new Log(fakeDetectSeparationEvent, fakeAirspace, fakeCheckPlanes);
            uut.ClearLog();
        }
예제 #11
0
 public Renedition(IDetectSeparationEvent detectSep, ICheckPlanes detectEnter, IAirspace detectLeave)
 {
     DetectSep = detectSep;
     DetectSep.RaisedSerparationEvent += HandleSeparationEvent;
     DetectEnter = detectEnter;
     DetectEnter.RaisedEnterEvent += HandelEnterEvent;
     DetectLeave = detectLeave;
     DetectLeave.RaisedLeaveEvent += HandleLeaveEvent;
 }
 public FlightObserver(IAirspace monitoredAirspace, IFlightRecordReceiver recordReceiver, IView view, ISeperationHandler handler)
 {
     _recordReceiver = recordReceiver;
     _recordReceiver.FlightRecordReceived += UpdateFlightTracks;
     _view              = view;
     _handler           = handler;
     _tracks            = new List <IFlightTrack>();
     _monitoredAirspace = monitoredAirspace;
 }
예제 #13
0
        public void Setup()
        {
            _uut      = new FlightValidator();
            _airspace = Substitute.For <IAirspace>();

            _airspace.Height = 80000;
            _airspace.Width  = 80000;
            _airspace.MaxAlt = 20000;
            _airspace.MinAlt = 500;
        }
예제 #14
0
 public void PrintWithinAirspace(Airplane airplane, IAirspace airspace)
 {
     if (airspace.WithInAirspace(airplane))
     {
         System.Console.WriteLine("Airplane: {0} is 'IN' within airspace!", airplane.Tag);
     }
     else
     {
         System.Console.WriteLine("Airplane: {0} is 'NOT' within airspace!", airplane.Tag);
     }
 }
예제 #15
0
        public void Setup()
        {
            _trFakeData   = Substitute.For <ITransponderReceiver>();
            _trackFactory = new TrackFactory(_trFakeData);
            _airspace     = new Airspace(_trackFactory);
            _separation   = new Separation(_airspace);

            _uut = new Output(_trackFactory, _airspace, _separation);

            _insideAirspacePlane1 = new Track()
            {
                Altitude     = 8000,
                AltitudeOld  = 8000,
                Heading      = 0,
                Tag          = "PIE284",
                TimeStamp    = new DateTime(2018, 11, 1, 11, 11, 11, 0),
                TimeStampOld = new DateTime(2018, 11, 1, 11, 11, 10, 0),
                Velocity     = 0,
                XCoord       = 15000,
                YCoord       = 15000,
                XCoordOld    = 16000,
                YCoordOld    = 16000
            };

            _insideAirspacePlane2 = new Track()
            {
                Altitude     = 8200,
                AltitudeOld  = 8200,
                Heading      = 0,
                Tag          = "PIE285",
                TimeStamp    = new DateTime(2018, 11, 1, 11, 11, 11, 0),
                TimeStampOld = new DateTime(2018, 11, 1, 11, 11, 10, 0),
                Velocity     = 0,
                XCoord       = 18000,
                YCoord       = 18000,
                XCoordOld    = 17000,
                YCoordOld    = 17000
            };

            _insideAirspacePlane3 = new Track()
            {
                Altitude     = 8200,
                AltitudeOld  = 8200,
                Heading      = 0,
                Tag          = "PIE286",
                TimeStamp    = new DateTime(2018, 11, 1, 11, 11, 11, 0),
                TimeStampOld = new DateTime(2018, 11, 1, 11, 11, 10, 0),
                Velocity     = 0,
                XCoord       = 12000,
                YCoord       = 12000,
                XCoordOld    = 17000,
                YCoordOld    = 17000
            };
        }
예제 #16
0
        public void Setup()
        {
            _fileLog  = Substitute.For <ILog>();
            _airspace = Substitute.For <IAirspace>();

            _uut = new FlightSeparation(_fileLog, _airspace);

            _uut.SeparationWarningEvent += (sender, args) => _eventRaised = true;
            _airspace.FlightAddedEvent  += (sender, args) => _eventHandled = true;
            _airspace.FlightAddedEvent  += (sender, args) => _flightAddedEventArg = args;
        }
        public void SetUp()
        {
            //Stubs
            _transponderReceiver = Substitute.For <ITransponderReceiver>();
            //Real
            _airspace = new Airspace();
            _factory  = new Factory(_transponderReceiver);
            //UUT
            _uut = new Filter(_airspace, _factory);

            _uut.TracksFiltered += (o, args) => { _filteredList = args.TrackData; };
        }
예제 #18
0
        public void Setup()
        {
            _filter   = Substitute.For <IFilter>();
            _airspace = new Airspace(_filter);

            _filter.IsTrackInAirspace += (o, args) =>
            {
                _track             = args.Track;
                _trackIsInAirspace = args.IsInAirspace;
                _nEventsReceived++;
            };
        }
예제 #19
0
        public TransponderRecieverClient(ITransponderReceiver receiver, ITrackFormatter formatter, ITrackManager manager)
        {
            // This will store the real or the fake transponder data receiver
            _receiver = receiver;

            _airspace  = new Airspace(10000, 90000, 10000, 90000, 500, 20000);
            _formatter = formatter;
            _manager   = manager;

            // Attach to the event of the real or the fake TDR
            this._receiver.TransponderDataReady += ReceiverOnTransponderDataReady;
        }
예제 #20
0
        public void Setup()
        {
            _eventHandled = false;

            _airspace = Substitute.For <IAirspace>();
            _receiver = Substitute.For <ITransponderReceiver>();

            _uut = new FlightDecoder(_airspace, _receiver);

            _receiver.TransponderDataReady += (sender, args) => _eventHandled = true;
            _receiver.TransponderDataReady += (sender, args) => _transponderDataEventArgs = args;
        }
        public void SetUp()
        {
            _tracksInAirspace = Substitute.For <ITracksInAirSpaceController>();
            _track            = Substitute.For <ITrack>();
            _trackFactory     = new TrackFactory();
            _receiver         = Substitute.For <ITransponderReceiver>();
            _airspace         = Substitute.For <IAirspace>();
            _sortingPlanes    = Substitute.For <ISortingPlanesController>();
            _display          = Substitute.For <IDisplay>();

            _driver = new ReceivedDataController(_receiver, _tracksInAirspace);
        }
예제 #22
0
        public void Setup()
        {
            _fakeTrackFactory = Substitute.For <ITrackFactory>();
            _fakeAirspace     = Substitute.For <IAirspace>();
            _fakeSeparation   = Substitute.For <ISeparation>();

            _uut = new Output(_fakeTrackFactory, _fakeAirspace, _fakeSeparation);


            _insideAirspacePlane1 = new Track()
            {
                Altitude     = 8000,
                AltitudeOld  = 8000,
                Heading      = 0,
                Tag          = "PIE284",
                TimeStamp    = new DateTime(2018, 11, 1, 11, 11, 11, 0),
                TimeStampOld = new DateTime(2018, 11, 1, 11, 11, 10, 0),
                Velocity     = 0,
                XCoord       = 15000,
                YCoord       = 15000,
                XCoordOld    = 16000,
                YCoordOld    = 16000
            };
            _insideAirspacePlane2 = new Track()
            {
                Altitude     = 8200,
                AltitudeOld  = 8200,
                Heading      = 0,
                Tag          = "PIE285",
                TimeStamp    = new DateTime(2018, 11, 1, 11, 11, 11, 0),
                TimeStampOld = new DateTime(2018, 11, 1, 11, 11, 10, 0),
                Velocity     = 0,
                XCoord       = 18000,
                YCoord       = 18000,
                XCoordOld    = 17000,
                YCoordOld    = 17000
            };

            _insideAirspacePlane3 = new Track()
            {
                Altitude     = 8200,
                AltitudeOld  = 8200,
                Heading      = 0,
                Tag          = "PIE286",
                TimeStamp    = new DateTime(2018, 11, 1, 11, 11, 11, 0),
                TimeStampOld = new DateTime(2018, 11, 1, 11, 11, 10, 0),
                Velocity     = 0,
                XCoord       = 12000,
                YCoord       = 12000,
                XCoordOld    = 17000,
                YCoordOld    = 17000
            };
        }
        public void Setup()
        {
            _updateModule = Substitute.For <IUpdateModule>();
            _airspace     = Substitute.For <IAirspace>();

            _uut = new TrackLeftAirspace(_airspace, _updateModule);
            _uut.TracksleftAirspace += (sender, args) =>
            {
                _tracks = args.Data;
            };

            _trackLeftAirspace = new Point(1, 1, 1);
        }
예제 #24
0
파일: ATM.cs 프로젝트: skjesp/SWT_20-ATM
        }                                                                               // List to store violating planes


        public ATM(IAirspace observableAirspace,
                   IPlaneSeparation planeSeparator,
                   IRendition renditionOutputter,
                   ILogger logger = null)
        {
            ObservableAirspace = observableAirspace;
            PlaneSeparator     = planeSeparator;
            Logger             = logger;
            RenditionOutputter = renditionOutputter;

            PlaneList = new List <IPlane>();
            ConditionViolationSeparation = new List <List <IPlane> >();
        }
        public void SetUp()
        {
            var fakeView       = Substitute.For <IView>();
            var fakeSeperation = Substitute.For <ISeperationHandler>();
            var fakeLogger     = Substitute.For <Infrastructure.ILogger>();

            var _factory = new FlightRecordFactory();

            _fakeMonitoredAirspace     = Substitute.For <IAirspace>();
            _fakeTransponder           = Substitute.For <ITransponderReceiver>();
            _ssut_flightRecordReceiver = new FlightRecordReceiver(_fakeTransponder, _factory);
            _sut = new FlightObserver(_fakeMonitoredAirspace, _ssut_flightRecordReceiver, fakeView, fakeSeperation);
        }
예제 #26
0
        public void SetUp()
        {
            transponder = Substitute.For <ITransponderReceiver>();

            airspace      = new Airspace(10000, 10000, 90000, 90000, 500, 20000);
            decoder       = new Decoder(transponder);
            amsController = new AMSController(decoder, airspace);

            amsController.FilteredAircraftsEvent    += (o, args) => { ++_nFilteredAircraftEvent; };
            amsController.TrackEnteredAirspaceEvent += (o, args) => { ++_nTrackEnteredAirspaceEvent; };
            amsController.TrackLeftAirspaceEvent    += (o, args) => { ++_nTrackLeftAirspaceEvent; };
            decoder.DataDecodedEvent += (o, args) => { ++_nDataDecodedEvent; };
        }
        public AirTrafficMonitor(IAirTrafficMonitorFactory factory, ITransponderReceiver receiver)
        {
            _separationService = factory.SeparationService;
            _trackingService   = factory.TrackingService;
            _airspaceService   = factory.AirspaceService;
            _airspace          = factory.Airspace;

            //Subscribe to events.
            receiver.TransponderDataReady += TransponderReceiver_DataReady;

            //Initialize
            _trackings        = new HashSet <ITrack>();
            _separationEvents = new HashSet <ISeparationEvent>();
        }
        public void Setup()
        {
            //Setup stuff
            airspace      = new Airspace(xMin, xMax, yMin, yMax, zMin, zMax);
            fakeAirspace  = Substitute.For <IAirspace>();
            consoleOutput = Substitute.For <IConsoleOutput>();
            fileOutput    = Substitute.For <IFileOutput>();
            //Make new fake TransponderReceiver.
            transponderReceiver = Substitute.For <ITransponderReceiver>();;
            tracks = new List <TrackData>();


            uut = new ATMclass(consoleOutput, fileOutput, fakeAirspace, transponderReceiver);
        }
 public void SetUp()
 {
     _airspace   = Substitute.For <IAirspace>();
     _controller = Substitute.For <ISortingPlanesController>();
     _tracksInAirspaceController = new TracksInAirspaceController(_airspace, _controller);
     _receiver = Substitute.For <ITransponderReceiver>();
     _driver   = new ReceivedDataController(_receiver, _tracksInAirspaceController);
     track1    = new Track()
     {
         Tag         = "ABC123",
         XCoordinate = 10000,
         YCoordinate = 10000,
         Altitude    = 1000,
     };
 }
        public void setup()
        {
            //Setup stuff
            airspace       = new Airspace(xMin, xMax, yMin, yMax, zMin, zMax);
            fakeAirspace   = Substitute.For <IAirspace>();
            consoleOutput  = Substitute.For <IConsoleOutput>();
            fakeFileOutput = Substitute.For <IFileOutput>();
            //Make new fake TransponderReceiver.
            transponderReceiver = Substitute.For <ITransponderReceiver>();
            seperationEvents    = new List <Event>();
            tracks    = new List <TrackData>();
            timestamp = "235928121999";

            uut = new ATMclass(consoleOutput, fakeFileOutput, fakeAirspace, transponderReceiver);
        }