public RedirectPlugin(final DispatcherHandler dispatcherHandler) {
        this.dispatcherHandler = dispatcherHandler;
    }
@Test
    public void testRedirectPlugin() {
        RuleData ruleData = new RuleData();
        when(chain.execute(exchange)).thenReturn(Mono.empty());
        SelectorData selectorData = mock(SelectorData.class);
        StepVerifier.create(redirectPlugin.doExecute(exchange, chain, selectorData, ruleData)).expectSubscription().verifyComplete();
        ruleData.setHandle("{\"redirectURI\":\"/test\"}");
        RedirectHandle redirectHandle = new RedirectHandle();
        redirectHandle.setRedirectURI("/test");
        RedirectPluginDataHandler.CACHED_HANDLE.get().cachedHandle(CacheKeyUtils.INST.getKey(ruleData), redirectHandle);
        when(dispatcherHandler.handle(any())).thenReturn(Mono.empty());
        StepVerifier.create(redirectPlugin.doExecute(exchange, chain, selectorData, ruleData)).expectSubscription().verifyComplete();
        redirectHandle.setRedirectURI("http://test.com/test");
        RedirectPluginDataHandler.CACHED_HANDLE.get().cachedHandle(CacheKeyUtils.INST.getKey(ruleData), redirectHandle);
        ruleData.setHandle("{\"redirectURI\":\"http://test.com/test\"}");
        StepVerifier.create(redirectPlugin.doExecute(exchange, chain, selectorData, ruleData)).expectSubscription().verifyComplete();
    }