public void Setup() { _airspace = new Airspace(new Coordinates() { X = 10000, Y = 10000 }, new Coordinates() { X = 90000, Y = 90000 }, 500, 10000); _velocityCalculatorFake = Substitute.For <IVelocityCalculator>(); _degreesCalculatorFake = Substitute.For <IDegreesCalculator>(); _trackLoggingFake = Substitute.For <ITrackLogging>(); _uut = new AirspaceMovementMonitoring(_airspace, _velocityCalculatorFake, _degreesCalculatorFake, _trackLoggingFake); _track = new Track() { Altitude = 1000, Position = new Coordinates() { X = 50000, Y = 50000 }, Tag = "XYZ123", TimeStamp = DateTime.Now, Velocity = 300 }; }
public void Setup() { _separation = Substitute.For <ISeparation>(); _transponderReceiver = Substitute.For <ITransponderReceiver>(); _airspace = new Airspace(new Coordinates() { X = 10000, Y = 10000 }, new Coordinates() { X = 90000, Y = 90000 }, 500, 20000); _trackLogging = Substitute.For <ITrackLogging>(); _degreesCalculator = new DegreesCalculatorWithoutDecimals(); _velocityCalculator = new VelocityCalculator(); _airspaceMovementMonitoring = new AirspaceMovementMonitoring(_airspace, _velocityCalculator, _degreesCalculator, _trackLogging); _airspaceMonitoring = new AirspaceMonitoring(_airspace, _airspaceMovementMonitoring); _transponderDataConversion = new TransponderDataConversion(_airspaceMonitoring); _driver = new TransponderDataReceiver(_transponderReceiver, _transponderDataConversion, _separation, _airspace); _track = new Track() { Altitude = 10000, Position = new Coordinates() { X = 50000, Y = 60000 }, Tag = "XYZ123", TimeStamp = new DateTime(2015, 10, 06, 21, 34, 56, 789) }; }
public void TrackEnteringAirspaceLogWritesNotification() { var log = Substitute.For <ILog>(); var monitor = new Monitor(); monitor.SetX(0, 5000); monitor.SetY(0, 5000); monitor.SetZ(500, 20000); var displayFormatter = Substitute.For <IDisplayFormatter>(); var airspace = new Airspace(monitor, displayFormatter, log); mapper.Attach(airspace); var testData = new List <string>(); testData.Add("ATR423;10;10;14000;20151006213456789"); simulator.OnDataReceieved(null, new RawTransponderDataEventArgs(testData)); log.Received(1).WriteNotification(Arg.Is <Data>(d => d.Altitude == 14000 && d.Tag == "ATR423" && d.Timestamp == "20151006213456789" && d.XCord == 10 && d.YCord == 10), false); displayFormatter.Received(1).ShowNotification(Arg.Is <Data>(d => d.Altitude == 14000 && d.Tag == "ATR423" && d.Timestamp == "20151006213456789" && d.XCord == 10 && d.YCord == 10), EventType.ENTERING); }
static void Main(string[] args) { // TEST AF SYSTEM UDEN SEPARATION EVENT FileLogger filelogger = new FileLogger(); ConsoleRenderer consolerender = new ConsoleRenderer(); Airspace airspace = new Airspace(10000, 90000, 10000, 90000, 500, 20000); var receiver = TransponderReceiverFactory.CreateTransponderDataReceiver(); var system = new ATM.TransponderReceiver(receiver); ATMclass atm = new ATMclass(filelogger, consolerender, airspace); system.Attach(atm); // TEST AF SYSTEM MED SEPARATION EVENTS //TrackData trackData1 = new TrackData("TEST1", 12000, 12000, 1000, "14322018", 10, 270); //TrackData trackData2 = new TrackData("TEST2", 12000, 12000, 1000, "14322018", 10, 270); //atm._currentTracks.Add(trackData1); //atm.CheckForSeperationEvents(trackData2); //atm.CheckForSeperationEvents(trackData2); // TEST AF SYSTEM MED LOGGER while (true) { Thread.Sleep(1000); } }
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 void Setup() { _fakeTransponderReceiver = Substitute.For <ITransponderReceiver>(); _fakeOutput = Substitute.For <IOutput>(); _fakeIFileLogger = Substitute.For <IFileLogger>(); _realAirspace = new Airspace(10000, 10000, 90000, 90000, 500, 20000) { South = 10000, West = 10000, North = 90000, East = 90000, LowerAltitude = 500, UpperAltitude = 20000 }; _realDecoder = new Decoder(_fakeTransponderReceiver); _realAmsController = new AMSController(_realDecoder, _realAirspace); _realAvoidanceSystem = new CollisionAvoidanceSystem(_realAmsController, 5000, 300); _realLogger = new Logger(_realAvoidanceSystem); _realConsoleOutput = new ConsoleOutput(_realAmsController, _realAvoidanceSystem, _fakeOutput); _realAvoidanceSystem.SeparationEvent += (o, args) => { ++_nSeperationEvent; }; }
public void SetUp() { _airspace = new Airspace(); _airspaceTrackChecker = new AirspaceTrackChecker(_airspace); _fakeTransponderDataReciever = Substitute.For <ITransponderDataReciever>(); _airspaceController = new AirTrafficMonitoring.AirspaceController.AirspaceController(_fakeTransponderDataReciever, _airspaceTrackChecker); }
public void Setup() { _airspace = new Airspace(new Coordinates() { X = 10000, Y = 10000 }, new Coordinates() { X = 90000, Y = 90000 }, 500, 20000); _velocityCalculator = new VelocityCalculator(); _degreesCalculator = new DegreesCalculatorWithoutDecimals(); _trackLogging = Substitute.For <ITrackLogging>(); _airspaceMovementMonitoring = new AirspaceMovementMonitoring(_airspace, _velocityCalculator, _degreesCalculator, _trackLogging); _driver = new AirspaceMonitoring(_airspace, _airspaceMovementMonitoring); _track1 = new Track() { Altitude = 12000, Position = new Coordinates() { X = 30000, Y = 40000 }, Tag = "ABC987", TimeStamp = new DateTime(2013, 02, 20, 12, 15, 50, 840), }; }
public void Setup() { //Set up S's fakeConsoleOutput = Substitute.For <IConsoleOutput>(); fakeFileOutput = Substitute.For <IFileOutput>(); //Set up X's airspace = new Airspace(10000, 90000, 10000, 90000, 500, 20000); trackData1 = new TrackData("ABC123", 30000, 30000, 3000, "20181224200050123", 100, 45, fakeConsoleOutput); trackData2 = new TrackData("DEF123", 30001, 30001, 3001, "20181224200050123", 100, 45, fakeConsoleOutput); trackData3 = new TrackData("ABC123", 30000, 30000, 3000, "20181224200050123", 100, 45, fakeConsoleOutput); trackData4 = new TrackData("DEF123", 50000, 50000, 5000, "20181224200050123", 100, 45, fakeConsoleOutput); //Fake transponderReceiver fakeTransponderReceiver = Substitute.For <ITransponderReceiver>(); //Create new ATM.TransponderReceiver for simulating inputs from the TransponderReceiver from the dll. transponderReceiver = new TransponderReceiver(fakeTransponderReceiver, fakeConsoleOutput); //Set up T's ATM = new ATMclass(fakeConsoleOutput, fakeFileOutput, airspace, fakeTransponderReceiver); //Attach ATM, so that updates to the transponderReceiver updates data in the ATM transponderReceiver.Attach(ATM); }
public void GivenANullPosition_WhenCalling_HasPositionWithinBoundaries_ReturnFalse() { var uut = new Airspace(90000, 10000, 20000, 500); Position position = null; Assert.That(uut.HasPositionWithinBoundaries(position), Is.False); }
public void Outputter_Setup() { _uutOutputter = new AirTrafficOutputter(); _airspace = FakeAirspaceGenerator.GetAirspace(100, 100, 100); _logFile = "../../Test.txt"; }
static void Main(string[] args) { var airspace = new Airspace(new Coordinates() { X = 10000, Y = 10000 }, new Coordinates() { X = 90000, Y = 90000 }, 500, 20000); var trackLogging = new TrackConsoleLogging(); var velocityCalculator = new VelocityCalculator(); var degreesCalculator = new DegreesCalculatorWithoutDecimals(); var airspaceMovementMonitoring = new AirspaceMovementMonitoring(airspace, velocityCalculator, degreesCalculator, trackLogging); var separationConsoleLogger = new SeparationConsoleLogger(); var separationXmlLogger = new SeparationXmlLogging(); var separation = new Separation(separationXmlLogger, separationConsoleLogger); var airspaceMonitoring = new AirspaceMonitoring(airspace, airspaceMovementMonitoring); var transponderDataConversion = new TransponderDataConversion(airspaceMonitoring); var transponderDataReceiver = new TransponderDataReceiver( TransponderReceiverFactory.CreateTransponderDataReceiver(), transponderDataConversion, separation, airspace); transponderDataReceiver.StartReceivingData(); Console.ReadLine(); }
public void TrackEnteringAirspaceRealLogWritesNotification() { var path = Directory.GetCurrentDirectory() + @"\test.txt"; string line; var log = new Log(path); var monitor = new Monitor(); monitor.SetX(0, 5000); monitor.SetY(0, 5000); monitor.SetZ(500, 20000); var displayFormatter = Substitute.For <IDisplayFormatter>(); var airspace = new Airspace(monitor, displayFormatter, log); mapper.Attach(airspace); var testData = new List <string>(); testData.Add("ATR423;10;10;14000;20151006213456789"); simulator.OnDataReceieved(null, new RawTransponderDataEventArgs(testData)); using (var file = new StreamReader(path, true)) { line = file.ReadToEnd(); } File.Create(path).Close(); //delete file after use Assert.That(line.Contains("ENTERING")); }
public void TrackInsideAirspaceLogDoesNotWrite() { var log = Substitute.For <ILog>(); var monitor = new Monitor(); monitor.SetX(0, 5000); monitor.SetY(0, 5000); monitor.SetZ(500, 20000); var displayFormatter = Substitute.For <IDisplayFormatter>(); var airspace = new Airspace(monitor, displayFormatter, log); mapper.Attach(airspace); var testData = new List <string>(); testData.Add("ATR423;10;10;14000;20151006213456789"); simulator.OnDataReceieved(null, new RawTransponderDataEventArgs(testData)); testData[0] = "ATR423;501;501;14000;20151006213456789"; simulator.OnDataReceieved(null, new RawTransponderDataEventArgs(testData)); // Only called once since still inside should not write to log log.Received(1).WriteNotification(Arg.Any <Data>(), false); displayFormatter.Received(1).ShowNotification(Arg.Any <Data>(), EventType.ENTERING); }
public void Setup() { //Arrange _output = Substitute.For <IOutput>(); _filePath = @"...\...\...\"; FileStream output = new FileStream(_filePath + "SeperationLogFile.txt", FileMode.Create, FileAccess.Write); StreamWriter fileWriter = new StreamWriter(output); fileWriter.Write(""); fileWriter.Close(); _transponderReceiver = Substitute.For <ITransponderReceiver>(); _trackTransmitter = new TrackTransmitter(); _dateTimeBuilder = new DateTimeBuilder(); _trackObjectifier = new TrackObjectifier(_dateTimeBuilder); _trackReciever = new TrackReciever(_transponderReceiver, _trackObjectifier, _trackTransmitter); _output = Substitute.For <IOutput>(); _tracksManager = new TracksManager(); _courseCalculator = new CourseCalculator(); _velocityCalculator = new VelocityCalculator(); _seperationEventChecker = new SeperationEventChecker(); _airspace = new Airspace() { MaxAltitude = 20000, MinAltitude = 500, Northeast = new Corner() { X = 90000, Y = 90000 }, Southwest = new Corner() { X = 10000, Y = 10000 } }; _airspaceChecker = new AirspaceChecker(_airspace); _tagsManager = new TagsManager(_airspaceChecker); _trackWarehouse = new TrackWarehouse(_tagsManager, _courseCalculator, _velocityCalculator, _tracksManager, _seperationEventChecker); _atmController = new AtmController(_trackTransmitter, _output, _trackWarehouse); _uut = new SeperationEventLogger(_output, _seperationEventChecker); _list = new List <string> { "ATR423;11000;11000;14000;20151006213456000", "ATR424;11000;11000;14000;20151006213456000" }; _trackTransmitter.TrackReady += (o, args) => { _recievedTracks = args.TrackList; }; //Act _transponderReceiver.TransponderDataReady += Raise.EventWith(new RawTransponderDataEventArgs(_list)); }
public TransponderDataReceiver(ITransponderReceiver transponderReceiver, ITransponderDataConversion transponderDataConversion, ISeparation separation, Airspace airspace) { _transponderReceiver = transponderReceiver; _transponderDataConversion = transponderDataConversion; _separation = separation; _airspace = airspace; }
[TestCase(15, 15, 15, false)] // Outside airspace public void Points_check_in_AirspaceWithOneShape(int x, int y, int z, bool result) { Airspace uut = new Airspace(); uut.AddShape(new Cuboid(0, 0, 0, 10, 10, 10)); Assert.AreEqual(result, uut.IsWithinArea(x, y, z)); }
public void Init() { _log = Substitute.For <ILog>(); _displayFormatter = Substitute.For <IDisplayFormatter>(); _monitor = Substitute.For <IMonitor>(); _airspace = new Airspace(_monitor, _displayFormatter, _log); }
public void Setup() { _fakeTransponderReceiverClient = Substitute.For <ITransponderReceiverClient>(); _uut = new Airspace(new TrackCalculator()); _trackData = new List <Track>(); _fakeTransponderReceiverClient.DataReadyEvent += _uut.HandleDataReadyEvent; }
public void AirspaceConstructor_UpperBoundInvalidParamters_ThrowsException(int x, int y, int alt) { //Arrange var upperBound = new Point(x, y, alt); //Act & Assert Assert.Throws <ArgumentException>(() => _uut = new Airspace(null, upperBound)); }
public void Setup() { _separationConsoleLogger = Substitute.For <ISeparationConsoleLogger>(); _separationXmlLogging = Substitute.For <ISeparationXmlLogging>(); _transponderReceiver = Substitute.For <ITransponderReceiver>(); _airspace = new Airspace(new Coordinates() { X = 10000, Y = 10000 }, new Coordinates() { X = 90000, Y = 90000 }, 500, 20000); _trackLogging = Substitute.For <ITrackLogging>(); _degreesCalculator = new DegreesCalculatorWithoutDecimals(); _velocityCalculator = new VelocityCalculator(); _airspaceMovementMonitoring = new AirspaceMovementMonitoring(_airspace, _velocityCalculator, _degreesCalculator, _trackLogging); _airspaceMonitoring = new AirspaceMonitoring(_airspace, _airspaceMovementMonitoring); _transponderDataConversion = new TransponderDataConversion(_airspaceMonitoring); _separation = new Separation(_separationXmlLogging, _separationConsoleLogger); _driver = new TransponderDataReceiver(_transponderReceiver, _transponderDataConversion, _separation, _airspace); _planesInAirspace = new Dictionary <string, List <Track> >(); _track1 = new Track() { Altitude = 10000, Position = new Coordinates() { X = 12000, Y = 12000 }, Tag = "ABC987", TimeStamp = new DateTime(2013, 02, 20, 12, 15, 50, 840), }; _track3 = new Track() { Altitude = 10000, Position = new Coordinates() { X = 12000, Y = 12000 }, Tag = "ABC986", TimeStamp = new DateTime(2013, 02, 20, 12, 15, 50, 840), }; _tracks1 = new List <Track>(); _tracks1.Add(_track1); _airspace.PlanesInAirspace.Add("ABC987", _tracks1); _tracks2 = new List <Track>(); _tracks2.Add(_track3); _airspace.PlanesInAirspace.Add("ABC986", _tracks2); }
public void Setup() { // Makings Subsitutes should be with interfaces :) _fakeTracker = Substitute.For <ITrack>(); // This should have been a fake, but no interface :( _Airspace = new Airspace { X = 0, Y = 0, Z = 500, width = 80000, depth = 80000, height = 20000 }; TracksInAirspaceEvent = delegate { }; // This should be the only real instance :) Uut = new AirspaceMonitor(_Airspace, _fakeTracker); _comparisonPlane = new Track() { TagId = "HEN777", Altitude = 1000, X = 1000, Y = 1000 }; var results = new List <List <Track> >(); // Inserting data in the List<Track> // with Injected Tracks - "{ }" // instead of making a new List<Track> and adding later :) _fakeTracksInAirspace = new List <Track>() { new Track { TagId = "HEN123", Altitude = 1000, X = 1000, Y = 1000 }, // Comma separtion is needed ;) new Track { TagId = "HEN321", Altitude = 1000, X = 1000, Y = 1000 }, _comparisonPlane // this is added for comparisions }; // Adding Tracks to the Unit under test NewTrackArgs newTrack = new NewTrackArgs(); newTrack.Tracks = _fakeTracksInAirspace; Uut.OnTrackRecieved(this, newTrack); }
public void init() { _uut = Substitute.For <Airspace>(); _uut.Position = new Coords(500, 500, 500); _uut.Width = 30000; _uut.Length = 20000; _uut.Height = 10000; }
public void SetUp() { fakeTransponderReceiver = Substitute.For <ITransponderReceiver>(); calculateCourse = new CalculateCourse(); calculateVelocity = new CalculateVelocity(); renedition = new Renedition(); checkPlanes = new CheckPlanes(calculateVelocity, calculateCourse, renedition); airspace = new Airspace(checkPlanes); uut = new HandleRTD(fakeTransponderReceiver, airspace); }
public void Constructor_WhenCalled_SouthWestYIsAlwaysEqualToTheSuppliedCoordinate(int southWestX, int southWestY) { var coordinate = Substitute.For <ITwoDimensionalCoordinate>(); coordinate.X.Returns(southWestX); coordinate.Y.Returns(southWestY); var airspace = new Airspace(coordinate); Assert.That(airspace.SouthWestCorner.Y, Is.EqualTo(coordinate.Y)); }
public Decoder() { _airspace = new Airspace(90000, 10000, 90000, 10000, 20000, 500); Writer = new LogWriter(); CollisionDetector = new CollisionDetector(); Tracks = new List <ITrack>(); Track = new Track(); TransponderReceiver = TransponderReceiverFactory.CreateTransponderDataReceiver(); TransponderReceiver.TransponderDataReady += DecodeTransData; }
public void Constructor_WhenCalled_UpperAltitudeBoundaryAlwaysEquals20000(int southWestX, int southWestY) { var coordinate = Substitute.For <ITwoDimensionalCoordinate>(); coordinate.X.Returns(southWestX); coordinate.Y.Returns(southWestY); var airspace = new Airspace(coordinate); Assert.That(airspace.UpperAltitudeBoundary, Is.EqualTo(UpperAltitude)); }
public void Constructor_WhenCalled_NorthEastXIsAlways80000BiggerThanTheSuppliedCoordinate(int southWestX, int southWestY) { var coordinate = Substitute.For <ITwoDimensionalCoordinate>(); coordinate.X.Returns(southWestX); coordinate.Y.Returns(southWestY); var airspace = new Airspace(coordinate); Assert.That(airspace.NorthEastCorner.X, Is.EqualTo(coordinate.X + AirspaceSize)); }
public void Decoder_AirspaceInitiated() { Airspace airspace = new Airspace(90000, 10000, 90000, 10000, 20000, 500); Assert.That(decoder._airspace.AltitudeLower, Is.EqualTo(airspace.AltitudeLower)); Assert.That(decoder._airspace.AltitudeUpper, Is.EqualTo(airspace.AltitudeUpper)); Assert.That(decoder._airspace.XUpper, Is.EqualTo(airspace.XUpper)); Assert.That(decoder._airspace.XLower, Is.EqualTo(airspace.XLower)); Assert.That(decoder._airspace.YUpper, Is.EqualTo(airspace.YUpper)); Assert.That(decoder._airspace.YLower, Is.EqualTo(airspace.YLower)); }
public AirTrafficMonitor(IValidateEvent validator, IConditionDetector conditionDetector, IOutputter outputter, IUpdater <List <ITrack> > updater) { _validator = validator; _validator.ValidationCompleteEventHandler += Update; _conditionDetector = conditionDetector; _conditionDetector.ConditionsHandler += ConditionDetector_ConditionsHandler; _outputter = outputter; _updater = updater; Airspace = new Airspace(); Conditions = new List <ConditionEventArgs>(); }