/// <summary> /// Заверешние полёта. Объект вернулся в исходной положение. Происходит отписка от событий и удаления. /// </summary> private void FinishFly() { AirTrafficController.RemovePlaneInList(this); EventAfterFinishFly?.Invoke(); EventAfterFinishFly.RemoveAllListeners(); _pool.Return(); }
static void Main(string[] args) { var positionCalculator = new PositionCalculator(); // Using the real transponder data receiver var receiver = TransponderReceiverFactory.CreateTransponderDataReceiver(); // Dependency injection with the real TDR var formatter = new Formatter(receiver); var speed = new SpeedCalculator(); var position = new PositionCalculator(); var clear = new ClearConsole(); var render = new RenderData(clear); var writer = new LogWriter(); var log = new Log(writer); var seperation = new SeperationCalculator(log); var system = new AirTrafficController(formatter, seperation, render, position, speed, clear); // Let the real TDR execute in the background while (true) { Thread.Sleep(1000); } }
public void Equals_WhenTwoSameInstancesAreCreated_ThenInstancesAreEqual() { // arrange AirTrafficControllerBuilder builder = AirTrafficControllerBuilder.Create() .WithAdministrativeVersion(AdministrativeRating.Observer) .WithATIS("atis") .WithATISTime(null) .WithCallsign("LZKZ_CTR") .WithClientRating(1) .WithConnectionTime(DateTime.Now) .WithFacilityType(FacilityType.Observer) .WithFrequency("123.33") .WithLocation(null) .WithName("name") .WithProtocol("protocol") .WithRating(ATCRating.SeniorController) .WithServer("server") .WithSoftwareName("IVAC") .WithSoftwareVersion("1.2.3") .WithVID("123456") .WithVisualRange(200); AirTrafficController instance0 = builder.Build(); AirTrafficController instance1 = builder.Build(); // act bool result = Equals(instance0, instance1); // assert Assert.That(instance0, Is.Not.Null); Assert.That(instance1, Is.Not.Null); Assert.That(ReferenceEquals(instance0, instance1), Is.Not.True); Assert.That(result, Is.True); }
public void SetUp() { _conditionViewer = Substitute.For <IConditionViewer>(); _seperationChecker = Substitute.For <ISeperationChecker>(); _dataCalculator = Substitute.For <IDataCalculator>(); _uut = new AirTrafficController(_dataCalculator); }
private static void Main() { Console.CursorVisible = false; var tos = new Tos(TransponderReceiverFactory.CreateTransponderDataReceiver()); var atm = new AirTrafficController(new CollisionDetector(), new TrackStorage(), new AirSpace(), new ConsoleView(new ConsoleOutput()), new FileLogger()); tos.Attach(atm); Console.ReadLine(); }
static void Main(string[] args) { var receiver = TransponderReceiverFactory.CreateTransponderDataReceiver(); var trackReciever = new TrackReciever(receiver); var dataCalculator = new DataCalculator(trackReciever); var controller = new AirTrafficController(dataCalculator); while (true) { } }
public void SetUp() { _collisionDetector = Substitute.For <ICollisionDetector>(); _airSpace = Substitute.For <IAirSpace>(); _log = Substitute.For <ILog>(); _render = Substitute.For <IRender>(); _trackStorage = Substitute.For <ITrackStorage>(); _tos = Substitute.For <Tos>(Substitute.For <ITransponderReceiver>()); validTrack1 = new Track { Tag = "AAA111", PositionX = 12000, PositionY = 80000, Altitude = 700 }; validTrack2 = new Track { Tag = "BBB222", PositionX = 80000, PositionY = 12000, Altitude = 1700 }; _uut = new AirTrafficController(_collisionDetector, _trackStorage, _airSpace, _render, _log); }
/// <summary> /// Проверить вызов события запуска самолёта /// </summary> private void CheckLaunchPlan() { if (Input.GetButtonDown("LaunchPlane")) { if (Time.time - _lastTimeLaunchPlane > _cooldownLaunchPlane && _currentPlaneInAir < _maxPlaneInAir) { _lastTimeLaunchPlane = Time.time; PoolObject plane = PoolManager.Get(_indexPlaneInPoll); plane.transform.position = transform.position; plane.transform.rotation = transform.rotation; PlaneMovementLogical planeMovementLogical = plane.GetComponent <PlaneMovementLogical>(); AirTrafficController.AddPlaneInList(planeMovementLogical); planeMovementLogical.EventAfterFinishFly.AddListener(PlaneFinishFly); _currentPlaneInAir++; planeMovementLogical.Init(transform); } } }
static void Main(string[] args) { // Mediator patterns defines an object that encapsulates how a set of objects interact between themselves. // Communication between objects is encapsulated in a mediator object. Objects do not communicate directly with each other, but through the mediator. var airbusGaruda = new AirbusA320("Garuda Indonesia", 10000); var airbusThai = new AirbusA320("Thai Airways", 25000); var boeingSingapore = new Boeing777("Singapore Airlines", 35000); var trafficController = new AirTrafficController(); trafficController.Register(airbusGaruda); trafficController.Register(airbusThai); trafficController.Register(boeingSingapore); airbusThai.SendMessage(trafficController, "Sawasdee krab"); airbusGaruda.SendMessage(trafficController, "Apa kabar"); Console.WriteLine("======================================================"); Console.WriteLine("Note: Singapore Airlines does not sending any messages"); Console.WriteLine("======================================================"); Console.ReadKey(); }
public void GetHashCode_WhenInstanceIsDeseraializeAndSerializedBack_ThenInstancesHashCodesAreEqual() { // arrange AirTrafficControllerBuilder builder = AirTrafficControllerBuilder.Create() .WithAdministrativeVersion(AdministrativeRating.Observer) .WithATIS("atis") .WithATISTime(null) .WithCallsign("LZKZ_CTR") .WithClientRating(1) .WithConnectionTime(DateTime.Now) .WithFacilityType(FacilityType.Observer) .WithFrequency("123.33") .WithLocation(null) .WithName("name") .WithProtocol("protocol") .WithRating(ATCRating.SeniorController) .WithServer("server") .WithSoftwareName("IVAC") .WithSoftwareVersion("1.2.3") .WithVID("123456") .WithVisualRange(200); AirTrafficController instance0 = builder.Build(); string serializedText = instance0.Serialize(); AirTrafficController instance1 = serializedText.Deserialize <AirTrafficController>(); // act int result0 = instance0.GetHashCode(); int result1 = instance1.GetHashCode(); // assert Assert.That(instance0, Is.Not.Null); Assert.That(instance1, Is.Not.Null); Assert.That(ReferenceEquals(instance0, instance1), Is.Not.True); Assert.That(Equals(result0, result1), Is.True); }
public void SetUp() { _uut = new AirTrafficController(); }
public void SetUp() { // The faked IOutpus must return a screen size to ConsoleViews ctor. _output = Substitute.For <IOutput>(); _output.When(x => x.GetLargetsScreenSize(out int w, out int h)).Do(x => { x[0] = 80; x[1] = 40; }); _collisionDetector = new CollisionDetector(); _trackStorage = new TrackStorage(); _airSpace = new AirSpace(); _log = new FileLogger(_logPath); _consoleView = new ConsoleView(_output); _atm = new AirTrafficController(_collisionDetector, _trackStorage, _airSpace, _consoleView, _log); // Create Tos with fake TransponderReceiver, attach ATM to subscribe on Tos. // _tos.Notify(_tos) will call _atm.Update(). Notify will start the system. _tos = new Tos(Substitute.For <ITransponderReceiver>()); _tos.Attach(_atm); // Init some standard List with valid tracks, used to give to Tos before Notify() call. _tracks1 = new List <ITrack> { new Track { Tag = "AAA111", PositionX = 15000, PositionY = 30000, Altitude = 850, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "BBB222", PositionX = 15000, PositionY = 30000, Altitude = 850, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "CCC333", PositionX = 15000, PositionY = 30000, Altitude = 850, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "DDD444", PositionX = 15000, PositionY = 30000, Altitude = 850, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "EEE555", PositionX = 15000, PositionY = 30000, Altitude = 850, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, }; _tracks2 = new List <ITrack> { new Track { Tag = "AAA111", PositionX = 15000, PositionY = 80000, Altitude = 850, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "BBB222", PositionX = 25000, PositionY = 36000, Altitude = 850, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "CCC333", PositionX = 10000, PositionY = 27000, Altitude = 1900, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "DDD444", PositionX = 45000, PositionY = 66000, Altitude = 833, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, new Track { Tag = "EEE555", PositionX = 15000, PositionY = 28000, Altitude = 2500, Course = 0, Timestamp = DateTime.Now, Velocity = 0 }, }; }