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); }
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); }
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); } } } } }