long nextPullOffset(MessageQueue remoteQueue) {
        if (!pullOffsetTable.containsKey(remoteQueue)) {
            try {
                pullOffsetTable.putIfAbsent(remoteQueue,
                    rocketmqPullConsumer.fetchConsumeOffset(remoteQueue, false));
            } catch (MQClientException e) {
                log.error("An error occurred in fetch consume offset process.", e);
            }
        }
        return pullOffsetTable.get(remoteQueue);
    }
@Test
    public void testNextPullOffset() throws Exception {
        MessageQueue messageQueue = new MessageQueue();
        when(rocketmqPullConsume.fetchConsumeOffset(any(MessageQueue.class), anyBoolean()))
            .thenReturn(123L);
        assertThat(localMessageCache.nextPullOffset(new MessageQueue())).isEqualTo(123L);
    }