use of io.scalecube.transport.Message in project scalecube by scalecube.
the class ServiceCallTest method test_async_greeting_return_string_service_not_found_error_case.
@Test
public void test_async_greeting_return_string_service_not_found_error_case() throws InterruptedException, ExecutionException {
Microservices gateway = createSeed();
// Create microservices instance cluster.
Microservices provider1 = createProvider(gateway);
ServiceCall service = provider1.dispatcher().create();
CountDownLatch timeLatch = new CountDownLatch(1);
try {
// call the service.
CompletableFuture<Message> future = service.invoke(Messages.builder().request(SERVICE_NAME, "unknown").data(Message.builder().data("joe").build()).build());
} catch (Exception ex) {
assertTrue(ex.getMessage().equals("No reachable member with such service: unknown"));
timeLatch.countDown();
}
await(timeLatch, 1, TimeUnit.SECONDS);
gateway.shutdown().get();
provider1.shutdown().get();
}
use of io.scalecube.transport.Message in project scalecube by scalecube.
the class ServiceCallTest method test_remote_async_greeting_return_GreetingResponse.
@Test
public void test_remote_async_greeting_return_GreetingResponse() throws InterruptedException, ExecutionException {
// Create microservices cluster.
Microservices provider = Microservices.builder().port(port.incrementAndGet()).services(new GreetingServiceImpl()).build();
// Create microservices cluster.
Microservices consumer = Microservices.builder().port(port.incrementAndGet()).seeds(provider.cluster().address()).build();
ServiceCall service = consumer.dispatcher().create();
// call the service.
CompletableFuture<Message> future = service.invoke(Messages.builder().request(SERVICE_NAME, "greetingRequest").data(new GreetingRequest("joe")).build());
CountDownLatch timeLatch = new CountDownLatch(1);
future.whenComplete((result, ex) -> {
if (ex == null) {
// print the greeting.
System.out.println("test_remote_async_greeting_return_GreetingResponse :" + result);
GreetingResponse data = result.data();
assertTrue(data.getResult().equals(" hello to: joe"));
} else {
// print the greeting.
System.out.println(ex);
}
timeLatch.countDown();
});
await(timeLatch, 1, TimeUnit.SECONDS);
provider.shutdown().get();
consumer.shutdown().get();
}
use of io.scalecube.transport.Message in project scalecube by scalecube.
the class ServiceCallTest method test_local_async_no_params.
@Test
public void test_local_async_no_params() throws InterruptedException, ExecutionException {
// Create microservices cluster.
Microservices microservices = Microservices.builder().port(port.incrementAndGet()).services(new GreetingServiceImpl()).build();
ServiceCall service = microservices.dispatcher().create();
// call the service.
CompletableFuture<Message> future = service.invoke(Messages.builder().request(SERVICE_NAME, "greetingNoParams").build());
CountDownLatch timeLatch = new CountDownLatch(1);
future.whenComplete((message, ex) -> {
if (ex == null) {
System.out.println(message);
String result = message.data();
assertTrue(result.equals("hello unknown"));
// print the greeting.
System.out.println("test_local_async_no_params :" + result);
} else {
// print the greeting.
System.out.println(ex);
}
timeLatch.countDown();
});
await(timeLatch, 1, TimeUnit.SECONDS);
microservices.shutdown().get();
}
use of io.scalecube.transport.Message in project scalecube by scalecube.
the class ServiceCallTest method test_local_async_greeting_return_GreetingResponse.
@Test
public void test_local_async_greeting_return_GreetingResponse() throws InterruptedException, ExecutionException {
// Create microservices cluster.
Microservices microservices = Microservices.builder().port(port.incrementAndGet()).services(new GreetingServiceImpl()).build();
ServiceCall service = microservices.dispatcher().create();
// call the service.
CompletableFuture<Message> future = service.invoke(Messages.builder().request(SERVICE_NAME, "greetingRequest").data(new GreetingRequest("joe")).build());
CountDownLatch timeLatch = new CountDownLatch(1);
future.whenComplete((result, ex) -> {
if (ex == null) {
// print the greeting.
System.out.println("test_local_async_greeting_return_GreetingResponse :" + result);
GreetingResponse data = result.data();
assertTrue(data.getResult().equals(" hello to: joe"));
} else {
// print the greeting.
System.out.println(ex);
}
timeLatch.countDown();
});
await(timeLatch, 3, TimeUnit.SECONDS);
microservices.shutdown().get();
}
use of io.scalecube.transport.Message in project scalecube by scalecube.
the class ServiceCallTest method test_remote_async_greeting_return_Message.
@Test
public void test_remote_async_greeting_return_Message() throws InterruptedException, ExecutionException {
// Create microservices cluster.
Microservices provider = Microservices.builder().port(port.incrementAndGet()).services(new GreetingServiceImpl()).build();
// Create microservices cluster.
Microservices consumer = Microservices.builder().port(port.incrementAndGet()).seeds(provider.cluster().address()).build();
ServiceCall service = consumer.dispatcher().create();
// call the service.
CompletableFuture<Message> future = service.invoke(Messages.builder().request(SERVICE_NAME, "greetingMessage").data(Message.builder().data("joe").build()).build());
CountDownLatch timeLatch = new CountDownLatch(1);
future.whenComplete((result, ex) -> {
if (ex == null) {
// print the greeting.
System.out.println("10. remote_async_greeting_return_Message :" + result.data());
// print the greeting.
assertTrue(result.data().equals(" hello to: joe"));
} else {
// print the greeting.
System.out.println("10 failed: " + ex);
assertTrue(result.data().equals(" hello to: joe"));
}
timeLatch.countDown();
});
await(timeLatch, 20, TimeUnit.SECONDS);
consumer.shutdown().get();
provider.shutdown().get();
}
Aggregations