### Question:
DeFiPullMessageProcessor extends PullMessageProcessor { @Override public RemotingCommand processRequest(final ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException { RemotingCommand response = super.processRequest(ctx, request); final PullMessageRequestHeader requestHeader = (PullMessageRequestHeader) request.decodeCommandCustomHeader(PullMessageRequestHeader.class); ConsumerGroupInfo consumerGroupInfo = deFiBrokerController.getConsumerManager().getConsumerGroupInfo(requestHeader.getConsumerGroup()); if (consumerGroupInfo != null) { ClientChannelInfo clientChannelInfo = consumerGroupInfo.getChannelInfoTable().get(ctx.channel()); if (clientChannelInfo != null) { String clientId = clientChannelInfo.getClientId(); deFiBrokerController.getClientRebalanceResultManager().updateListenMap(requestHeader.getConsumerGroup(), requestHeader.getTopic(), requestHeader.getQueueId(), clientId); } } handleProcessResult(requestHeader, response); return response; } DeFiPullMessageProcessor(BrokerController brokerController); @Override RemotingCommand processRequest(final ChannelHandlerContext ctx,
        RemotingCommand request);  }### Answer:
@Test public void testProcessRequest_SubNotLatest() throws RemotingCommandException { final RemotingCommand request = createPullMsgCommand(RequestCode.PULL_MESSAGE); request.addExtField("subVersion", String.valueOf(101)); RemotingCommand response = deFiPullMessageProcessor.processRequest(handlerContext, request); assertThat(response).isNotNull(); assertThat(response.getCode()).isEqualTo(ResponseCode.PULL_NOT_FOUND); assertThat(response.getRemark()).contains("subscription not latest"); }