예제 #1
0
        public void UnitTestTrafficProblem2_Scenario2()
        {
            //arrange
            Traffic traffic = new Traffic(new List <Weather>()
            {
                sunny, windy, rainy
            }, new List <Vehicle>()
            {
                superCar, tuktuk, bike
            }, new List <Orbit>()
            {
                orbit1, orbit2, orbit3, orbit4
            });
            Dictionary <Orbit, int> dict = new Dictionary <Orbit, int>();

            dict[orbit1]          = 5;
            dict[orbit2]          = 10;
            dict[orbit3]          = 20;
            dict[orbit4]          = 20;
            traffic.StartingPoint = silkDorb;
            hallitharam.Order     = 1;
            rkPuram.Order         = 2;
            traffic.SetCurrentState(windy, dict);
            traffic.MandatoryDestinationsInADay = new List <Destination> {
                hallitharam, rkPuram
            };
            CumulatedTrafficResult expected = new CumulatedTrafficResult(rkPuram, hallitharam, superCar, 234, orbit3, orbit4);

            //act
            List <CumulatedTrafficResult> lists  = traffic.GetAllCumulatedResults();
            CumulatedTrafficResult        actual = traffic.DeterMineWinner(lists);

            // assert
            Assert.AreEqual(actual.Vehicle, expected.Vehicle, string.Format("Expected Vehicle was {0} but is {1}", expected.Vehicle.Name, actual.Vehicle.Name));
            Assert.AreEqual(actual.Orbit1, expected.Orbit1, string.Format("Expected Orbit1 was {0} but is {1}", expected.Orbit1.Name, actual.Orbit1.Name));
            Assert.AreEqual(actual.Orbit2, expected.Orbit2, string.Format("Expected Orbit2 was {0} but is {1}", expected.Orbit2.Name, actual.Orbit2.Name));
            Assert.AreEqual(actual.WayPoint1, expected.WayPoint1, string.Format("Expected WayPoint1 was {0} but is {1}", expected.WayPoint1.Name, actual.WayPoint1.Name));
            Assert.AreEqual(actual.WayPoint2, expected.WayPoint2, string.Format("Expected WayPoint2 was {0} but is {1}", expected.WayPoint2.Name, actual.WayPoint2.Name));
            Assert.AreEqual(actual.TimeForTravel, expected.TimeForTravel, string.Format("Expected Time travel time was {0} but is {1}", expected.TimeForTravel, actual.TimeForTravel));
        }