@Override
    public RemotingCommand processRequest(final ChannelHandlerContext ctx,
                                          RemotingCommand request) throws RemotingCommandException {
        return this.processRequest(ctx.channel(), request, true);
    }
@Test
    public void testSingleAck_TopicCheck() throws RemotingCommandException {
        AckMessageRequestHeader requestHeader = new AckMessageRequestHeader();
        requestHeader.setTopic("wrongTopic");
        requestHeader.setQueueId(0);
        requestHeader.setOffset(0L);
        RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.ACK_MESSAGE, requestHeader);
        request.makeCustomHeaderToNet();
        RemotingCommand response = ackMessageProcessor.processRequest(handlerContext, request);
        assertThat(response.getCode()).isEqualTo(ResponseCode.TOPIC_NOT_EXIST);
        assertThat(response.getRemark()).contains("not exist, apply first");
    }