com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService Java Examples
The following examples show how to use
com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DubboUtilsTest.java From Sentinel with Apache License 2.0 | 6 votes |
@Test public void testGetInterfaceName() { URL url = URL.valueOf("dubbo://127.0.0.1:2181") .addParameter(CommonConstants.VERSION_KEY, "1.0.0") .addParameter(CommonConstants.GROUP_KEY, "grp1") .addParameter(CommonConstants.INTERFACE_KEY, DemoService.class.getName()); Invoker invoker = mock(Invoker.class); when(invoker.getUrl()).thenReturn(url); when(invoker.getInterface()).thenReturn(DemoService.class); SentinelConfig.setConfig(DUBBO_INTERFACE_GROUP_VERSION_ENABLED, "false"); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService", DubboUtils.getInterfaceName(invoker)); SentinelConfig.setConfig(DUBBO_INTERFACE_GROUP_VERSION_ENABLED, "true"); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:1.0.0:grp1", DubboUtils.getInterfaceName(invoker)); }
Example #2
Source File: DubboUtilsTest.java From Sentinel with Apache License 2.0 | 6 votes |
@Test public void testGetResourceNameWithPrefix() throws NoSuchMethodException { Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getDeclaredMethod("sayHello", String.class, int.class); when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); //test with default prefix String resourceName = DubboUtils.getResourceName(invoker, invocation, DubboConfig.getDubboProviderPrefix()); assertEquals("dubbo:provider:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); resourceName = DubboUtils.getResourceName(invoker, invocation, DubboConfig.getDubboConsumerPrefix()); assertEquals("dubbo:consumer:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); //test with custom prefix SentinelConfig.setConfig(DubboConfig.DUBBO_PROVIDER_PREFIX, "my:dubbo:provider:"); SentinelConfig.setConfig(DubboConfig.DUBBO_CONSUMER_PREFIX, "my:dubbo:consumer:"); resourceName = DubboUtils.getResourceName(invoker, invocation, DubboConfig.getDubboProviderPrefix()); assertEquals("my:dubbo:provider:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); resourceName = DubboUtils.getResourceName(invoker, invocation, DubboConfig.getDubboConsumerPrefix()); assertEquals("my:dubbo:consumer:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); }
Example #3
Source File: SentinelDubboConsumerFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 6 votes |
@Test public void testInvoke() { final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(invocationOnMock -> { verifyInvocationStructure(invoker, invocation); return result; }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #4
Source File: SentinelDubboConsumerFilterTest.java From Sentinel with Apache License 2.0 | 6 votes |
@Test public void testInvoke() { final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(new Answer<Object>() { @Override public Object answer(InvocationOnMock invocationOnMock) throws Throwable { verifyInvocationStructure(invoker, invocation); return result; } }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #5
Source File: DubboUtilsTest.java From Sentinel with Apache License 2.0 | 6 votes |
@Test public void testGetResourceNameWithGroupAndVersion() throws NoSuchMethodException { Invoker invoker = mock(Invoker.class); URL url = URL.valueOf("dubbo://127.0.0.1:2181") .addParameter(CommonConstants.VERSION_KEY, "1.0.0") .addParameter(CommonConstants.GROUP_KEY, "grp1") .addParameter(CommonConstants.INTERFACE_KEY, DemoService.class.getName()); when(invoker.getUrl()).thenReturn(url); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getDeclaredMethod("sayHello", String.class, int.class); when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); String resourceNameUseGroupAndVersion = DubboUtils.getResourceName(invoker, invocation, true); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:1.0.0:grp1:sayHello(java.lang.String,int)", resourceNameUseGroupAndVersion); }
Example #6
Source File: SentinelDubboConsumerFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 6 votes |
@Test public void testInvoke() { final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(new Answer<Object>() { @Override public Object answer(InvocationOnMock invocationOnMock) throws Throwable { verifyInvocationStructure(invoker, invocation); return result; } }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #7
Source File: SentinelDubboConsumerFilterTest.java From dubbo-sentinel-support with Apache License 2.0 | 6 votes |
@Test public void testInvoke() { final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(invocationOnMock -> { verifyInvocationStructure(invoker, invocation); return result; }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #8
Source File: SentinelDubboProviderFilterTest.java From dubbo-sentinel-support with Apache License 2.0 | 5 votes |
@Test public void testInvoke() { final String originApplication = "consumerA"; final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); when(invocation.getAttachment(DubboUtils.SENTINEL_DUBBO_APPLICATION_KEY, "")) .thenReturn(originApplication); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(invocationOnMock -> { verifyInvocationStructure(originApplication, invoker, invocation); return result; }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #9
Source File: DubboUtilsTest.java From Sentinel with Apache License 2.0 | 5 votes |
@Test public void testGetResourceName() throws NoSuchMethodException { Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getDeclaredMethod("sayHello", String.class, int.class); when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); String resourceName = DubboUtils.getResourceName(invoker, invocation); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); }
Example #10
Source File: SentinelDubboProviderFilterTest.java From Sentinel with Apache License 2.0 | 5 votes |
@Test public void testInvoke() { final String originApplication = "consumerA"; URL url = DubboTestUtil.getDefaultTestURL(); url = url.addParameter(CommonConstants.SIDE_KEY, CommonConstants.PROVIDER_SIDE); Invoker invoker = DubboTestUtil.getMockInvoker(url, DemoService.class); Invocation invocation = DubboTestUtil.getMockInvocation(DemoService.class.getMethods()[0]); when(invocation.getAttachment(DubboUtils.SENTINEL_DUBBO_APPLICATION_KEY, "")) .thenReturn(originApplication); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(result.getException()).thenReturn(new Exception()); when(invoker.invoke(invocation)).thenAnswer(invocationOnMock -> { verifyInvocationStructure(originApplication, invoker, invocation); return result; }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #11
Source File: AbstractDubboFilterTest.java From Sentinel with Apache License 2.0 | 5 votes |
@Test public void testGetResourceName() { Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); String resourceName = filter.getResourceName(invoker, invocation); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); }
Example #12
Source File: DubboUtilsTest.java From dubbo-sentinel-support with Apache License 2.0 | 5 votes |
@Test public void testGetResourceName() { Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); String resourceName = DubboUtils.getResourceName(invoker, invocation); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); }
Example #13
Source File: AbstractDubboFilterTest.java From Sentinel with Apache License 2.0 | 5 votes |
@Test public void testGetResourceNameWithPrefix() { Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); //test with default prefix String resourceName = filter.getResourceName(invoker, invocation, DubboConfig.getDubboProviderPrefix()); System.out.println("resourceName = " + resourceName); assertEquals("dubbo:provider:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); resourceName = filter.getResourceName(invoker, invocation, DubboConfig.getDubboConsumerPrefix()); assertEquals("dubbo:consumer:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); //test with custom prefix SentinelConfig.setConfig(DubboConfig.DUBBO_PROVIDER_PREFIX, "my:dubbo:provider:"); SentinelConfig.setConfig(DubboConfig.DUBBO_CONSUMER_PREFIX, "my:dubbo:consumer:"); resourceName = filter.getResourceName(invoker, invocation, DubboConfig.getDubboProviderPrefix()); assertEquals("my:dubbo:provider:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); resourceName = filter.getResourceName(invoker, invocation, DubboConfig.getDubboConsumerPrefix()); assertEquals("my:dubbo:consumer:com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); }
Example #14
Source File: SentinelDubboProviderFilterTest.java From Sentinel with Apache License 2.0 | 5 votes |
@Test public void testInvoke() { final String originApplication = "consumerA"; final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); when(invocation.getAttachment(DubboUtils.DUBBO_APPLICATION_KEY, "")).thenReturn(originApplication); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(new Answer<Object>() { @Override public Object answer(InvocationOnMock invocationOnMock) throws Throwable { verifyInvocationStructure(originApplication, invoker, invocation); return result; } }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #15
Source File: SentinelDubboProviderFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 5 votes |
@Test public void testInvoke() { final String originApplication = "consumerA"; final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); when(invocation.getAttachment(DubboUtils.DUBBO_APPLICATION_KEY, "")).thenReturn(originApplication); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(new Answer<Object>() { @Override public Object answer(InvocationOnMock invocationOnMock) throws Throwable { verifyInvocationStructure(originApplication, invoker, invocation); return result; } }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #16
Source File: AbstractDubboFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 5 votes |
@Test public void testGetResourceName() { Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); String resourceName = filter.getResourceName(invoker, invocation); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); }
Example #17
Source File: DubboUtilsTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 5 votes |
@Test public void testGetResourceName() { Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); String resourceName = DubboUtils.getResourceName(invoker, invocation); assertEquals("com.alibaba.csp.sentinel.adapter.dubbo.provider.DemoService:sayHello(java.lang.String,int)", resourceName); }
Example #18
Source File: SentinelDubboProviderFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 5 votes |
@Test public void testInvoke() { final String originApplication = "consumerA"; final Invoker invoker = mock(Invoker.class); when(invoker.getInterface()).thenReturn(DemoService.class); final Invocation invocation = mock(Invocation.class); Method method = DemoService.class.getMethods()[0]; when(invocation.getMethodName()).thenReturn(method.getName()); when(invocation.getParameterTypes()).thenReturn(method.getParameterTypes()); when(invocation.getAttachment(DubboUtils.SENTINEL_DUBBO_APPLICATION_KEY, "")) .thenReturn(originApplication); final Result result = mock(Result.class); when(result.hasException()).thenReturn(false); when(invoker.invoke(invocation)).thenAnswer(invocationOnMock -> { verifyInvocationStructure(originApplication, invoker, invocation); return result; }); filter.invoke(invoker, invocation); verify(invoker).invoke(invocation); Context context = ContextUtil.getContext(); assertNull(context); }
Example #19
Source File: SentinelDubboConsumerFilterTest.java From Sentinel with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(defaultContextName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As not call ContextUtil.enter(resourceName, application) in SentinelDubboConsumerFilter, use default context // In actual project, a consumer is usually also a provider, the context will be created by SentinelDubboProviderFilter // If consumer is on the top of Dubbo RPC invocation chain, use default context String resourceName = filter.getResourceName(invoker, invocation); assertEquals(Constants.CONTEXT_DEFAULT_NAME, context.getName()); assertEquals("", context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(Constants.CONTEXT_DEFAULT_NAME, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getEntryType()); // As SphU.entry(interfaceName, EntryType.OUT); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.OUT, interfaceResource.getEntryType()); // As SphU.entry(resourceName, EntryType.OUT); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.OUT, methodResource.getEntryType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNull(curEntry.getOriginNode());// As context origin is not "", no originNode should be created in curEntry // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is "", the StatisticNode should not be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(0, methodOriginCountMap.size()); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(0, interfaceOriginCountMap.size()); }
Example #20
Source File: SentinelDubboProviderFilterTest.java From Sentinel with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(resourceName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(String originApplication, Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As ContextUtil.enter(resourceName, application) in SentinelDubboProviderFilter String resourceName = filter.getResourceName(invoker, invocation); assertEquals(resourceName, context.getName()); assertEquals(originApplication, context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(resourceName, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getEntryType()); // As SphU.entry(interfaceName, EntryType.IN); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.IN, interfaceResource.getEntryType()); // As SphU.entry(resourceName, EntryType.IN, 1, invocation.getArguments()); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.IN, methodResource.getEntryType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNotNull(curEntry.getOriginNode());// As context origin is not "", originNode should be created // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is not "", the StatisticNode should be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(1, methodOriginCountMap.size()); assertTrue(methodOriginCountMap.containsKey(originApplication)); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(1, interfaceOriginCountMap.size()); assertTrue(interfaceOriginCountMap.containsKey(originApplication)); }
Example #21
Source File: SentinelDubboConsumerFilterTest.java From dubbo-sentinel-support with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(defaultContextName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As not call ContextUtil.enter(resourceName, application) in SentinelDubboConsumerFilter, use default context // In actual project, a consumer is usually also a provider, the context will be created by SentinelDubboProviderFilter // If consumer is on the top of Dubbo RPC invocation chain, use default context String resourceName = DubboUtils.getResourceName(invoker, invocation); assertEquals(Constants.CONTEXT_DEFAULT_NAME, context.getName()); assertEquals("", context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(Constants.CONTEXT_DEFAULT_NAME, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getType()); // As SphU.entry(interfaceName, EntryType.OUT); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.OUT, interfaceResource.getType()); // As SphU.entry(resourceName, EntryType.OUT); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.OUT, methodResource.getType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNull(curEntry.getOriginNode());// As context origin is not "", no originNode should be created in curEntry // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is "", the StatisticNode should not be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(0, methodOriginCountMap.size()); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(0, interfaceOriginCountMap.size()); }
Example #22
Source File: SentinelDubboProviderFilterTest.java From dubbo-sentinel-support with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(resourceName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(String originApplication, Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As ContextUtil.enter(resourceName, application) in SentinelDubboProviderFilter String resourceName = DubboUtils.getResourceName(invoker, invocation); assertEquals(resourceName, context.getName()); assertEquals(originApplication, context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(resourceName, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getType()); // As SphU.entry(interfaceName, EntryType.IN); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.IN, interfaceResource.getType()); // As SphU.entry(resourceName, EntryType.IN, 1, invocation.getArguments()); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.IN, methodResource.getType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNotNull(curEntry.getOriginNode());// As context origin is not "", originNode should be created // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is not "", the StatisticNode should be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(1, methodOriginCountMap.size()); assertTrue(methodOriginCountMap.containsKey(originApplication)); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(1, interfaceOriginCountMap.size()); assertTrue(interfaceOriginCountMap.containsKey(originApplication)); }
Example #23
Source File: SentinelDubboConsumerFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(defaultContextName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As not call ContextUtil.enter(resourceName, application) in SentinelDubboConsumerFilter, use default context // In actual project, a consumer is usually also a provider, the context will be created by SentinelDubboProviderFilter // If consumer is on the top of Dubbo RPC invocation chain, use default context String resourceName = filter.getResourceName(invoker, invocation); assertEquals(Constants.CONTEXT_DEFAULT_NAME, context.getName()); assertEquals("", context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(Constants.CONTEXT_DEFAULT_NAME, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getType()); // As SphU.entry(interfaceName, EntryType.OUT); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.OUT, interfaceResource.getType()); // As SphU.entry(resourceName, EntryType.OUT); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.OUT, methodResource.getType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNull(curEntry.getOriginNode());// As context origin is not "", no originNode should be created in curEntry // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is "", the StatisticNode should not be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(0, methodOriginCountMap.size()); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(0, interfaceOriginCountMap.size()); }
Example #24
Source File: SentinelDubboProviderFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(resourceName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(String originApplication, Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As ContextUtil.enter(resourceName, application) in SentinelDubboProviderFilter String resourceName = filter.getResourceName(invoker, invocation); assertEquals(resourceName, context.getName()); assertEquals(originApplication, context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(resourceName, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getType()); // As SphU.entry(interfaceName, EntryType.IN); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.IN, interfaceResource.getType()); // As SphU.entry(resourceName, EntryType.IN, 1, invocation.getArguments()); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.IN, methodResource.getType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNotNull(curEntry.getOriginNode());// As context origin is not "", originNode should be created // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is not "", the StatisticNode should be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(1, methodOriginCountMap.size()); assertTrue(methodOriginCountMap.containsKey(originApplication)); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(1, interfaceOriginCountMap.size()); assertTrue(interfaceOriginCountMap.containsKey(originApplication)); }
Example #25
Source File: SentinelDubboConsumerFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(defaultContextName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As not call ContextUtil.enter(resourceName, application) in SentinelDubboConsumerFilter, use default context // In actual project, a consumer is usually also a provider, the context will be created by SentinelDubboProviderFilter // If consumer is on the top of Dubbo RPC invocation chain, use default context String resourceName = DubboUtils.getResourceName(invoker, invocation); assertEquals(Constants.CONTEXT_DEFAULT_NAME, context.getName()); assertEquals("", context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(Constants.CONTEXT_DEFAULT_NAME, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getType()); // As SphU.entry(interfaceName, EntryType.OUT); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.OUT, interfaceResource.getType()); // As SphU.entry(resourceName, EntryType.OUT); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.OUT, methodResource.getType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNull(curEntry.getOriginNode());// As context origin is not "", no originNode should be created in curEntry // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is "", the StatisticNode should not be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(0, methodOriginCountMap.size()); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(0, interfaceOriginCountMap.size()); }
Example #26
Source File: SentinelDubboProviderFilterTest.java From Sentinel-Dashboard-Nacos with Apache License 2.0 | 4 votes |
/** * Simply verify invocation structure in memory: * EntranceNode(resourceName) * --InterfaceNode(interfaceName) * ----MethodNode(resourceName) */ private void verifyInvocationStructure(String originApplication, Invoker invoker, Invocation invocation) { Context context = ContextUtil.getContext(); assertNotNull(context); // As ContextUtil.enter(resourceName, application) in SentinelDubboProviderFilter String resourceName = DubboUtils.getResourceName(invoker, invocation); assertEquals(resourceName, context.getName()); assertEquals(originApplication, context.getOrigin()); DefaultNode entranceNode = context.getEntranceNode(); ResourceWrapper entranceResource = entranceNode.getId(); assertEquals(resourceName, entranceResource.getName()); assertSame(EntryType.IN, entranceResource.getType()); // As SphU.entry(interfaceName, EntryType.IN); Set<Node> childList = entranceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode interfaceNode = (DefaultNode) childList.iterator().next(); ResourceWrapper interfaceResource = interfaceNode.getId(); assertEquals(DemoService.class.getName(), interfaceResource.getName()); assertSame(EntryType.IN, interfaceResource.getType()); // As SphU.entry(resourceName, EntryType.IN, 1, invocation.getArguments()); childList = interfaceNode.getChildList(); assertEquals(1, childList.size()); DefaultNode methodNode = (DefaultNode) childList.iterator().next(); ResourceWrapper methodResource = methodNode.getId(); assertEquals(resourceName, methodResource.getName()); assertSame(EntryType.IN, methodResource.getType()); // Verify curEntry Entry curEntry = context.getCurEntry(); assertSame(methodNode, curEntry.getCurNode()); assertSame(interfaceNode, curEntry.getLastNode()); assertNotNull(curEntry.getOriginNode());// As context origin is not "", originNode should be created // Verify clusterNode ClusterNode methodClusterNode = methodNode.getClusterNode(); ClusterNode interfaceClusterNode = interfaceNode.getClusterNode(); assertNotSame(methodClusterNode, interfaceClusterNode);// Different resource->Different ProcessorSlot->Different ClusterNode // As context origin is not "", the StatisticNode should be created in originCountMap of ClusterNode Map<String, StatisticNode> methodOriginCountMap = methodClusterNode.getOriginCountMap(); assertEquals(1, methodOriginCountMap.size()); assertTrue(methodOriginCountMap.containsKey(originApplication)); Map<String, StatisticNode> interfaceOriginCountMap = interfaceClusterNode.getOriginCountMap(); assertEquals(1, interfaceOriginCountMap.size()); assertTrue(interfaceOriginCountMap.containsKey(originApplication)); }