@Override
    public RemotingCommand processRequest(final ChannelHandlerContext ctx,
                                          RemotingCommand request) throws RemotingCommandException {
        return this.processRequest(ctx.channel(), request, true);
    }
@Test
    public void testSingleAck_QueueCheck() throws RemotingCommandException {
        {
            int qId = -1;
            AckMessageRequestHeader requestHeader = new AckMessageRequestHeader();
            requestHeader.setTopic(topic);
            requestHeader.setQueueId(qId);
            requestHeader.setOffset(0L);
            RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.ACK_MESSAGE, requestHeader);
            request.makeCustomHeaderToNet();
            RemotingCommand response = ackMessageProcessor.processRequest(handlerContext, request);
            assertThat(response.getCode()).isEqualTo(ResponseCode.MESSAGE_ILLEGAL);
            assertThat(response.getRemark()).contains("queueId[" + qId + "] is illegal");
        }

        {
            int qId = 17;
            AckMessageRequestHeader requestHeader = new AckMessageRequestHeader();
            requestHeader.setTopic(topic);
            requestHeader.setQueueId(qId);
            requestHeader.setOffset(0L);
            RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.ACK_MESSAGE, requestHeader);
            request.makeCustomHeaderToNet();
            RemotingCommand response = ackMessageProcessor.processRequest(handlerContext, request);
            assertThat(response.getCode()).isEqualTo(ResponseCode.MESSAGE_ILLEGAL);
            assertThat(response.getRemark()).contains("queueId[" + qId + "] is illegal");
        }
    }