public void Test_Rover_Controller_Start_Exploration_Calls_Navigation_Service_For_Each_Rover_And_Sets_View_Data_Model()
        {
            RoverController controller = new RoverController(m_navigationService.Object);
            List<RoverModel> rovers = new List<RoverModel>();
            RoverModel rover1 = new RoverModel
                                    {
                                        Movements = "M",
                                        Rover = new Rover(new Position() {Direction = Direction.North, X = 0, Y = 0})
                                    };

            RoverModel rover2 = new RoverModel
                                    {
                                        Movements = "M",
                                        Rover = new Rover(new Position() {Direction = Direction.North, X = 1, Y = 0})
                                    };

            rovers.Add(rover1);
            rovers.Add(rover2);

            controller.TempData["Rovers"] = rovers;
            controller.TempData["Plateau"] = new Plateau(1, 2);
            controller.StartExploration();
            m_navigationService.Verify( n => n.ExploreTerrain(It.IsAny<Plateau>(), It.IsAny<Rover>(), It.IsAny<List<Command>>()),Times.Exactly(2));
            Assert.IsNotNull(controller.ViewData.Model);
        }
 public void Test_Rover_Controller_Add_Plateau_Persisted()
 {
     RoverController controller = new RoverController(m_navigationService.Object);
     controller.SubmitPlateau(1, 2);
     Assert.IsNotNull(controller.TempData["Plateau"]);
     Plateau plateau = (Plateau)controller.TempData["Plateau"];
     Assert.IsTrue(plateau.Length == 2);
     Assert.IsTrue(plateau.Height == 1);
 }
        public void Test_Rover_Controller_Add_Rover_Persisted()
        {
            RoverController controller = new RoverController(m_navigationService.Object);

            controller.AddRover(1, 2, "N", "M");

            Assert.IsNotNull(controller.TempData["Rovers"]);
            List<RoverModel> list = (List<RoverModel>) controller.TempData["Rovers"];

            Assert.IsTrue(list.Count == 1);
            RoverModel model = list[0];
            Assert.IsTrue(model.Movements.ToCharArray().First() == 'M');
            Assert.IsTrue(model.Rover.GetCurrentPosition().Direction == Direction.North);
            Assert.IsTrue(model.Rover.GetCurrentPosition().X == 1);
            Assert.IsTrue(model.Rover.GetCurrentPosition().Y == 2);
        }