You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/08/07 12:48:25 UTC
[incubator-servicecomb-java-chassis] 03/03: [SCB-799] fix ut problem
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit 76adae9f783f83318fed16372e13ec8819947ea8
Author: wujimin <wu...@huawei.com>
AuthorDate: Fri Aug 3 15:01:28 2018 +0800
[SCB-799] fix ut problem
---
.../vertx/client/TestClientPoolManager.java | 9 ++-
.../client/http/TestHttpClientPoolFactory.java | 7 +-
.../client/tcp/TestTcpClientConnectionPool.java | 4 +-
.../servicecomb/faultinjection/AbortFaultTest.java | 66 +++++++++++------
.../servicecomb/faultinjection/DelayFaultTest.java | 85 ++++++++++++++--------
.../java/org/apache/servicecomb/qps/Config.java | 4 +-
.../org/apache/servicecomb/qps/TestConfig.java | 2 +
7 files changed, 116 insertions(+), 61 deletions(-)
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java
index 4548e5b..6709ca5 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java
@@ -51,6 +51,7 @@ public class TestClientPoolManager {
Map<String, Object> contextMap = new HashMap<>();
+ @Mocked
Context context;
@Before
@@ -58,7 +59,7 @@ public class TestClientPoolManager {
poolMgr = new ClientPoolManager<>(vertx, factory);
id = Deencapsulation.getField(poolMgr, "id");
pools = Deencapsulation.getField(poolMgr, "pools");
- context = new MockUp<Context>() {
+ new MockUp<Context>(context) {
@Mock
void put(String key, Object value) {
contextMap.put(key, value);
@@ -79,7 +80,7 @@ public class TestClientPoolManager {
boolean isEventLoopContext() {
return true;
}
- }.getMockInstance();
+ };
}
@Test
@@ -198,7 +199,7 @@ public class TestClientPoolManager {
}
@Test
- public void findByContext_otherVertx(@Mocked Vertx otherVertx, @Mocked Context otherContext) {
+ public void findByContext_otherVertx(@Mocked VertxImpl otherVertx, @Mocked Context otherContext) {
HttpClientWithContext pool = new HttpClientWithContext(null, null);
pools.add(pool);
@@ -215,7 +216,7 @@ public class TestClientPoolManager {
}
@Test
- public void findByContext_woker(@Mocked Context workerContext) {
+ public void findByContext_worker(@Mocked Context workerContext) {
HttpClientWithContext pool = new HttpClientWithContext(null, null);
pools.add(pool);
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java
index 08b9a32..669d1da 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java
@@ -19,11 +19,11 @@ package org.apache.servicecomb.foundation.vertx.client.http;
import org.junit.Assert;
import org.junit.Test;
-import io.vertx.core.Context;
-import io.vertx.core.Vertx;
import io.vertx.core.http.HttpClient;
import io.vertx.core.http.HttpClientOptions;
+import io.vertx.core.impl.ContextImpl;
import io.vertx.core.impl.VertxImpl;
+import io.vertx.core.impl.VertxInternal;
import mockit.Expectations;
import mockit.Mocked;
@@ -33,7 +33,8 @@ public class TestHttpClientPoolFactory {
HttpClientPoolFactory factory = new HttpClientPoolFactory(httpClientOptions);
@Test
- public void createClientPool(@Mocked Vertx vertx, @Mocked Context context, @Mocked HttpClient httpClient) {
+ public void createClientPool(@Mocked VertxInternal vertx, @Mocked ContextImpl context,
+ @Mocked HttpClient httpClient) {
new Expectations(VertxImpl.class) {
{
context.owner();
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java
index b81e2c4..2ca9736 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java
@@ -21,12 +21,12 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import io.vertx.core.Context;
+import io.vertx.core.impl.ContextImpl;
import mockit.Mocked;
public class TestTcpClientConnectionPool {
@Mocked
- Context context;
+ ContextImpl context;
@Mocked
NetClientWrapper netClientWrapper;
diff --git a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java
index ec4f3c1..851fb91 100644
--- a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java
+++ b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java
@@ -18,7 +18,10 @@
package org.apache.servicecomb.faultinjection;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import javax.xml.ws.Holder;
@@ -36,12 +39,19 @@ import org.mockito.Mockito;
import com.netflix.config.DynamicProperty;
import io.vertx.core.Vertx;
+import mockit.Deencapsulation;
public class AbortFaultTest {
private Invocation invocation;
+ @SuppressWarnings("unchecked")
@Before
public void before() {
+ ArchaiusUtils.resetConfig();
+ ((Map<String, String>) Deencapsulation.getField(FaultInjectionConfig.class, "cfgCallback")).clear();
+ ((Map<String, AtomicLong>) Deencapsulation.getField(FaultInjectionUtil.class, "requestCount")).clear();
+ ((Map<String, AtomicInteger>) Deencapsulation.getField(FaultInjectionUtil.class, "configCenterValue")).clear();
+
invocation = Mockito.mock(Invocation.class);
Transport transport = Mockito.mock(Transport.class);
Mockito.when(invocation.getMicroserviceQualifiedName()).thenReturn("MicroserviceQualifiedName12");
@@ -54,17 +64,22 @@ public class AbortFaultTest {
@After
public void after() {
- System.getProperties()
- .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent");
- System.getProperties()
- .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus");
ArchaiusUtils.resetConfig();
}
@Test
public void injectFaultError() {
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421");
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "100");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "100");
+
+ assertEquals("421", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus")
+ .getString());
+ assertEquals("100", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent")
+ .getString());
AbortFault abortFault = new AbortFault();
FaultParam faultParam = new FaultParam(1);
@@ -75,12 +90,6 @@ public class AbortFaultTest {
abortFault.injectFault(invocation, faultParam, response -> resultHolder.value = response.getResult());
AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12");
- assertEquals("421", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus")
- .getString());
- assertEquals("100", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent")
- .getString());
assertEquals(1, count.get());
assertEquals(421, resultHolder.value.getStatusCode());
assertEquals("aborted by fault inject", resultHolder.value.getReasonPhrase());
@@ -89,8 +98,16 @@ public class AbortFaultTest {
@Test
public void injectFaultNoError() {
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421");
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "0");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421");
+ ArchaiusUtils.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "0");
+
+ assertEquals("421", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus")
+ .getString());
+ assertEquals("0", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent")
+ .getString());
AbortFault abortFault = new AbortFault();
FaultParam faultParam = new FaultParam(1);
@@ -101,18 +118,19 @@ public class AbortFaultTest {
abortFault.injectFault(invocation, faultParam, response -> resultHolder.value = response.getResult());
AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12");
- assertEquals("421", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus")
- .getString());
- assertEquals("0", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent")
- .getString());
assertEquals(1, count.get());
assertEquals("success", resultHolder.value);
}
@Test
public void injectFaultNoPercentageConfig() {
+ ArchaiusUtils
+ .updateProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", null);
+
+ assertNull(DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent")
+ .getString());
+
AbortFault abortFault = new AbortFault();
FaultParam faultParam = new FaultParam(1);
Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null);
@@ -128,7 +146,13 @@ public class AbortFaultTest {
@Test
public void injectFaultNoErrorCodeConfig() {
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "10");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "10");
+
+ assertEquals("10", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent")
+ .getString());
+
AbortFault abortFault = new AbortFault();
FaultParam faultParam = new FaultParam(10);
Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null);
diff --git a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java
index 23521df..71c1782 100644
--- a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java
+++ b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java
@@ -18,9 +18,12 @@
package org.apache.servicecomb.faultinjection;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import javax.xml.ws.Holder;
@@ -37,12 +40,19 @@ import org.mockito.Mockito;
import com.netflix.config.DynamicProperty;
import io.vertx.core.Vertx;
+import mockit.Deencapsulation;
public class DelayFaultTest {
private Invocation invocation;
+ @SuppressWarnings("unchecked")
@Before
public void before() {
+ ArchaiusUtils.resetConfig();
+ ((Map<String, String>) Deencapsulation.getField(FaultInjectionConfig.class, "cfgCallback")).clear();
+ ((Map<String, AtomicLong>) Deencapsulation.getField(FaultInjectionUtil.class, "requestCount")).clear();
+ ((Map<String, AtomicInteger>) Deencapsulation.getField(FaultInjectionUtil.class, "configCenterValue")).clear();
+
invocation = Mockito.mock(Invocation.class);
Transport transport = Mockito.mock(Transport.class);
Mockito.when(invocation.getMicroserviceQualifiedName()).thenReturn("MicroserviceQualifiedName12");
@@ -55,17 +65,22 @@ public class DelayFaultTest {
@After
public void after() {
- System.getProperties()
- .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay");
- System.getProperties()
- .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent");
ArchaiusUtils.resetConfig();
}
@Test
public void injectFaultVertxDelay() throws InterruptedException {
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10");
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100");
+
+ assertEquals("10", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay")
+ .getString());
+ assertEquals("100", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
+ .getString());
DelayFault delayFault = new DelayFault();
FaultParam faultParam = new FaultParam(1);
@@ -81,20 +96,23 @@ public class DelayFaultTest {
latch.await(10, TimeUnit.SECONDS);
AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12");
- assertEquals("10", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay")
- .getString());
- assertEquals("100", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
- .getString());
assertEquals(1, count.get());
assertEquals("success", resultHolder.value);
}
@Test
public void injectFaultSystemDelay() throws InterruptedException {
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10");
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100");
+
+ assertEquals("10", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay")
+ .getString());
+ assertEquals("100", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
+ .getString());
DelayFault delayFault = new DelayFault();
FaultParam faultParam = new FaultParam(1);
@@ -108,20 +126,22 @@ public class DelayFaultTest {
latch.await(10, TimeUnit.SECONDS);
AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12");
- assertEquals("10", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay")
- .getString());
- assertEquals("100", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
- .getString());
assertEquals(1, count.get());
assertEquals("success", resultHolder.value);
}
@Test
public void injectFaultNotDelay() throws InterruptedException {
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10");
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "0");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10");
+ ArchaiusUtils.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "0");
+
+ assertEquals("10", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay")
+ .getString());
+ assertEquals("0", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
+ .getString());
DelayFault delayFault = new DelayFault();
FaultParam faultParam = new FaultParam(1);
@@ -137,18 +157,19 @@ public class DelayFaultTest {
latch.await(3, TimeUnit.SECONDS);
AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12");
- assertEquals("10", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay")
- .getString());
- assertEquals("0", DynamicProperty
- .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
- .getString());
assertEquals(1, count.get());
assertEquals("success", resultHolder.value);
}
@Test
public void injectFaultNoPercentageConfig() {
+ ArchaiusUtils
+ .updateProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", null);
+
+ assertNull(DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
+ .getString());
+
DelayFault delayFault = new DelayFault();
FaultParam faultParam = new FaultParam(1);
Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null);
@@ -164,7 +185,13 @@ public class DelayFaultTest {
@Test
public void injectFaultNoDelayMsConfig() {
- System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "10");
+ ArchaiusUtils
+ .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "10");
+
+ assertEquals("10", DynamicProperty
+ .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent")
+ .getString());
+
DelayFault delayFault = new DelayFault();
FaultParam faultParam = new FaultParam(10);
Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null);
diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java
index 2bc37ac..2c6d69a 100644
--- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java
+++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java
@@ -37,7 +37,7 @@ public final class Config {
public static final String PROVIDER_ENABLED = "servicecomb.flowcontrol.Provider.qps.enabled";
- public static final Config INSTANCE = new Config();
+ public static Config INSTANCE = new Config();
private final DynamicBooleanProperty consumerEanbled =
DynamicPropertyFactory.getInstance().getBooleanProperty(CONSUMER_ENABLED, true);
@@ -45,7 +45,7 @@ public final class Config {
private final DynamicBooleanProperty providerEanbled =
DynamicPropertyFactory.getInstance().getBooleanProperty(PROVIDER_ENABLED, true);
- private Config() {
+ public Config() {
consumerEanbled.addCallback(() -> {
boolean newValue = consumerEanbled.get();
LOGGER.info("{} changed from {} to {}", CONSUMER_ENABLED, consumerEanbled, newValue);
diff --git a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java
index 15d1e29..3f1a7f6 100644
--- a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java
+++ b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java
@@ -40,6 +40,8 @@ public class TestConfig {
@Test
public void testEnabled() {
+ Config.INSTANCE = new Config();
+
Assert.assertEquals(true, Config.INSTANCE.isProviderEnabled());
ArchaiusUtils.updateProperty(Config.PROVIDER_ENABLED, false);
Assert.assertEquals(false, Config.INSTANCE.isProviderEnabled());