This is an automated email from the ASF dual-hosted git repository.

shoothzj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new f37cdb10d migrate http-client-common to mockito (#3397)
f37cdb10d is described below

commit f37cdb10d1aa35d14469b7613f99b23348ae5851
Author: Tian Luo <[email protected]>
AuthorDate: Mon Oct 17 05:40:58 2022 +0800

    migrate http-client-common to mockito (#3397)
---
 clients/http-client-common/pom.xml                  |  6 ------
 .../http/client/common/AbstractAddressManager.java  | 17 ++++++++++++++++-
 .../client/common/AbstractAddressManagerTest.java   | 21 +++++++--------------
 3 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/clients/http-client-common/pom.xml 
b/clients/http-client-common/pom.xml
index d08d76db1..8ed836761 100644
--- a/clients/http-client-common/pom.xml
+++ b/clients/http-client-common/pom.xml
@@ -71,11 +71,5 @@
       <groupId>org.java-websocket</groupId>
       <artifactId>Java-WebSocket</artifactId>
     </dependency>
-
-    <dependency>
-      <groupId>org.jmockit</groupId>
-      <artifactId>jmockit</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git 
a/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/AbstractAddressManager.java
 
b/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/AbstractAddressManager.java
index ac2148368..a126a855f 100644
--- 
a/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/AbstractAddressManager.java
+++ 
b/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/AbstractAddressManager.java
@@ -72,7 +72,7 @@ public class AbstractAddressManager {
   private final Map<String, Boolean> addressIsolated = new 
ConcurrentHashMap<>();
 
   // recording address isolation status, if isolated will be false
-  private final Cache<String, Boolean> addressIsolationStatus = 
CacheBuilder.newBuilder()
+  private Cache<String, Boolean> addressIsolationStatus = 
CacheBuilder.newBuilder()
       .maximumSize(100)
       .expireAfterWrite(1, TimeUnit.MINUTES)
       .build();
@@ -104,6 +104,21 @@ public class AbstractAddressManager {
     this.defaultAddress.addAll(this.addresses);
   }
 
+  @VisibleForTesting
+  Cache<String, Boolean> getAddressIsolationStatus() {
+    return addressIsolationStatus;
+  }
+
+  @VisibleForTesting
+  void setAddressIsolationStatus(Cache<String, Boolean> 
addressIsolationStatus) {
+    this.addressIsolationStatus = addressIsolationStatus;
+  }
+
+  @VisibleForTesting
+  Map<String, Integer> getAddressFailureStatus() {
+    return addressFailureStatus;
+  }
+
   public List<String> getAddresses() {
     return addresses;
   }
diff --git 
a/clients/http-client-common/src/test/java/org/apache/servicecomb/http/client/common/AbstractAddressManagerTest.java
 
b/clients/http-client-common/src/test/java/org/apache/servicecomb/http/client/common/AbstractAddressManagerTest.java
index 25deb1eaa..d51083720 100644
--- 
a/clients/http-client-common/src/test/java/org/apache/servicecomb/http/client/common/AbstractAddressManagerTest.java
+++ 
b/clients/http-client-common/src/test/java/org/apache/servicecomb/http/client/common/AbstractAddressManagerTest.java
@@ -33,9 +33,7 @@ import org.junit.jupiter.api.Test;
 
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
-
-import mockit.Deencapsulation;
-import mockit.Expectations;
+import org.mockito.Mockito;
 
 public class AbstractAddressManagerTest {
 
@@ -84,7 +82,7 @@ public class AbstractAddressManagerTest {
     zoneAndRegion.put("sameZone", addressAZ);
     zoneAndRegion.put("sameRegion", addressRG);
     RefreshEndpointEvent event = new RefreshEndpointEvent(zoneAndRegion, 
"TEST");
-    AbstractAddressManager addressManager = new 
AbstractAddressManager(addresses);
+    AbstractAddressManager addressManager = Mockito.spy(new 
AbstractAddressManager(addresses));
 
     addressManager.refreshEndpoint(event, "TEST");
 
@@ -101,7 +99,7 @@ public class AbstractAddressManagerTest {
     Assertions.assertEquals("http://127.0.0.3:30100";, 
addressManager.address());
 
     // test recodeStatus times
-    Map<String, Integer> recodeStatus = 
Deencapsulation.getField(addressManager, "addressFailureStatus");
+    Map<String, Integer> recodeStatus = 
addressManager.getAddressFailureStatus();
     Assertions.assertEquals(0, (int) 
recodeStatus.get("http://127.0.0.3:30100";));
 
     // test fail 3 times ,it will be isolated
@@ -118,14 +116,9 @@ public class AbstractAddressManagerTest {
     cache.put("http://127.0.0.3:30100";, true);
 
     // mock the address telnetTest is access
-    new Expectations(addressManager) {
-      {
-        Deencapsulation.setField(addressManager, "addressIsolationStatus", 
cache);
-        addressManager.telnetTest("http://127.0.0.3:30100";);
-        result = true;
-      }
-    };
-    Cache<String, Boolean> result = Deencapsulation.getField(addressManager, 
"addressIsolationStatus");
+    
Mockito.when(addressManager.telnetTest("http://127.0.0.3:30100";)).thenReturn(true);
+    addressManager.setAddressIsolationStatus(cache);
+    Cache<String, Boolean> result = addressManager.getAddressIsolationStatus();
     Assertions.assertEquals(true, result.get("http://127.0.0.3:30100";, () -> 
false));
 
     // test restore isolation
@@ -151,7 +144,7 @@ public class AbstractAddressManagerTest {
     }
     latch.await(30, TimeUnit.SECONDS);
 
-    Map<String, Integer> recodeStatus = 
Deencapsulation.getField(addressManager, "addressFailureStatus");
+    Map<String, Integer> recodeStatus = 
addressManager.getAddressFailureStatus();
     Assertions.assertEquals(2, (int) 
recodeStatus.get("http://127.0.0.3:30100";));
   }
 

Reply via email to