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