예제 #1
0
        public void OnPostDataEventTest()
        {
            //Test to make sure the data processor recieved the data, converted the data to a coordinate,
            //created an entry if needed in the intruder list, and then added the coordinate to the
            //intruders data buffer.

            IDataProcessor dataProcessor = new DataProcessor();

            TransponderData data1 = new TransponderData("00:00", "1A23", 1, 0, 0, "1200");
            TransponderData data2 = new TransponderData("00:00", "1B35", 2, 0, 0, "1200");
            TransponderData data3 = new TransponderData("00:00", "9C23", 3, 0, 0, "1200");
            TransponderData data4 = new TransponderData("00:00", "1A23", 2, 0, 0, "1200");

            dataProcessor.OnPostDataEvent(data1);
            Assert.AreEqual(1, dataProcessor.Intruders [0].DataBuffer [0] [0]);

            dataProcessor.OnPostDataEvent(data2);
            Assert.AreEqual(2, dataProcessor.Intruders [1].DataBuffer [0] [0]);

            dataProcessor.OnPostDataEvent(data3);
            Assert.AreEqual(3, dataProcessor.Intruders [2].DataBuffer [0] [0]);

            //Added a second transponder data to the first intruder
            dataProcessor.OnPostDataEvent(data4);
            Assert.AreEqual(2, dataProcessor.Intruders [0].DataBuffer [1] [0]);
        }
예제 #2
0
            public void SetUp()
            {
                //arrange
                stubCalculator        = new StubCalculator();
                stubFilter            = Substitute.For <IFlightFilter>();
                stubCollisionDetector = Substitute.For <ICollisionDetector>();
                uut             = new FlightCollection(stubCalculator, stubFilter, stubCollisionDetector);
                receivedArgs    = null;
                setArgs         = new FlightArgs();
                setArgs.flights = new List <Flight>();

                TransponderData td = new TransponderData("aaa", 0, 0, 0, new DateTime());
                Flight          f  = new Flight(td);

                stubCollisionDetector.OnFlightsChanged(Arg.Any <FlightArgs>()).ReturnsForAnyArgs(setArgs.flights);


                numberOfFlightsChangedEvents = 0;

                uut.flightsChanged += (s, e) =>
                {
                    receivedArgs = e;
                    numberOfFlightsChangedEvents++;
                };
            }
예제 #3
0
        public void TransponderData()
        {
            TransponderData td = new TransponderData("14:00:00Z.000 T", "12345F", 100.5, -15.9, 6000, "GW400");

            //TODO:  need to figure out date stuff
            Assert.AreEqual("12345F", td.Icao);
            Assert.AreEqual(100.5, td.Latitude);
            Assert.AreEqual(-15.9, td.Longitude);
            Assert.AreEqual(6000, td.Altitude);
            Assert.AreEqual("GW400", td.SquawkCode);
        }
예제 #4
0
            public void CalculateSpeed_add2TransponderData_c(int x1, int y1, int x2, int y2, int time, double c)
            {
                //arrange
                TransponderData t1 = new TransponderData("TEST1", x1, y1, 100, new DateTime(2019, 10, 20, 10, 10, 0, 0));
                var             t2 = new TransponderData("TEST2", x2, y2, 100, new DateTime(2019, 10, 20, 10, 10, time, 0));

                //act
                double degree = uut.CalculateSpeed(t1, t2);

                //assert
                Assert.That(degree, Is.InRange(c, c + 0.01));
            }
예제 #5
0
            public void CalculateDirection_add2TransponderData_c(int x1, int y1, int x2, int y2, double c)
            {
                //arrange
                TransponderData t1 = new TransponderData("TEST", x1, y1, 100, new DateTime());
                TransponderData t2 = new TransponderData("TEST1", x2, y2, 100, new DateTime());

                //act
                double degree = uut.CalculateDirection(t1, t2);

                //assert
                Assert.That(degree, Is.InRange(c, c + 0.01));
            }
예제 #6
0
            public void Collision_CompareCollisionWithTagsAandBToCollisionWithTagCandD_expected(string tagA, string tagB, string tagC, string tagD, bool expected)
            {
                //arrange
                TransponderData dataA = new TransponderData(tagA, 0, 0, 0, DateTime.Now);
                TransponderData dataB = new TransponderData(tagB, 0, 0, 0, DateTime.Now);
                TransponderData dataC = new TransponderData(tagC, 0, 0, 0, DateTime.Now);
                TransponderData dataD = new TransponderData(tagD, 0, 0, 0, DateTime.Now);

                //act
                Collision collisionA = new Collision(new Flight(dataA), new Flight(dataB));
                Collision collisionB = new Collision(new Flight(dataC), new Flight(dataD));

                //assert
                bool compare = collisionA.Equals(collisionB);

                Assert.That(compare, Is.EqualTo(expected));
            }
예제 #7
0
            public void FlightCollection_ReceiveData_RaisesEvent()
            {
                //arrange
                List <TransponderData> testList = new List <TransponderData>();
                TransponderData        testData = new TransponderData("TEST", 0, 0, 0, DateTime.Now);

                testList.Add(testData);

                //act
                stubFilter.transponderFilterChanged += Raise.EventWith(this, new TransponderArgs()
                {
                    transponderData = testList
                });

                //assert
                Assert.That(numberOfFlightsChangedEvents, Is.EqualTo(1));
            }
예제 #8
0
            public void Collisions_addMultipleFlights_ListConstructorListNotEmpty()
            {
                //arrange
                TransponderData dummyData     = new TransponderData("ABC123", 5000, 5000, 5000, DateTime.Now);
                Flight          flightA       = new Flight(dummyData);
                Flight          flightB       = new Flight(dummyData);
                Collision       testCollision = new Collision(flightA, flightB);

                List <Collision> testList = new List <Collision>();

                testList.Add(testCollision);
                testList.Add(testCollision);
                testList.Add(testCollision);

                //act
                CollisionCollection uut = new CollisionCollection(testList);

                //assert
                Assert.That(uut.Collisions.Count, Is.GreaterThan(0));
            }
예제 #9
0
            public void transponderFilterChanged_raiseEvent_FilterFlightCalled(int x, int y, int altitude, int numberOfValidFlights)
            {
                //arrange
                List <TransponderData> testList = new List <TransponderData>();
                TransponderData        testData = new TransponderData("TTT", x, y, altitude, new DateTime(2017, 10, 14, 15, 20, 45, 333));

                testList.Add(testData);

                List <TransponderData> resultList = null;

                //act
                uut.transponderFilterChanged         += (o, e) => { resultList = e.transponderData; };
                fakeDataFormatter.transponderChanged += Raise.EventWith(this, new TransponderArgs()
                {
                    transponderData = testList
                });

                //assert
                Assert.That(resultList.Count, Is.EqualTo(numberOfValidFlights));
            }
예제 #10
0
            public void FlightCollection_ReceiveData_RaiseEventWithExpectedContent()
            {
                //arrange
                List <TransponderData> testList = new List <TransponderData>();
                TransponderData        testData = new TransponderData("TEST", 0, 0, 0, DateTime.Now);

                testList.Add(testData);
                Flight expectedFlight = new Flight(testData);

                setArgs.flights.Add(expectedFlight);

                //act
                stubFilter.transponderFilterChanged += Raise.EventWith(this, new TransponderArgs()
                {
                    transponderData = testList
                });


                //assert
                Assert.That(receivedArgs.flights[0].Equals(expectedFlight), Is.True);
            }
예제 #11
0
 public double CalculateDirection(TransponderData t1, TransponderData t2)
 {
     return(5);
 }
예제 #12
0
 public double CalculateSpeed(TransponderData t1, TransponderData t2)
 {
     return(5);
 }