Example #1
0
        public void ShouldReportPositionAndFacingDirection([Range(0, TableSize)] int xPosition,
                                                           [Range(0, TableSize)] int yPosition,
                                                           SouthFacingDirection facingDirection)
        {
            _robot.Place(xPosition, yPosition, facingDirection);

            _robot.Report();

            _messageWriterMock.Received(1).Write($"Current position: ({xPosition}, {yPosition}), Facing: {facingDirection.ToString()}");
        }
Example #2
0
        public void ShouldBePlacedInTheRightPosition([Range(0, TableSize)] int xPosition,
                                                     [Range(0, TableSize)] int yPosition,
                                                     SouthFacingDirection facingDirection)
        {
            _robot.Place(xPosition, yPosition, facingDirection);

            _robot.Position.Value.X.Should().Be(xPosition);
            _robot.Position.Value.Y.Should().Be(yPosition);
            _robot.FacingDirection.Should().Be(facingDirection);
        }
Example #3
0
        public void ShouldBeAbleToBePlacedMultipleTimes([Range(0, TableSize)] int xPosition,
                                                        [Range(0, TableSize)] int yPosition,
                                                        SouthFacingDirection facingDirection)
        {
            _robot.Place(1, 4, new NorthFacingDirection());
            _robot.Place(0, 1, new WestFacingDirection());
            _robot.Place(xPosition, yPosition, facingDirection);

            _robot.Position.Value.X.Should().Be(xPosition);
            _robot.Position.Value.Y.Should().Be(yPosition);
            _robot.FacingDirection.Should().Be(facingDirection);
        }