@Override
    public Message request(final Message msg, final long timeout) throws RequestTimeoutException, MQClientException,
        RemotingException, MQBrokerException, InterruptedException {
        msg.setTopic(withNamespace(msg.getTopic()));
        return this.defaultMQProducerImpl.request(msg, timeout);
    }
@Test
    public void assertRequest() throws MQBrokerException, RemotingException, InterruptedException, MQClientException, NoSuchFieldException, IllegalAccessException, RequestTimeoutException {
        setDefaultMQProducerImpl();
        MessageQueueSelector selector = mock(MessageQueueSelector.class);
        Message replyNsg = producer.request(message, selector, 1, defaultTimeout);
        assertNull(replyNsg);
        RequestCallback requestCallback = mock(RequestCallback.class);
        producer.request(message, selector, 1, requestCallback, defaultTimeout);
        MessageQueue mq = mock(MessageQueue.class);
        producer.request(message, mq, defaultTimeout);
        producer.request(message, mq, requestCallback, defaultTimeout);
    }