You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/01/08 07:34:26 UTC
[incubator-servicecomb-java-chassis] 03/03: [SCB-180]
Hystrixcommand setter not set by dynamic configuration
This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit 485478edf7a24dc420cee2f95134aefb4aa70420
Author: donglzh168 <14...@qq.com>
AuthorDate: Sat Jan 6 17:14:29 2018 +0800
[SCB-180] Hystrixcommand setter not set by dynamic configuration
---
.../bizkeeper/TestBizkeeperHandler.java | 60 +++++++++++++++++++++-
.../servicecomb/bizkeeper/TestConfiguration.java | 7 +++
.../TestHystrixPropertiesStrategyExt.java | 2 +
3 files changed, 68 insertions(+), 1 deletion(-)
diff --git a/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestBizkeeperHandler.java b/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestBizkeeperHandler.java
index bf1c1ea..7b7a39a 100644
--- a/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestBizkeeperHandler.java
+++ b/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestBizkeeperHandler.java
@@ -22,6 +22,8 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import com.netflix.hystrix.HystrixCommandProperties;
import com.netflix.hystrix.HystrixObservableCommand;
@@ -30,6 +32,7 @@ import com.netflix.hystrix.strategy.HystrixPlugins;
import io.servicecomb.core.Invocation;
import io.servicecomb.core.definition.OperationMeta;
import io.servicecomb.swagger.invocation.AsyncResponse;
+import io.servicecomb.swagger.invocation.InvocationType;
public class TestBizkeeperHandler extends BizkeeperHandler {
@@ -145,7 +148,62 @@ public class TestBizkeeperHandler extends BizkeeperHandler {
System.setProperty("cse.fallbackpolicy.Group_Name.testHandleForceReturnnull.policy", "returnnull");
bizkeeperHandler.handle(invocation, f -> {
Assert.assertTrue(f.isSuccessed());
- Assert.assertEquals(null, f.getResult());
+ Assert.assertNull(f.getResult());
+ });
+ }
+
+ @Test
+ public void testHandleInError() throws Exception {
+ Mockito.when(invocation.getMicroserviceName()).thenReturn("testHandleInError");
+ Mockito.when(invocation.getOperationMeta()).thenReturn(Mockito.mock(OperationMeta.class));
+ Mockito.when(invocation.getOperationMeta().getMicroserviceQualifiedName())
+ .thenReturn("testHandleInError");
+ FallbackPolicy policy = Mockito.mock(FallbackPolicy.class);
+ Mockito.when(policy.name()).thenReturn("throwException");
+ Mockito.when(policy.getFallbackResponse(Mockito.any(Invocation.class))).thenThrow(new RuntimeException());
+ FallbackPolicyManager.addPolicy(policy);
+ System.setProperty("cse.fallbackpolicy.groupname.testHandleInError.policy", "throwException");
+ Mockito.doAnswer(new Answer<Void>() {
+ @Override
+ public Void answer(InvocationOnMock invocation) {
+ AsyncResponse asyncRsp = invocation.getArgumentAt(0, AsyncResponse.class);
+ asyncRsp.fail(InvocationType.CONSUMER, new Exception("testHandleInError"));
+ return null;
+ }
+ }).when(invocation).next(Mockito.any(AsyncResponse.class));;
+ bizkeeperHandler.handle(invocation, f -> {
+ Assert.assertTrue(f.isFailed());
+ });
+ }
+
+ @Test
+ public void testHandlNextException() throws Exception {
+ Mockito.when(invocation.getMicroserviceName()).thenReturn("testHandlNextException");
+ Mockito.when(invocation.getOperationMeta()).thenReturn(Mockito.mock(OperationMeta.class));
+ Mockito.when(invocation.getOperationMeta().getMicroserviceQualifiedName())
+ .thenReturn("testHandlNextException");
+ Mockito.doThrow(new Exception("testHandlNextException")).when(invocation).next(Mockito.any(AsyncResponse.class));
+ bizkeeperHandler.handle(invocation, f -> {
+ Assert.assertTrue(f.isFailed());
+ });
+ }
+
+ @Test
+ public void testHandleSuccess() throws Exception {
+ Mockito.when(invocation.getMicroserviceName()).thenReturn("testHandleSuccess");
+ Mockito.when(invocation.getOperationMeta()).thenReturn(Mockito.mock(OperationMeta.class));
+ Mockito.when(invocation.getOperationMeta().getMicroserviceQualifiedName())
+ .thenReturn("testHandleSuccess");
+ Mockito.doAnswer(new Answer<Void>() {
+ @Override
+ public Void answer(InvocationOnMock invocation) {
+ AsyncResponse asyncRsp = invocation.getArgumentAt(0, AsyncResponse.class);
+ asyncRsp.success("");
+ return null;
+ }
+ }).when(invocation).next(Mockito.any(AsyncResponse.class));;
+ bizkeeperHandler.handle(invocation, f -> {
+ Assert.assertTrue(f.isSuccessed());
});
}
}
diff --git a/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestConfiguration.java b/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestConfiguration.java
index e450614..aba9084 100644
--- a/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestConfiguration.java
+++ b/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestConfiguration.java
@@ -54,5 +54,12 @@ public class TestConfiguration {
String str = c.getFallbackPolicyPolicy("groupname", test2, "testqualify");
// no need to give default value now
assertEquals(null, str);
+
+ assertFalse(c.isCircuitBreakerForceOpen("groupname", test2, "testqualify"));
+ assertFalse(c.isCircuitBreakerForceClosed("groupname", test2, "testqualify"));
+ assertEquals(15000, c.getCircuitBreakerSleepWindowInMilliseconds("groupname", test2, "testqualify"));
+ assertEquals(20, c.getCircuitBreakerRequestVolumeThreshold("groupname", test2, "testqualify"));
+ assertEquals(50, c.getCircuitBreakerErrorThresholdPercentage("groupname", test2, "testqualify"));
+ assertTrue(c.isFallbackEnabled("groupname", test2, "testqualify"));
}
}
diff --git a/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestHystrixPropertiesStrategyExt.java b/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestHystrixPropertiesStrategyExt.java
index b0cd624..1244ac1 100644
--- a/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestHystrixPropertiesStrategyExt.java
+++ b/handlers/handler-bizkeeper/src/test/java/io/servicecomb/bizkeeper/TestHystrixPropertiesStrategyExt.java
@@ -78,5 +78,7 @@ public class TestHystrixPropertiesStrategyExt {
Assert.assertFalse(commandPro.executionTimeoutEnabled().get());
Assert.assertEquals(Integer.valueOf(10), commandPro.fallbackIsolationSemaphoreMaxConcurrentRequests().get());
Assert.assertTrue(commandPro.fallbackEnabled().get());
+ Assert.assertEquals(Integer.valueOf(100), commandPro.metricsRollingPercentileBucketSize().get());
+ Assert.assertFalse(commandPro.metricsRollingPercentileEnabled().get());
}
}
--
To stop receiving notification emails like this one, please contact
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.