use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class AbortFaultTest method injectFaultNoPercentageConfig.
@Test
public void injectFaultNoPercentageConfig() {
ArchaiusUtils.setProperty("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);
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 TestMicroserviceWatchTask method testWatchFailed.
@Test
public void testWatchFailed(@Mocked ServiceRegistryConfig serviceRegistryConfig, @Mocked ServiceRegistryClient srClient, @Mocked Microservice microservice) {
initWatch(serviceRegistryConfig, srClient, microservice);
new MockUp<ServiceRegistryClient>(srClient) {
@Mock
void watch(String selfMicroserviceId, AsyncResultCallback<MicroserviceInstanceChangedEvent> callback, AsyncResultCallback<Void> onOpen, AsyncResultCallback<Void> onClose) {
callback.fail(new RuntimeExceptionWithoutStackTrace("test failed"));
}
};
Holder<Throwable> holder = new Holder<>();
eventBus.register(new Object() {
@Subscribe
public void onException(ExceptionEvent event) {
holder.value = event.getThrowable();
}
});
Assert.assertNull(holder.value);
microserviceWatchTask.run();
Assert.assertEquals("test failed", holder.value.getMessage());
}
use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class TestMicroserviceWatchTask method testWatchInstanceChanged.
@Test
public void testWatchInstanceChanged(@Mocked ServiceRegistryConfig serviceRegistryConfig, @Mocked ServiceRegistryClient srClient, @Mocked Microservice microservice) {
initWatch(serviceRegistryConfig, srClient, microservice);
MicroserviceInstanceChangedEvent changedEvent = new MicroserviceInstanceChangedEvent();
MicroserviceKey key = new MicroserviceKey();
key.setAppId(microservice.getAppId());
key.setVersion(microservice.getVersion());
key.setServiceName(microservice.getServiceName());
changedEvent.setKey(key);
changedEvent.setInstance(microservice.getInstance());
new MockUp<ServiceRegistryClient>(srClient) {
@Mock
void watch(String selfMicroserviceId, AsyncResultCallback<MicroserviceInstanceChangedEvent> callback, AsyncResultCallback<Void> onOpen, AsyncResultCallback<Void> onClose) {
callback.success(changedEvent);
}
};
Holder<MicroserviceInstanceChangedEvent> holder = new Holder<>();
eventBus.register(new Object() {
@Subscribe
public void onException(MicroserviceInstanceChangedEvent event) {
holder.value = event;
}
});
changedEvent.setAction(WatchAction.CREATE);
microserviceWatchTask.run();
Assert.assertEquals(WatchAction.CREATE, holder.value.getAction());
changedEvent.setAction(WatchAction.DELETE);
microserviceWatchTask.run();
Assert.assertEquals(WatchAction.DELETE, holder.value.getAction());
changedEvent.setAction(WatchAction.UPDATE);
microserviceWatchTask.run();
Assert.assertEquals(WatchAction.UPDATE, holder.value.getAction());
}
use of org.apache.servicecomb.foundation.common.Holder in project java-chassis by ServiceComb.
the class Log4jUtilsTest method init.
@Test
public void init() {
Holder<Boolean> propertiesLoaded = new Holder<>(false);
Holder<Boolean> logConfigured = new Holder<>(false);
Holder<Boolean> mergedFileWritten = new Holder<>(false);
final Properties logProperties = new Properties();
logProperties.setProperty("paas.logs.file", "cse.log");
final ArrayList<Resource> logResList = new ArrayList<>();
new MockUp<PropertiesLoader>() {
@Mock
Properties load() {
propertiesLoaded.value = true;
return logProperties;
}
@Mock
List<Resource> getFoundResList() {
return logResList;
}
};
new MockUp<PropertyConfigurator>() {
@Mock
void configure(Properties properties) {
logConfigured.value = true;
Assert.assertSame(properties, logProperties);
}
};
new MockUp<Log4jUtils>() {
@Mock
void outputFile(List<Resource> resList, Properties properties) {
mergedFileWritten.value = true;
Assert.assertSame(logResList, resList);
Assert.assertSame(logProperties, properties);
}
};
Assert.assertFalse(Deencapsulation.getField(Log4jUtils.class, "inited"));
try {
Log4jUtils.init();
} catch (Exception e) {
fail(e.getMessage());
}
Assert.assertTrue(Deencapsulation.getField(Log4jUtils.class, "inited"));
Assert.assertTrue(propertiesLoaded.value);
Assert.assertTrue(logConfigured.value);
Assert.assertTrue(mergedFileWritten.value);
}
Aggregations