Ejemplo n.º 1
0
 public void SetUp()
 {
     _trackRemover           = new TrackRemover();
     _fakeTrackManagement    = new TrackManagement();
     _fakeAirspaceController = Substitute.For <IAirspaceController>();
     _flightManagement       = new AirTrafficMonitoring.FlightManagement.FlightManagement(_fakeAirspaceController, _trackRemover, _fakeTrackManagement);
 }
        public void HandleTrackOutsideAirspace_TrackOutsideAirspaceGetsRemoved_TrackRemoverRecivesCallWithCorrectTrack()
        {
            // ARRANGE
            List <Track> newTracks = new List <Track>();
            List <Track> oldTracks = new List <Track>();

            for (int i = 0; i < 5; i++)
            {
                Track track = new Track()
                {
                    Tag = "FlightNo" + i
                };
                newTracks.Add(track);
            }

            // Creating mock and uut
            _fakeTrackManagement = new TrackManagementMock(newTracks, oldTracks);

            _uut = new AirTrafficMonitoring.FlightManagement.FlightManagement(_fakeAirspaceController, _fakeTrackRemover, _fakeTrackManagement);

            // Adding tracks to newestTracks list via HandleTracksInsideAirspace
            Track trackToBeRemoved = new Track()
            {
                Tag = "FlightNo0"
            };
            TrackEventArgs eventArgs = new TrackEventArgs(trackToBeRemoved);

            _fakeAirspaceController.TrackInAirspace += Raise.EventWith(eventArgs);

            // ACT
            _fakeAirspaceController.TrackOutsideAirspace += Raise.EventWith(eventArgs);

            // ASSERT
            _fakeTrackRemover.Received(1).RemoveTrack(Arg.Any <List <Track> >(), trackToBeRemoved);
        }
        public void SetUp()
        {
            _trackRemover       = new TrackRemover();
            _trackManagement    = new TrackManagement();
            _timeSpanCalculator = new TimeSpanCalculator();
            _distanceCalculator = new DistanceCalculator();
            _velocityCalculator = new VelocityCalculator(_timeSpanCalculator, _distanceCalculator);
            _velocityAnalyzer   = new VelocityAnalyzer(_velocityCalculator);
            _compassCalculator  = new CompassCalculator();
            _courseAnalyzer     = new CourseAnalyzer(_compassCalculator);

            _altitudeDistanceCalculator = new AltitudeDistanceCalculator();
            _collisionAnalyzer          = new CollisionAnalyzer(_distanceCalculator, _altitudeDistanceCalculator);
            _separationStringBuilder    = new SeparationStringBuilder();
            _fakeFileWriter             = Substitute.For <IFileWriter>();

            _airspace                    = new Airspace();
            _airspaceTrackChecker        = new AirspaceTrackChecker(_airspace);
            _fakeTransponderDataReciever = Substitute.For <ITransponderDataReciever>();
            _airspaceController          = new AirTrafficMonitoring.AirspaceController.AirspaceController(_fakeTransponderDataReciever, _airspaceTrackChecker);

            _flightManagement    = new AirTrafficMonitoring.FlightManagement.FlightManagement(_airspaceController, _trackRemover, _trackManagement);
            _flightAnalyzer      = new AirTrafficMonitoring.FlightAnalyzer.FlightAnalyzer(_flightManagement, _courseAnalyzer, _velocityAnalyzer);
            _collisionController = new AirTrafficMonitoring.CollisionController.CollisionController(_flightManagement, _collisionAnalyzer, _separationStringBuilder);
            _logger = new AirTrafficMonitoring.CollisionController.Logger(_collisionController, "", _fakeFileWriter);
        }
 public FlightManagement(IAirspaceController airspaceController, ITrackRemover trackRemover,
                         ITrackManagement trackManagement)
 {
     airspaceController.TrackOutsideAirspace += HandleTrackOutsideAirspace;
     airspaceController.TrackInAirspace      += HandleTrackInsideAirspace;
     _trackRemover    = trackRemover;
     _trackManagement = trackManagement;
     _newestTracks    = new List <Track>();
     _oldestTracks    = new List <Track>();
 }
 public void SetUp()
 {
     _trackRemover           = new TrackRemover();
     _fakeTrackManagement    = new TrackManagement();
     _fakeAirspaceController = Substitute.For <IAirspaceController>();
     _timeSpanCalculator     = new TimeSpanCalculator();
     _distanceCalculator     = new DistanceCalculator();
     _velocityCalculator     = new VelocityCalculator(_timeSpanCalculator, _distanceCalculator);
     _velocityAnalyzer       = new VelocityAnalyzer(_velocityCalculator);
     _compassCalculator      = new CompassCalculator();
     _courseAnalyzer         = new CourseAnalyzer(_compassCalculator);
     _flightManagement       = new AirTrafficMonitoring.FlightManagement.FlightManagement(_fakeAirspaceController, _trackRemover, _fakeTrackManagement);
     _flightAnalyzer         = new AirTrafficMonitoring.FlightAnalyzer.FlightAnalyzer(_flightManagement, _courseAnalyzer, _velocityAnalyzer);
 }
        public void HandleTrackInsideAirspace_HandlesTrack_EventWasRaised()
        {
            _fakeTrackManagement = Substitute.For <ITrackManagement>();
            _uut = new AirTrafficMonitoring.FlightManagement.FlightManagement(_fakeAirspaceController, _fakeTrackRemover, _fakeTrackManagement);

            bool wasRaised = false;

            _uut.FlightDataReady += (sender, args) => wasRaised = true;
            TrackEventArgs e = new TrackEventArgs(new Track());

            // ACT
            _fakeAirspaceController.TrackInAirspace += Raise.EventWith <TrackEventArgs>(e);

            // ASSERT
            Assert.That(wasRaised, Is.EqualTo(true));
        }
        public void HandleTrackOutsideAirspace_TracksOutsideAirspaceGetsRemoved_TrackRemoverRecievesCorrectNumberOfCalls(int totalTracks, int numberOfTracksToBeRemoved)
        {
            //Arrange
            //Creating list that will be added to flightmanagements private lists.
            List <Track> newTracks = new List <Track>();
            List <Track> oldTracks = new List <Track>();

            for (int i = 0; i < totalTracks; i++)
            {
                Track track = new Track()
                {
                    Tag = "FlightNo" + i
                };
                newTracks.Add(track);
            }

            //Creating mock and uut:
            _fakeTrackManagement = new TrackManagementMock(newTracks, oldTracks);
            _uut = new AirTrafficMonitoring.FlightManagement.FlightManagement(_fakeAirspaceController, _fakeTrackRemover, _fakeTrackManagement);

            //Adding tracks to newestTracks list via HandleTracksInsideAirspace

            _fakeAirspaceController.TrackInAirspace += Raise.EventWith(new TrackEventArgs(new Track()));

            //Act
            for (int i = 0; i < numberOfTracksToBeRemoved; i++)
            {
                Track trackToBeRemoved = new Track()
                {
                    Tag = "FlightNo" + i
                };
                TrackEventArgs arg = new TrackEventArgs(trackToBeRemoved);
                _fakeAirspaceController.TrackOutsideAirspace += Raise.EventWith(arg);
            }

            //Assert
            _fakeTrackRemover.Received(numberOfTracksToBeRemoved).RemoveTrack(Arg.Any <List <Track> >(), Arg.Any <Track>());
        }