예제 #1
0
        public void VerifyDirectionsOnRight(DirectionEnum iniitialDirection, DirectionEnum expectedDirection)
        {
            var robot = new RobotProject.Robot();

            robot.PlaceAt(new RobotPosition {
                X = 0, Y = 0, Direction = iniitialDirection
            });
            robot.Right();

            var position = robot.Report();

            Assert.AreEqual(position.Direction, expectedDirection);
        }
예제 #2
0
        public void WhenRobotMoves_RobotIsAtCorrectPosition(DirectionEnum initalDirection, int x, int y, int newX, int newY)
        {
            var mdMock           = new Mock <IMessageDisplayer>();
            var messageDisplayer = mdMock.Object;
            var board            = new Board(5, 5);
            var robot            = new RobotProject.Robot();
            var game             = new RobotGame(board, robot, messageDisplayer);


            game.ProcessCommand($"PLACE {x} {y} {DirectionEnum.North.ToString().ToUpper()}");
            game.ProcessCommand($"MOVE");
            game.ProcessCommand($"REPORT");

            mdMock.Verify(m => m.DisplayMessage($"Output: {newX}, {newY}, { initalDirection.ToString()}"), Times.AtMostOnce());
        }
예제 #3
0
        public void VerifyDirectionsOnLeft(DirectionEnum iniitialDirection, DirectionEnum expectedDirection)
        {
            var robot = new RobotProject.Robot();

            robot.PlaceAt(new RobotPosition {
                X = 0, Y = 0, Direction = iniitialDirection
            });
            robot.Left();

            var position = robot.Report();

            Console.WriteLine($"{position.Direction} - {expectedDirection}");

            Assert.AreEqual(expectedDirection, position.Direction);
        }