RainYuY commented on code in PR #16031:
URL: https://github.com/apache/dubbo/pull/16031#discussion_r2716690319
##########
dubbo-registry/dubbo-registry-multiple/src/test/java/org/apache/dubbo/registry/multiple/MultipleRegistry2S2RTest.java:
##########
@@ -23,56 +23,124 @@
import org.apache.dubbo.remoting.zookeeper.curator5.Curator5ZookeeperClient;
import org.apache.dubbo.remoting.zookeeper.curator5.ZookeeperClient;
+import java.lang.reflect.Field;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Assumptions;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.mockito.MockitoAnnotations;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
-/**
- * 2019-04-30
- */
class MultipleRegistry2S2RTest {
private static final String SERVICE_NAME =
"org.apache.dubbo.registry.MultipleService2S2R";
private static final String SERVICE2_NAME =
"org.apache.dubbo.registry.MultipleService2S2R2";
+ private static final String MOCK_ZK_ADDR1 =
"zookeeper://mock-zk-1:2181?check=false";
+ private static final String MOCK_ZK_ADDR2 =
"zookeeper://mock-zk-2:2182?check=false";
+
+ private MultipleRegistry multipleRegistry;
+ private ZookeeperClient zookeeperClient;
+ private ZookeeperClient zookeeperClient2;
+ private ZookeeperRegistry zookeeperRegistry;
+ private ZookeeperRegistry zookeeperRegistry2;
+ private String zookeeperConnectionAddress1;
+ private String zookeeperConnectionAddress2;
+
+ private static ZookeeperRegistry getZookeeperRegistry(Collection<Registry>
registries) {
+ for (Registry registry : registries) {
+ if (registry instanceof ZookeeperRegistry) {
+ return (ZookeeperRegistry) registry;
+ }
+ }
+ return null;
+ }
+
+ private static void setFieldValue(Object target, String fieldName, Object
value) {
+ try {
+ Field field = target.getClass().getDeclaredField(fieldName);
+ field.setAccessible(true);
+ field.set(target, value);
+ } catch (NoSuchFieldException | IllegalAccessException e) {
+ throw new RuntimeException("Failed to set field: " + fieldName, e);
+ }
+ }
- private static MultipleRegistry multipleRegistry;
- // for test content
- private static ZookeeperClient zookeeperClient;
- private static ZookeeperClient zookeeperClient2;
-
- private static ZookeeperRegistry zookeeperRegistry;
- private static ZookeeperRegistry zookeeperRegistry2;
-
- private static String zookeeperConnectionAddress1,
zookeeperConnectionAddress2;
-
- @BeforeAll
- public static void beforeAll() {
- zookeeperConnectionAddress1 =
System.getProperty("zookeeper.connection.address.1");
- zookeeperConnectionAddress2 =
System.getProperty("zookeeper.connection.address.2");
-
- URL url =
URL.valueOf("multiple://127.0.0.1?application=vic&enable-empty-protection=false&"
- + MultipleRegistry.REGISTRY_FOR_SERVICE
- + "=" + zookeeperConnectionAddress1 + "," +
zookeeperConnectionAddress2 + "&"
- + MultipleRegistry.REGISTRY_FOR_REFERENCE + "=" +
zookeeperConnectionAddress1 + ","
- + zookeeperConnectionAddress2);
- multipleRegistry = (MultipleRegistry) new
MultipleRegistryFactory().createRegistry(url);
-
- // for test validation
- zookeeperClient = new
Curator5ZookeeperClient(URL.valueOf(zookeeperConnectionAddress1));
- zookeeperRegistry = MultipleRegistryTestUtil.getZookeeperRegistry(
- multipleRegistry.getServiceRegistries().values());
- zookeeperClient2 = new
Curator5ZookeeperClient(URL.valueOf(zookeeperConnectionAddress2));
- zookeeperRegistry2 = MultipleRegistryTestUtil.getZookeeperRegistry(
- multipleRegistry.getServiceRegistries().values());
+ @BeforeEach
+ void init() {
+ MockitoAnnotations.openMocks(this);
+
+ zookeeperConnectionAddress1 = MOCK_ZK_ADDR1;
+ zookeeperConnectionAddress2 = MOCK_ZK_ADDR2;
+
+ multipleRegistry = mock(MultipleRegistry.class);
Review Comment:
This approach is incorrect. You should not mock MultipleRegistry—this is
your test subject and should not be mocked.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]