@Override
    public ExecuteContext after(ExecuteContext context) {
        if (InvokeUtils.isRocketMqInvokeBySermant(Thread.currentThread().getStackTrace())) {
            return context;
        }
        DefaultLitePullConsumerWrapper wrapper = RocketMqPullConsumerController
                .getPullConsumerWrapper((DefaultLitePullConsumer)context.getObject());

        Object messageQueueObject = context.getArguments()[0];
        if (messageQueueObject == null || !(messageQueueObject instanceof Collection)) {
            return context;
        }
        Collection<MessageQueue> messageQueue = (Collection<MessageQueue>) messageQueueObject;

        if (wrapper == null) {
            setAssignLocalInfo(messageQueue);
        } else {
            updateAssignWrapperInfo(wrapper, messageQueue);
        }

        if (handler != null) {
            handler.doAfter(context);
            return context;
        }

        // After specifying the consumption queue, it is necessary to enable or prohibition of consumption for
        // consumers, according to the prohibited topic configuration
        disablePullConsumption(wrapper);
        return context;
    }
@Test
    public void testAfter() {
        ExecuteContext context = ExecuteContext.forMemberMethod(pullConsumer, null, new Object[]{messageQueues},
                null, null);

        // wrapper为null
        interceptor.after(context);
        Assert.assertEquals(PullConsumerLocalInfoUtils.getSubscriptionType().name(), "ASSIGN");
        Assert.assertEquals(PullConsumerLocalInfoUtils.getMessageQueue(), messageQueues);
        PullConsumerLocalInfoUtils.removeSubscriptionType();
        PullConsumerLocalInfoUtils.removeMessageQueue();

        // Wrapper is null, message queue is null
        context = ExecuteContext.forMemberMethod(pullConsumer, null, new Object[]{null},
                null, null);
        interceptor.after(context);
        Assert.assertEquals(PullConsumerLocalInfoUtils.getSubscriptionType().name(), "NONE");
        PullConsumerLocalInfoUtils.removeSubscriptionType();

        // Wrapper is not null
        context = ExecuteContext.forMemberMethod(pullConsumer, null, new Object[]{messageQueues},
                null, null);
        RocketMqPullConsumerController.cachePullConsumer(pullConsumer);
        interceptor.after(context);
        Assert.assertEquals(pullConsumerWrapper.getSubscriptionType().name(), "ASSIGN");
        Assert.assertEquals(pullConsumerWrapper.getMessageQueues(), messageQueues);
        Assert.assertEquals(pullConsumerWrapper.getSubscribedTopics(), topics);
    }