@Test
    public void testBucketProgress() {
        MockComponents mc = createDefaultMock("id.user==1234");

        mc.visitorSession.start();
        mc.executor.expectAndProcessTasks(1);

        assertEquals("CreateVisitorMessage(buckets=[\n" +
                "BucketId(0x80000000000004d2)\n" +
                "BucketId(0x0000000000000000)\n" +
                "]\n" +
                "selection='id.user==1234'\n)",
                replyToCreateVisitor(mc.sender, new BucketId(33, 1234 | (1L << 32))));

        // Reply task
        mc.executor.expectAndProcessTasks(1);
        assertFalse(mc.visitorSession.isDone());
        // Should get new CreateVisitor task for sub-bucket continuation
        mc.executor.expectAndProcessTasks(1);
        CreateVisitorMessage msg2 = (CreateVisitorMessage)mc.sender.getAndRemoveMessage(0);
        assertEquals("CreateVisitorMessage(buckets=[\n" +
                "BucketId(0x80000000000004d2)\n" +
                "BucketId(0x84000001000004d2)\n" +
                "]\n" +
                "selection='id.user==1234'\n)",
                createVisitorToString(msg2));

        assertEquals(mc.controlHandler.getProgress(), mc.visitorSession.getProgress());
    }
Test that using an id.user=foo selection only tries to visit a single
superbucket for that user.
documentapi/src/test/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSessionTestCase.java