public void Move(Orientation testOrientation, int expectedXPosition, int expectedYPosition)
        {
            const int testX        = 2;
            const int testY        = 2;
            var       testPosition = new Position(testX, testY, testOrientation);

            const int testGridSizeX      = 3;
            const int testGridSizeY      = 3;
            var       testTrackingModule = new TrackingModule
            {
                GridMaximumX = testGridSizeX,
                GridMaximumY = testGridSizeY,
                Position     = testPosition
            };

            var spyCommand  = new SpyCommand();
            var moveCommand = new MoveForwardCommand(spyCommand);

            moveCommand.Execute(testTrackingModule);

            var actualTrackingModule = spyCommand.TrackingModule;

            actualTrackingModule.Position.Y.Should().Be(expectedYPosition);
            actualTrackingModule.Position.X.Should().Be(expectedXPosition);
        }
        public void RotateToNextOrientationOnLCommand(Orientation testOrientation, Orientation expectedOrientation)
        {
            const int dummyX             = 1;
            const int dummyY             = 1;
            var       testPosition       = new Position(dummyX, dummyY, testOrientation);
            const int testGridSizeX      = 3;
            const int testGridSizeY      = 3;
            var       testTrackingModule = new TrackingModule
            {
                GridMaximumX = testGridSizeX,
                GridMaximumY = testGridSizeY,
                Position     = testPosition
            };

            var spyCommand    = new SpyCommand();
            var rotateCommand = new RotateRightCommand(spyCommand);

            rotateCommand.Execute(testTrackingModule);

            var actualTrackingModule = spyCommand.TrackingModule;

            actualTrackingModule.Position.Orientation.Should().Be(expectedOrientation);
        }