public void Accepts_Receiver_argument()
            {
                var mockRover = new Mock <IRover>();
                var landingSurfaceSizeCommand = new RoverExploreCommand(null);

                Assert.DoesNotThrow(() =>
                                    landingSurfaceSizeCommand.SetReceiver(mockRover.Object));
            }
            public void Given_list_of_movements_exposes_as_public_property()
            {
                var expectedMovements = new List <Movement> {
                    Movement.Left, Movement.Right
                };

                var roverExploreCommand = new RoverExploreCommand(expectedMovements);

                Assert.AreEqual(expectedMovements, roverExploreCommand.Movements);
            }
            public void Invokes_Rover_Move()
            {
                var expectedMovements = new List <Movement> {
                    Movement.Left, Movement.Right
                };
                var mockRover           = new Mock <IRover>();
                var roverExploreCommand = new RoverExploreCommand(expectedMovements);

                roverExploreCommand.SetReceiver(mockRover.Object);

                roverExploreCommand.Execute();

                mockRover.Verify(x =>
                                 x.Move(expectedMovements), Times.Once());
            }
            public void Returns_RoverExploreCommand_type()
            {
                var roverExploreCommand = new RoverExploreCommand(null);

                Assert.AreEqual(roverExploreCommand.GetCommandType(), CommandType.RoverExploreCommand);
            }