public void TestValidToyRotateLeft()
        {
            // arrange
            var toyRobot = new ToyRobotPlacementService {
                Direction = ToyFacingDirectionEnum.West, Position = new ToyPosition(2, 1)
            };

            // act
            toyRobot.Rotate(ToyCommandEnum.Left);

            // assert
            Assert.AreEqual(ToyFacingDirectionEnum.North, toyRobot.Direction);
        }
        public void TestInValidToyRotateRight()
        {
            // arrange
            var toyRobot = new ToyRobotPlacementService {
                Direction = ToyFacingDirectionEnum.North, Position = new ToyPosition(3, 4)
            };

            // act
            toyRobot.Rotate(ToyCommandEnum.Right);

            // assert
            Assert.AreEqual(ToyFacingDirectionEnum.South, toyRobot.Direction);
        }
        public void TestValidToyMove()
        {
            // arrange
            var toyRobot = new ToyRobotPlacementService {
                Direction = ToyFacingDirectionEnum.East, Position = new ToyPosition(2, 2)
            };

            // act
            var nextPosition = toyRobot.GetNextAvailablePosition();

            // assert
            Assert.AreEqual(3, nextPosition.X_Coordinate);
            Assert.AreEqual(2, nextPosition.Y_Coordinate);
        }
        public void TestValidPositionDirection()
        {
            // arrange
            var toyPosition = new ToyPosition(3, 3);
            var toyRobot    = new ToyRobotPlacementService();

            // act
            toyRobot.PlaceToy(toyPosition, ToyFacingDirectionEnum.North);

            // assert
            Assert.AreEqual(3, toyRobot.Position.X_Coordinate);
            Assert.AreEqual(3, toyRobot.Position.Y_Coordinate);
            Assert.AreEqual(ToyFacingDirectionEnum.North, toyRobot.Direction);
        }