Exemple #1
0
        public void Output_SeperationAlertCanOutputEvent_ConsoleReturnsString()
        {
            var uut       = new Output();
            var logHelper = Substitute.For <ILogHelper>();

            uut.LogHelper = logHelper;

            var seperationAlert = new SeperationAlert("Plane1", "Plane2", DateTime.Now);

            uut.SeperationAlert(seperationAlert);

            logHelper.Received(1).Log(LoggerTarget.Console, $"Flight: Plane1 collision warning with flight: Plane2. TIME:{seperationAlert.Time}");
        }
        public void OnSeperation_FireEvent_AddSeperationEvent()
        {
            _uut.Seperation = Substitute.For <ISeperation>();
            _uut.SeperationAlertRepository = Substitute.For <ISeperationAlertRepository>();

            var seperationEvent = new SeperationEventArgs("Plane1", DateTime.Now, "Plane2");

            _uut.Seperation.SeperationEvent += Raise.EventWith(new object(), seperationEvent);

            var seperationAlert = new SeperationAlert(seperationEvent.Tag1, seperationEvent.Tag2, seperationEvent.Time);

            // Something is wrong
            // TODO:
            _uut.SeperationAlertRepository.Received(0).Add(seperationAlert);
        }
Exemple #3
0
        public void Output_PrintString_SeperationEventReceivesStringe()
        {
            output.LogHelper.Logger = eventLogger;
            output.LogHelper.Logger.Clear();

            var sepAlert = new SeperationAlert("Hello", "World", DateTime.Now);

            output.SeperationAlert(sepAlert);

            var msg = new char[51];

            using (var streamReader = new StreamReader($"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\\Events.txt"))
                streamReader.Read(msg, 0, 51);

            Assert.That(msg, Is.EqualTo("Flight: Hello collision warning with flight: World."));
            logHelper.Log(LoggerTarget.Event, String.Empty, true);
        }
Exemple #4
0
        private void CheckSeperation(object o, SeperationCheckerEventArgs args)
        {
            IEvent eventFound1 = SeperationAlertList.Find(i => i.Track.Tag == args.Track.Tag);
            IEvent eventFound2 = SeperationAlertList.Find(i => i.ConflictingTrack.Tag == args.Track.Tag);

            foreach (var updatedTrack in args.UpdatedTracks)
            {
                if (args.Track.Tag != updatedTrack.Tag)
                {
                    if (CheckForSeparation(args.Track, updatedTrack))
                    {
                        if (eventFound1 == null && eventFound2 == null)
                        {
                            //Event is getting a SeperationChecker object, this, and by this it can make an event to SeperationStop.
                            IEvent alertEvent = new Event(args.EventList, "SEPERATION ALERT", args.Track, DateTime.Now, updatedTrack, this);
                            SeperationAlertList.Add(alertEvent);
                            SeperationAlert?.Invoke(this, new SeperationAlertEventArgs(alertEvent));
                        }
                    }
                    else if (eventFound1 != null || eventFound2 != null)
                    {
                        if (eventFound1 != null)
                        {
                            if (updatedTrack.Tag == eventFound1.ConflictingTrack.Tag)
                            {
                                SeperationStop?.Invoke(this, new SeperationStopEventArgs(eventFound1));
                                SeperationAlertList.Remove(eventFound1);
                            }
                        }
                        else if (updatedTrack.Tag == eventFound2.Track.Tag)
                        {
                            SeperationStop?.Invoke(this, new SeperationStopEventArgs(eventFound2));
                            SeperationAlertList.Remove(eventFound2);
                        }
                    }
                }
            }
        }