@Test
    public void removeCompletedRowNotAtBottom() {
        testee = new Board(30, 12) {
            @Override
            public void addNewShape(Shape shape) {
                super.addNewShape(new LShape());
            }
        };
        testee.addNewShapeAtRandom();
        rotateClockwiseMoveSidewaysThenToBottom(-4);
        rotateClockwiseMoveSidewaysThenToBottom(-1);
        rotateClockwiseMoveSidewaysThenToBottom(2);
        rotateClockwiseMoveSidewaysThenToBottom(5);
        assertNewMovingShapeHasNotMoved();
        for (Cell cell : testee.getBoardCells()) {
            if (cell.row == 29) assertTrue("bottom row not populated correctly: " + populatedCells(),
                    cell.column % 3 > 0 ? !cell.isPopulated() : cell.isPopulated());
            if (cell.row == 28) assertFalse("row 28 shouldn't be populated: " + populatedCells(), cell.isPopulated());
        }
    }