public void When2BlocksAreMadeWithATotalOf8SquaresRotationsIncreaseBy8()
        {
            var rotationManager = default(RotationManager);

            "Given I have initialised a new RotationManager with 20 rotations"
                .Context(() => rotationManager = new RotationManager(new TestGameStartConditions{StartRotations = 20}));

            "When 2 blocks are found each with 4 squares"
                .Do(
                    () =>
                    rotationManager.BlocksFound(new[]
                        {
                            new Block(new[]
                                {
                                    new BoardCoordinate(4, 5),
                                    new BoardCoordinate(5, 5),
                                    new BoardCoordinate(4, 6),
                                    new BoardCoordinate(5, 6)
                                }),
                            new Block(new[]
                                {
                                    new BoardCoordinate(1, 5),
                                    new BoardCoordinate(2, 5),
                                    new BoardCoordinate(1, 6),
                                    new BoardCoordinate(2, 6)
                                })
                        }));

            "Then there shoud be 28 rotations left"
                .Observation(() =>
                    rotationManager
                         .GetRotationInformation()
                         .RotationsLeft
                         .ShouldEqual(28));
        }
        public void WhenABlockIsMadeWith4SquaresRotationsIncreaseBy4()
        {
            var rotationManager = default(RotationManager);

            "Given I have initialised a new RotationManager with 20 rotations"
                .Context(() => rotationManager = new RotationManager(new TestGameStartConditions{StartRotations = 20}));

            "When 1 block is found with 4 squares"
                .Do(
                    () =>
                    rotationManager.BlocksFound(new[]
                        {
                            new Block(new[]
                                {
                                    new BoardCoordinate(4, 5),
                                    new BoardCoordinate(5, 5),
                                    new BoardCoordinate(4, 6),
                                    new BoardCoordinate(5, 6)
                                })
                        }));

            "Then there shoud be 24"
                .Observation(() =>
                    rotationManager
                         .GetRotationInformation()
                         .RotationsLeft
                         .ShouldEqual(24));
        }
        public void RotationsStartOffAtTheConstStartingValue()
        {
            var rotationManager = default(RotationManager);
            var result = default(IRotationInformation);

            "Given I have initialised a new RotationManager with 20 rotations"
                .Context(() => rotationManager = new RotationManager(new TestGameStartConditions{StartRotations = 20}));

            "When I get the rotation information"
                .Do(() => result = rotationManager.GetRotationInformation());

            "Then there should be 20 rotations left"
                .Observation(() => result.RotationsLeft.ShouldEqual(20));
        }
        public void WhenARotationIsMadeTheAmountOfRotationsDecreasesByOne()
        {
            var rotationManager = default(RotationManager);

            "Given I have initialised a new RotationManager with 20 rotations"
                .Context(() => rotationManager = new RotationManager(new TestGameStartConditions{StartRotations = 20}));

            "When a rotation is made"
                .Do(() => rotationManager.RotationMade());

            "Then there shoud be 19"
                .Observation(() =>
                    rotationManager
                         .GetRotationInformation()
                         .RotationsLeft
                         .ShouldEqual(19));
        }