public void Do_UnknownState_CommandIgnored()
        {
            var robotSimulator = new ToyRobotSimulator(mockRobot.Object, mockParser.Object, mockTabletop.Object);

            mockParser.Setup(m => m.ParseCommand("REPORT")).Returns(new ToyCommand {
                Command = Command.Report
            });
            var result = robotSimulator.Do("REPORT");

            Assert.False(result);
        }
        public void Do_PlaceCommand_InvalidPlace_CommandIgnored()
        {
            var robotSimulator = new ToyRobotSimulator(mockRobot.Object, mockParser.Object, mockTabletop.Object);

            mockParser.Setup(m => m.ParseCommand("PLACE 7,5,N")).Returns(new Domain.ToyCommand {
                Command = Domain.Command.Place, CommandParameter = new PlaceParameter {
                    Direction = Direction.North, X = 7, Y = 7
                }
            });
            mockTabletop.Setup(m => m.IsValidPosition(7, 5)).Returns(false);
            var result = robotSimulator.Do("PLACE 7,5,N");

            Assert.False(result);
        }
        public void Do_MoveCommand_InvalidPlace_CommandIgnored()
        {
            var robotSimulator = new ToyRobotSimulator(mockRobot.Object, mockParser.Object, mockTabletop.Object);

            mockParser.Setup(m => m.ParseCommand("MOVE")).Returns(new ToyCommand {
                Command = Command.Move
            });
            mockRobot.SetupGet(g => g.Position).Returns(new Position {
                X = 5, Y = 5
            });
            mockRobot.Setup(m => m.CalculateNextPosition()).Returns(new Position {
                X = 5, Y = 6
            });
            mockTabletop.Setup(m => m.IsValidPosition(5, 6)).Returns(false);
            var result = robotSimulator.Do("MOVE");

            Assert.False(result);
        }