Пример #1
0
        public void RightTest_ShouldReturnChangedDirection_WhenCorrectComamndIsGiven(CardinalDirectionTypesEnum currentDirection, CardinalDirectionTypesEnum newDirection)
        {
            //Arrange
            movementProcessor.CurrentDirection = currentDirection;

            //Act
            var result = movementProcessor.Right();

            //Assert
            Assert.That(movementProcessor.CurrentDirection, Is.EqualTo(newDirection));
        }
Пример #2
0
        private bool IsMoveValid(CardinalDirectionTypesEnum movingDirection)
        {
            try
            {
                switch (movingDirection)
                {
                case CardinalDirectionTypesEnum.NORTH:
                    if (YPosition == 5)
                    {
                        return(false);
                    }
                    break;

                case CardinalDirectionTypesEnum.EAST:
                    if (XPosition == 5)
                    {
                        return(false);
                    }
                    break;

                case CardinalDirectionTypesEnum.SOUTH:
                    if (YPosition == 0)
                    {
                        return(false);
                    }
                    break;

                case CardinalDirectionTypesEnum.WEST:
                    if (XPosition == 0)
                    {
                        return(false);
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                StatusMessage = UNKNOWN_ERROR;
                return(false);
            }

            return(true);
        }
Пример #3
0
        private bool IsPlacementValid(int X, int Y, CardinalDirectionTypesEnum defaultDirection)
        {
            try
            {
                //Should be within the grid from 0-5
                if (X < 0 || Y < 0 || X > MaxX || Y > MaxY)
                {
                    StatusMessage = INVALID_POSITION;
                    return(false);
                }
            }
            catch (Exception ex)
            {
                StatusMessage = UNKNOWN_ERROR;
                return(false);
            }

            return(true);
        }
Пример #4
0
        public bool Place(int X, int Y, CardinalDirectionTypesEnum defaultDirection)
        {
            try
            {
                if (!IsPlacementValid(X, Y, defaultDirection))
                {
                    return(false);
                }

                XPosition        = X;
                YPosition        = Y;
                CurrentDirection = defaultDirection;
                StatusMessage    = COMMAND_SUCCESSFULL;
            }
            catch (Exception ex)
            {
                StatusMessage = UNKNOWN_ERROR;
                return(false);
            }
            return(true);
        }
Пример #5
0
        public void MoveTest_ShouldReturnFalseWhenPositionToInvalid(int postionX, int positionY, CardinalDirectionTypesEnum cuurrentDirection)
        {
            //Arrange
            movementProcessor.XPosition        = postionX;
            movementProcessor.YPosition        = positionY;
            movementProcessor.CurrentDirection = cuurrentDirection;

            //Act
            var result = movementProcessor.Move();

            //Assert
            Assert.That(result, Is.False);
        }
Пример #6
0
        public void ProcessMovementTest_ShouldReturnFalse_WhenValidArgumentsArepassed(int postionX, int positionY, CardinalDirectionTypesEnum directionType)
        {
            //Act
            var result = movementProcessor.Place(postionX, positionY, directionType);

            //Assert
            Assert.That(result, Is.False);
        }
Пример #7
0
        public void ReportTest_ShouldPrintOutput_WhenCorrectCommandIsGiven(int postionX, int positionY, CardinalDirectionTypesEnum directionType, string output)
        {
            //Arrange
            movementProcessor.XPosition        = postionX;
            movementProcessor.YPosition        = positionY;
            movementProcessor.CurrentDirection = directionType;

            //Act
            var result = movementProcessor.Report();

            //Assert
            Assert.That(result, Is.EqualTo(output));
        }