@Test
  public void testPoll3() throws InterruptedException {
    // 插入1条消息
    String myType = TYPE + "_";
    SwallowMessage myTypeMsg = createMessage();
    myTypeMsg.setType(myType);
    messageDAO.saveMessage(TOPIC_NAME, myTypeMsg);

    Set<String> messageTypeSet = new HashSet<String>();
    messageTypeSet.add(myType);
    ConsumerInfo consumerInfo =
        new ConsumerInfo(
            "consumerId", Destination.topic(TOPIC_NAME), ConsumerType.DURABLE_AT_LEAST_ONCE);
    BlockingQueue<SwallowMessage> queue =
        swallowBuffer.createMessageQueue(
            consumerInfo,
            tailMessageId,
            tailMessageId,
            MessageFilter.createInSetMessageFilter(messageTypeSet));

    SwallowMessage m = queue.poll(500, TimeUnit.MILLISECONDS);
    while (m == null) {
      m = queue.poll(50, TimeUnit.MILLISECONDS);
    }
    Assert.assertEquals(myType, m.getType());
  }
 @Before
 public void setUp() throws Exception {
   mongoClient.getMessageCollection(TOPIC_NAME).drop();
   // 插入1条消息
   SwallowMessage firstMsg = createMessage();
   firstMsg.setContent("content1");
   messageDAO.saveMessage(TOPIC_NAME, firstMsg);
   // 初始化tailMessageId
   tailMessageId = messageDAO.getMaxMessageId(TOPIC_NAME);
   // 添加9条Message
   int i = 2;
   while (i <= 10) {
     // 插入消息
     SwallowMessage msg = createMessage();
     msg.setContent("content" + i++);
     messageDAO.saveMessage(TOPIC_NAME, msg);
   }
 }