@Override
    public void handlerDiscoveryUpstreamData(final DiscoverySyncData discoverySyncData) {
        super.getWasmExtern(METHOD_NAME)
                .map(handlerDiscoveryUpstreamData -> {
                    // WASI cannot easily pass Java objects like JNI, here we pass Long as arg
                    // then we can get the argument by Long
                    final Long argumentId = getArgumentId(discoverySyncData);
                    ARGUMENTS.put(argumentId, discoverySyncData);
                    // call WASI function
                    WasmFunctions.consumer(super.getStore(), handlerDiscoveryUpstreamData.func(), WasmValType.I64)
                            .accept(argumentId);
                    ARGUMENTS.remove(argumentId);
                    return argumentId;
                }).orElseThrow(() -> new ShenyuWasmInitException(METHOD_NAME + " function not find in wasm file: " + getWasmName()));
    }
@Test
    public void handlerDiscoveryUpstreamDataTest() {
        discoveryUpstreamDataHandler = mock(DiscoveryUpstreamDataHandler.class);
        discoveryUpstreamDataHandler.handlerDiscoveryUpstreamData(discoverySyncData);
        testWasmPluginDiscoveryHandler.handlerDiscoveryUpstreamData(discoverySyncData);
        verify(discoveryUpstreamDataHandler).handlerDiscoveryUpstreamData(discoverySyncData);

    }