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"));
}