Search in sources :

Example 16 with Holder

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);
}
Also used : AtomicLong(java.util.concurrent.atomic.AtomicLong) Holder(org.apache.servicecomb.foundation.common.Holder) Vertx(io.vertx.core.Vertx) Test(org.junit.Test)

Example 17 with Holder

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);
}
Also used : User(org.apache.servicecomb.it.schema.User) Holder(org.apache.servicecomb.foundation.common.Holder) Test(org.junit.Test)

Example 18 with Holder

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());
        }
    };
}
Also used : Expectations(mockit.Expectations) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) Holder(org.apache.servicecomb.foundation.common.Holder) Charset(java.nio.charset.Charset) MockUp(mockit.MockUp) URL(java.net.URL) Mock(mockit.Mock) ByteArrayInputStream(java.io.ByteArrayInputStream)

Example 19 with Holder

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;
}
Also used : Holder(org.apache.servicecomb.foundation.common.Holder) Handler(org.apache.servicecomb.core.Handler)

Example 20 with Holder

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);
}
Also used : Response(org.apache.servicecomb.swagger.invocation.Response) InvocationFinishEvent(org.apache.servicecomb.core.event.InvocationFinishEvent) Holder(org.apache.servicecomb.foundation.common.Holder) Test(org.junit.Test)

Aggregations

Holder (org.apache.servicecomb.foundation.common.Holder)108 Test (org.junit.Test)88 MockUp (mockit.MockUp)36 AtomicLong (java.util.concurrent.atomic.AtomicLong)28 Invocation (org.apache.servicecomb.core.Invocation)24 Expectations (mockit.Expectations)22 Vertx (io.vertx.core.Vertx)20 List (java.util.List)18 Response (org.apache.servicecomb.swagger.invocation.Response)18 Mock (mockit.Mock)16 HttpServerFilterBaseForTest (org.apache.servicecomb.common.rest.filter.HttpServerFilterBaseForTest)16 ArrayList (java.util.ArrayList)14 Map (java.util.Map)14 SCBEngine (org.apache.servicecomb.core.SCBEngine)14 ExpectedException (org.junit.rules.ExpectedException)14 CountDownLatch (java.util.concurrent.CountDownLatch)12 Status (javax.ws.rs.core.Response.Status)12 Deencapsulation (mockit.Deencapsulation)12 Mocked (mockit.Mocked)12 ConfigUtil (org.apache.servicecomb.config.ConfigUtil)12