示例#1
0
        public void EastCommand_GetNewPoint_ShouldReturn_CorrectData_ForValidPosition()
        {
            var command = new EastCommand()
            {
                Limit = 10
            };

            var data = command.GetNewPoint(9, 5);

            Assert.NotNull(data);
            Assert.Equal(10, data.X);
            Assert.Equal(5, data.Y);
        }
示例#2
0
        public void ShouldNotExecuteOutsideLimitsWhenOnPositivePosition()
        {
            var       startingPosition = new Position(2, 0);
            const int steps            = 5;
            const int positionLimit    = 4;

            var command = new EastCommand(steps);

            var(lastPosition, positions) = command.Execute(startingPosition, positionLimit);

            var expectedLastPosition = new Position(4, 0);
            var expectedPositions    = new List <Position>
            {
                new Position(2, 0),
                new Position(3, 0),
                new Position(4, 0)
            };

            lastPosition.Should().Be(expectedLastPosition);
            positions.Should().BeEquivalentTo(expectedPositions);
        }
示例#3
0
        public void ShouldExecute()
        {
            var       startingPosition = new Position(2, -3);
            const int steps            = 3;
            const int positionLimit    = 10;

            var command = new EastCommand(steps);

            var(lastPosition, positions) = command.Execute(startingPosition, positionLimit);

            var expectedLastPosition = new Position(5, -3);
            var expectedPositions    = new List <Position>
            {
                new Position(2, -3),
                new Position(3, -3),
                new Position(4, -3),
                new Position(5, -3)
            };

            lastPosition.Should().Be(expectedLastPosition);
            positions.Should().BeEquivalentTo(expectedPositions);
        }