use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class AbortFaultTest method injectFaultNoErrorCodeConfig.
@Test
public void injectFaultNoErrorCodeConfig() {
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);
faultParam.setVertx(vertx);
Holder<String> resultHolder = new Holder<>();
abortFault.injectFault(invocation, faultParam, response -> resultHolder.value = response.getResult());
AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12");
assertEquals(1, count.get());
assertEquals("success", resultHolder.value);
}
use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class TestGeneric method testHolderUser_intf.
@Test
public void testHolderUser_intf() {
Holder<User> holder = new Holder<>(new User());
Holder<User> result = consumers.getIntf().holderUser(holder);
assertEquals(result.value.jsonString(), expectUserStr);
}
use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class TestSwaggerLoader method mockLocalResource.
private void mockLocalResource(Map<String, String> resourceMap) {
Holder<String> pathHolder = new Holder<>();
URL url = new MockUp<URL>() {
@Mock
String getPath() {
return pathHolder.value;
}
@Mock
String toExternalForm() {
return pathHolder.value;
}
}.getMockInstance();
ClassLoader classLoader = new MockUp<ClassLoader>() {
@Mock
URL getResource(String name) {
pathHolder.value = name;
return resourceMap.containsKey(name) ? url : null;
}
@Mock
InputStream getResourceAsStream(String name) {
String content = resourceMap.get(name);
return content == null ? null : new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8));
}
}.getMockInstance();
new Expectations(JvmUtils.class) {
{
JvmUtils.findClassLoader();
result = classLoader;
}
};
new MockUp<IOUtils>() {
@Mock
String toString(URL url, Charset encoding) {
return resourceMap.get(url.getPath());
}
};
}
use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class AbstractRestInvocation method checkQpsFlowControl.
private Holder<Boolean> checkQpsFlowControl(OperationMeta operationMeta) {
Holder<Boolean> qpsFlowControlReject = new Holder<>(false);
@SuppressWarnings("deprecation") Handler providerQpsFlowControlHandler = operationMeta.getProviderQpsFlowControlHandler();
if (null != providerQpsFlowControlHandler) {
try {
providerQpsFlowControlHandler.handle(invocation, response -> {
qpsFlowControlReject.value = true;
produceProcessor = ProduceProcessorManager.INSTANCE.findDefaultJsonProcessor();
sendResponse(response);
});
} catch (Throwable e) {
LOGGER.error("failed to execute ProviderQpsFlowControlHandler", e);
qpsFlowControlReject.value = true;
sendFailResponse(e);
}
}
return qpsFlowControlReject;
}
use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class TestInvocation method onFinish.
@Test
public void onFinish() {
mockNonaTime();
Holder<InvocationFinishEvent> result = new Holder<>();
Object subscriber = new Object() {
@Subscribe
public void onStart(InvocationFinishEvent event) {
result.value = event;
}
};
EventManager.register(subscriber);
Invocation invocation = new Invocation(endpoint, operationMeta, arguments);
Assert.assertFalse(invocation.isFinished());
Response response = Response.succResp(null);
invocation.onFinish(response);
Assert.assertEquals(nanoTime, result.value.getNanoCurrent());
Assert.assertSame(invocation, result.value.getInvocation());
Assert.assertSame(response, result.value.getResponse());
Assert.assertTrue(invocation.isFinished());
// should not post event again
InvocationFinishEvent oldEvent = result.value;
invocation.onFinish(null);
Assert.assertSame(oldEvent, result.value);
EventManager.unregister(subscriber);
}
Aggregations