From e367d4559dd08bb1f08d309ea05010bcd6d45a69 Mon Sep 17 00:00:00 2001 From: Haotian Zhang <928016560@qq.com> Date: Wed, 22 Mar 2023 14:42:39 +0800 Subject: [PATCH] fix:optimize multi service registration and discovery. --- .../common/util/BeanFactoryUtilsTest.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java index 9a94a32e4..e4e6001f9 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java @@ -19,10 +19,16 @@ package com.tencent.cloud.common.util; import org.junit.jupiter.api.Test; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.core.ResolvableType; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; /** * Test for {@link BeanFactoryUtils}. @@ -41,6 +47,11 @@ public class BeanFactoryUtilsTest { assertThat(childBeanFactory.getBeansOfType(Foo.class)).isEmpty(); assertThat(BeanFactoryUtils.getBeans(childBeanFactory, Foo.class).size()).isEqualTo(1); assertThat(BeanFactoryUtils.getBeans(childBeanFactory, Bar.class)).isEmpty(); + + MockBeanFactory mockBeanFactory = new MockBeanFactory(); + assertThatThrownBy(() -> BeanFactoryUtils.getBeans(mockBeanFactory, Bar.class)) + .isExactlyInstanceOf(RuntimeException.class) + .hasMessageContaining("bean factory not support get list bean."); } static class Foo { @@ -50,4 +61,82 @@ public class BeanFactoryUtilsTest { static class Bar { } + + static class MockBeanFactory implements BeanFactory { + + @Override + public Object getBean(String s) throws BeansException { + return null; + } + + @Override + public T getBean(String s, Class aClass) throws BeansException { + return null; + } + + @Override + public Object getBean(String s, Object... objects) throws BeansException { + return null; + } + + @Override + public T getBean(Class aClass) throws BeansException { + return null; + } + + @Override + public T getBean(Class aClass, Object... objects) throws BeansException { + return null; + } + + @Override + public ObjectProvider getBeanProvider(Class aClass) { + return null; + } + + @Override + public ObjectProvider getBeanProvider(ResolvableType resolvableType) { + return null; + } + + @Override + public boolean containsBean(String s) { + return false; + } + + @Override + public boolean isSingleton(String s) throws NoSuchBeanDefinitionException { + return false; + } + + @Override + public boolean isPrototype(String s) throws NoSuchBeanDefinitionException { + return false; + } + + @Override + public boolean isTypeMatch(String s, ResolvableType resolvableType) throws NoSuchBeanDefinitionException { + return false; + } + + @Override + public boolean isTypeMatch(String s, Class aClass) throws NoSuchBeanDefinitionException { + return false; + } + + @Override + public Class getType(String s) throws NoSuchBeanDefinitionException { + return null; + } + + @Override + public Class getType(String s, boolean b) throws NoSuchBeanDefinitionException { + return null; + } + + @Override + public String[] getAliases(String s) { + return new String[0]; + } + } }