use of io.scalecube.services.sut.GreetingResponse in project scalecube by scalecube.
the class ServiceRemoteTest method test_remote_bidi_greeting_expect_GreetingResponse.
@Test
public void test_remote_bidi_greeting_expect_GreetingResponse() {
// get a proxy to the service api.
GreetingService service = createProxy();
Sinks.Many<GreetingRequest> requests = Sinks.many().multicast().onBackpressureBuffer();
// call the service.
requests.emitNext(new GreetingRequest("joe-1"), FAIL_FAST);
requests.emitNext(new GreetingRequest("joe-2"), FAIL_FAST);
requests.emitNext(new GreetingRequest("joe-3"), FAIL_FAST);
requests.emitComplete(FAIL_FAST);
// call the service.
Flux<GreetingResponse> responses = service.bidiGreeting(requests.asFlux().onBackpressureBuffer());
StepVerifier.create(responses).expectNextMatches(resp -> resp.getResult().equals(" hello to: joe-1")).expectNextMatches(resp -> resp.getResult().equals(" hello to: joe-2")).expectNextMatches(resp -> resp.getResult().equals(" hello to: joe-3")).expectComplete().verify(Duration.ofSeconds(3));
}
use of io.scalecube.services.sut.GreetingResponse in project scalecube by scalecube.
the class ServiceRemoteTest method test_remote_bidi_greeting_message_expect_GreetingResponse.
@Test
public void test_remote_bidi_greeting_message_expect_GreetingResponse() {
// get a proxy to the service api.
GreetingService service = createProxy();
Sinks.Many<GreetingRequest> requests = Sinks.many().unicast().onBackpressureBuffer();
// call the service.
Flux<GreetingResponse> responses = service.bidiGreetingMessage(requests.asFlux().onBackpressureBuffer().map(request -> ServiceMessage.builder().data(request).build())).map(ServiceMessage::data);
StepVerifier.create(responses).then(() -> requests.emitNext(new GreetingRequest("joe-1"), FAIL_FAST)).expectNextMatches(resp -> resp.getResult().equals(" hello to: joe-1")).then(() -> requests.emitNext(new GreetingRequest("joe-2"), FAIL_FAST)).expectNextMatches(resp -> resp.getResult().equals(" hello to: joe-2")).then(() -> requests.emitNext(new GreetingRequest("joe-3"), FAIL_FAST)).expectNextMatches(resp -> resp.getResult().equals(" hello to: joe-3")).then(() -> requests.emitComplete(FAIL_FAST)).expectComplete().verify(Duration.ofSeconds(3));
}
use of io.scalecube.services.sut.GreetingResponse in project scalecube by scalecube.
the class ServiceLocalTest method test_local_bidi_greeting_message_expect_NotAuthorized.
@Test
public void test_local_bidi_greeting_message_expect_NotAuthorized() {
// get a proxy to the service api.
GreetingService service = createProxy(microservices);
Sinks.Many<GreetingRequest> requests = Sinks.many().multicast().directBestEffort();
// call the service.
Flux<GreetingResponse> responses = service.bidiGreetingNotAuthorizedMessage(requests.asFlux().onBackpressureBuffer().map(request -> ServiceMessage.builder().data(request).build())).map(ServiceMessage::data);
StepVerifier.create(responses).then(() -> requests.emitNext(new GreetingRequest("joe-1"), FAIL_FAST)).expectErrorMessage("Not authorized").verify(Duration.ofSeconds(3));
}
use of io.scalecube.services.sut.GreetingResponse in project scalecube by scalecube.
the class ServiceRemoteTest method test_remote_greeting_message.
@Test
void test_remote_greeting_message() {
GreetingService service = createProxy();
ServiceMessage request = ServiceMessage.builder().data(new GreetingRequest("joe")).build();
// using proxy
StepVerifier.create(service.greetingMessage(request)).assertNext(message -> {
assertEquals(GreetingResponse.class, message.data().getClass());
GreetingResponse resp = message.data();
assertEquals("1", resp.sender());
assertEquals("hello to: joe", resp.getResult());
}).expectComplete().verify(TIMEOUT);
StepVerifier.create(service.greetingMessage2(request)).assertNext(resp -> {
assertEquals("1", resp.sender());
assertEquals("hello to: joe", resp.getResult());
}).expectComplete().verify(TIMEOUT);
// using serviceCall directly
ServiceCall serviceCall = gateway.call();
StepVerifier.create(serviceCall.requestOne(ServiceMessage.from(request).qualifier("v1/greetings/greetingMessage").build(), GreetingResponse.class)).assertNext(message -> {
assertEquals(GreetingResponse.class, message.data().getClass());
GreetingResponse resp = message.data();
assertEquals("1", resp.sender());
assertEquals("hello to: joe", resp.getResult());
}).expectComplete().verify(TIMEOUT);
StepVerifier.create(serviceCall.requestOne(ServiceMessage.from(request).qualifier("v1/greetings/greetingMessage2").build(), GreetingResponse.class)).assertNext(message -> {
assertEquals(GreetingResponse.class, message.data().getClass());
GreetingResponse resp = message.data();
assertEquals("1", resp.sender());
assertEquals("hello to: joe", resp.getResult());
}).expectComplete().verify(TIMEOUT);
}
use of io.scalecube.services.sut.GreetingResponse in project scalecube by scalecube.
the class ServiceRemoteTest method test_remote_greeting_request_timeout_expires.
@Test
public void test_remote_greeting_request_timeout_expires() {
// get a proxy to the service api.
GreetingService service = createProxy();
// call the service.
Publisher<GreetingResponse> result = service.greetingRequestTimeout(new GreetingRequest("joe", Duration.ofSeconds(4)));
Mono.from(result).doOnError(success -> {
// print the greeting.
System.out.println("remote_greeting_request_timeout_expires : " + success);
assertTrue(success instanceof TimeoutException);
});
}
Aggregations