use of io.joynr.exceptions.JoynrRuntimeException in project joynr by bmwcarit.
the class LocalDiscoveryTest method testMixedLocalCachedRemoteDiscoveryEntries.
@SuppressWarnings("unchecked")
@Test
public void testMixedLocalCachedRemoteDiscoveryEntries() {
String testDomain = "testDomain";
String remoteDomain = "remoteDomain";
Set<String> testDomains = new HashSet<>();
testDomains.add(testDomain);
testDomains.add(remoteDomain);
String interfaceName = testProxy.INTERFACE_NAME;
final Collection<DiscoveryEntry> localDiscoveryEntries = new HashSet<>();
final Collection<DiscoveryEntry> cachedDiscoveryEntries = new HashSet<>();
final List<GlobalDiscoveryEntry> remoteDiscoveryEntries = new ArrayList<>();
DiscoveryEntry discoveryEntry = new DiscoveryEntry(VersionUtil.getVersionFromAnnotation(testProxy.class), testDomain, interfaceName, "participantIdLocal", new ProviderQos(), System.currentTimeMillis(), System.currentTimeMillis() + 100000, "publicKeyId");
DiscoveryEntry cachedDiscoveryEntry = new DiscoveryEntry(VersionUtil.getVersionFromAnnotation(testProxy.class), testDomain, interfaceName, "participantIdCached", new ProviderQos(), System.currentTimeMillis(), System.currentTimeMillis() + 100000, "publicKeyId");
GlobalDiscoveryEntry remoteDiscoveryEntry = CapabilityUtils.discoveryEntry2GlobalDiscoveryEntry(new DiscoveryEntry(VersionUtil.getVersionFromAnnotation(testProxy.class), remoteDomain, interfaceName, "participantIdRemote", new ProviderQos(), System.currentTimeMillis(), System.currentTimeMillis() + 100000, "publicKeyId"), new MqttAddress());
localDiscoveryEntries.add(discoveryEntry);
cachedDiscoveryEntries.add(cachedDiscoveryEntry);
remoteDiscoveryEntries.add(remoteDiscoveryEntry);
Set<DiscoveryEntryWithMetaInfo> discoveryEntriesWithMetaInfo = CapabilityUtils.convertToDiscoveryEntryWithMetaInfoSet(true, localDiscoveryEntries);
discoveryEntriesWithMetaInfo.add(CapabilityUtils.convertToDiscoveryEntryWithMetaInfo(false, cachedDiscoveryEntry));
discoveryEntriesWithMetaInfo.add(CapabilityUtils.convertToDiscoveryEntryWithMetaInfo(false, remoteDiscoveryEntry));
when(localDiscoveryEntryStoreMock.lookup(any(String[].class), eq(interfaceName))).thenReturn(localDiscoveryEntries);
when(globalDiscoveryEntryCacheMock.lookup(any(String[].class), eq(interfaceName), anyLong())).thenReturn(cachedDiscoveryEntries);
Mockito.doAnswer(new Answer<Object>() {
@SuppressWarnings("rawtypes")
@Override
public List<GlobalDiscoveryEntry> answer(InvocationOnMock invocation) throws Throwable {
Object[] arguments = invocation.getArguments();
assert (arguments[0] instanceof Callback);
((Callback) arguments[0]).resolve((Object) remoteDiscoveryEntries);
return null;
}
}).when(globalCapabilitiesDirectoryClientMock).lookup(any(Callback.class), any(String[].class), eq(interfaceName), anyLong());
ProxyBuilder<testProxy> proxyBuilder = runtime.getProxyBuilder(testDomains, testProxy.class);
final Future<Void> future = new Future<Void>();
ArbitrationStrategyFunction arbitrationStrategyFunction = new ArbitrationStrategyFunction() {
@Override
public Set<DiscoveryEntryWithMetaInfo> select(Map<String, String> parameters, Collection<DiscoveryEntryWithMetaInfo> capabilities) {
return Sets.newHashSet(capabilities);
}
};
DiscoveryQos discoveryQos = new DiscoveryQos(30000, arbitrationStrategyFunction, 0, DiscoveryScope.LOCAL_AND_GLOBAL);
proxyBuilder.setDiscoveryQos(discoveryQos).build(new ProxyCreatedCallback<testProxy>() {
@Override
public void onProxyCreationFinished(testProxy result) {
future.onSuccess(null);
}
@Override
public void onProxyCreationError(JoynrRuntimeException error) {
future.onFailure(error);
}
});
try {
future.get(5000);
verify(joynrMessagingConnectorFactoryMock).create(anyString(), eq(discoveryEntriesWithMetaInfo), any(MessagingQos.class));
} catch (Exception e) {
Assert.fail("Unexpected exception from ProxyCreatedCallback: " + e);
}
}
use of io.joynr.exceptions.JoynrRuntimeException in project joynr by bmwcarit.
the class LocalDiscoveryTest method testCachedGlobalDiscoveryEntries.
@Test
public void testCachedGlobalDiscoveryEntries() {
String testDomain = "testDomain";
String interfaceName = testProxy.INTERFACE_NAME;
Collection<DiscoveryEntry> discoveryEntries = new HashSet<>();
discoveryEntries.add(new DiscoveryEntry(VersionUtil.getVersionFromAnnotation(testProxy.class), testDomain, interfaceName, "participantId", new ProviderQos(), System.currentTimeMillis(), System.currentTimeMillis() + 100000, "publicKeyId"));
Set<DiscoveryEntryWithMetaInfo> discoveryEntriesWithMetaInfo = CapabilityUtils.convertToDiscoveryEntryWithMetaInfoSet(false, discoveryEntries);
when(globalDiscoveryEntryCacheMock.lookup(any(String[].class), eq(interfaceName), anyLong())).thenReturn(discoveryEntries);
ProxyBuilder<testProxy> proxyBuilder = runtime.getProxyBuilder(testDomain, testProxy.class);
final Future<Void> future = new Future<Void>();
DiscoveryQos discoveryQos = new DiscoveryQos();
discoveryQos.setDiscoveryScope(DiscoveryScope.GLOBAL_ONLY);
proxyBuilder.setDiscoveryQos(discoveryQos).build(new ProxyCreatedCallback<testProxy>() {
@Override
public void onProxyCreationFinished(testProxy result) {
future.onSuccess(null);
}
@Override
public void onProxyCreationError(JoynrRuntimeException error) {
future.onFailure(error);
}
});
try {
future.get(5000);
verify(joynrMessagingConnectorFactoryMock).create(anyString(), eq(discoveryEntriesWithMetaInfo), any(MessagingQos.class));
} catch (Exception e) {
Assert.fail("Unexpected exception from ProxyCreatedCallback: " + e);
}
}
use of io.joynr.exceptions.JoynrRuntimeException in project joynr by bmwcarit.
the class PromiseKeeperTest method getErrorWaitsForRejection.
@Test
public void getErrorWaitsForRejection() throws InterruptedException {
final AbstractDeferred deferred = new AbstractDeferred() {
};
Promise<AbstractDeferred> promise = new Promise<AbstractDeferred>(deferred);
PromiseKeeper keeper = new PromiseKeeper();
final JoynrRuntimeException expectedError = new JoynrRuntimeException("test exception");
promise.then(keeper);
executer.submit(new Runnable() {
@Override
public void run() {
// give test some time to proceed, so getError runs into wait
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// ignore
}
deferred.reject(expectedError);
}
});
JoynrException error = keeper.getError();
Assert.assertEquals(expectedError, error);
}
use of io.joynr.exceptions.JoynrRuntimeException in project joynr by bmwcarit.
the class PromiseTest method rejectedPromiseNotifiesListener.
@Test
public void rejectedPromiseNotifiesListener() {
AbstractDeferred deferred = new AbstractDeferred() {
};
Promise<AbstractDeferred> promise = new Promise<AbstractDeferred>(deferred);
PromiseListener listener = Mockito.mock(PromiseListener.class);
JoynrRuntimeException expectedError = new JoynrRuntimeException("test exception");
deferred.reject(expectedError);
Assert.assertTrue(promise.isRejected());
promise.then(listener);
Mockito.verify(listener).onRejection(expectedError);
}
use of io.joynr.exceptions.JoynrRuntimeException in project joynr by bmwcarit.
the class JoynrUtil method getResource.
private static Object getResource(InputStream inputStream, boolean asByteArray) throws JoynrRuntimeException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(1024);
byte[] bytes = new byte[512];
// Read bytes from the input stream in bytes.length-sized chunks and
// write
// them into the output stream
int readBytes;
try {
while ((readBytes = inputStream.read(bytes)) > 0) {
outputStream.write(bytes, 0, readBytes);
}
Object result = null;
if (asByteArray) {
result = ArrayUtils.toObject(outputStream.toByteArray());
} else {
result = outputStream.toString("UTF-8");
}
// Close the streams
inputStream.close();
outputStream.close();
return result;
} catch (IOException e) {
throw new JoynrRuntimeException(e.getMessage(), e) {
private static final long serialVersionUID = 1L;
};
}
}
Aggregations