Ejemplo n.º 1
0
        public void ProcessCommands_WhenMowerHasMovedToSouth()
        {
            LawnDimension lawnDimension = new LawnDimension();

            lawnDimension.GridX = 10;
            lawnDimension.GridY = 10;
            List <MowerCommand> commands   = new List <MowerCommand>();
            MowerInput          mowerInput = new MowerInput();

            mowerInput.X         = 5;
            mowerInput.Y         = 5;
            mowerInput.Direction = CompassDirection.West;
            commands.Add(MowerCommand.Move);
            commands.Add(MowerCommand.Left);
            commands.Add(MowerCommand.Move);
            mowerInput.Commands = commands;

            var engine      = new Engine(lawnDimension);
            var X           = 4;
            var Y           = 4;
            var mowerOutput = engine.ProcessCommands(mowerInput);

            Assert.AreEqual(CompassDirection.South, mowerOutput.Direction);
            Assert.AreEqual(X, mowerOutput.X);
            Assert.AreEqual(Y, mowerOutput.Y);
        }
Ejemplo n.º 2
0
        public void gridDimension_WhenGridCoordinatesNotAInteger_MustThrowException()
        {
            string        gridsize      = "C T";
            LawnDimension lawnDimension = new LawnDimension();

            LawnDimension.gridDimension(gridsize);
        }
Ejemplo n.º 3
0
        public void gridDimension_WhenPassingValidGridYCoordinate()
        {
            string gridsize = "1 2";
            var    gridY    = 2;

            LawnDimension lawnDimension = new LawnDimension();

            lawnDimension = LawnDimension.gridDimension(gridsize);

            Assert.AreEqual(gridY, lawnDimension.GridY);
        }
Ejemplo n.º 4
0
        public void ValidatePosition_WhenMowerIsAtOutOfOuterBounds_MustThrowAnException()
        {
            LawnDimension lawnDimension = new LawnDimension();

            lawnDimension.GridX = 10;
            lawnDimension.GridY = 10;

            MowerInput mowerInput = new MowerInput();

            mowerInput.X = 11;
            mowerInput.Y = 11;
            var engine = new Engine(lawnDimension);

            engine.ValidatePosition(mowerInput);
        }
Ejemplo n.º 5
0
        public void ProcessCommands_WhenMowerIsOutOfBounds_MustThrowAnException()
        {
            LawnDimension lawnDimension = new LawnDimension();

            lawnDimension.GridX = 10;
            lawnDimension.GridY = 10;

            MowerInput mowerInput = new MowerInput();

            mowerInput.X = 100;
            mowerInput.Y = 0;

            var engine = new Engine(lawnDimension);

            engine.ProcessCommands(mowerInput);
        }
Ejemplo n.º 6
0
        public void ProcessCommands_WhenMowerHasCommandsAsNullValue_MustThrowException()
        {
            LawnDimension lawnDimension = new LawnDimension();

            lawnDimension.GridX = 10;
            lawnDimension.GridY = 10;
            List <MowerCommand> commands   = new List <MowerCommand>();
            MowerInput          mowerInput = new MowerInput();

            mowerInput.X         = 10;
            mowerInput.Y         = 5;
            mowerInput.Direction = CompassDirection.West;

            var engine = new Engine(lawnDimension);

            engine.ProcessCommands(mowerInput);
        }
Ejemplo n.º 7
0
        public void ProcessCommands_WhenMowerHasValidInputs()
        {
            LawnDimension lawnDimension = new LawnDimension();

            lawnDimension.GridX = 10;
            lawnDimension.GridY = 10;
            List <MowerCommand> commands   = new List <MowerCommand>();
            MowerInput          mowerInput = new MowerInput();

            mowerInput.X         = 5;
            mowerInput.Y         = 5;
            mowerInput.Direction = CompassDirection.East;
            commands.Add(MowerCommand.Move);
            commands.Add(MowerCommand.Left);
            commands.Add(MowerCommand.Right);
            mowerInput.Commands = commands;

            var engine = new Engine(lawnDimension);

            engine.ProcessCommands(mowerInput);
        }