Search in sources :

Example 1 with InternalServer

use of io.grpc.internal.InternalServer in project grpc-java by grpc.

the class AbstractTransportTest method serverAlreadyListening.

@Test
public void serverAlreadyListening() throws Exception {
    client = null;
    server.start(serverListener);
    InternalServer server2 = newServer(server);
    thrown.expect(IOException.class);
    server2.start(new MockServerListener());
}
Also used : InternalServer(io.grpc.internal.InternalServer) Test(org.junit.Test)

Example 2 with InternalServer

use of io.grpc.internal.InternalServer in project grpc-java by grpc.

the class ProtocolNegotiatorsTest method expectHandshake.

private Object expectHandshake(ChannelCredentials channelCreds, ServerCredentials serverCreds, boolean expectSuccess) throws Exception {
    MockServerListener serverListener = new MockServerListener();
    ClientTransportFactory clientFactory = NettyChannelBuilder.forAddress("localhost", 0, channelCreds).buildTransportFactory();
    InternalServer server = NettyServerBuilder.forPort(0, serverCreds).buildTransportServers(Collections.<ServerStreamTracer.Factory>emptyList());
    server.start(serverListener);
    ManagedClientTransport.Listener clientTransportListener = mock(ManagedClientTransport.Listener.class);
    ManagedClientTransport client = clientFactory.newClientTransport(server.getListenSocketAddress(), new ClientTransportFactory.ClientTransportOptions().setAuthority(TestUtils.TEST_SERVER_HOST), mock(ChannelLogger.class));
    callMeMaybe(client.start(clientTransportListener));
    Object result;
    if (expectSuccess) {
        verify(clientTransportListener, timeout(TIMEOUT_SECONDS * 1000)).transportReady();
        InternalChannelz.SocketStats stats = serverListener.transports.poll().getStats().get();
        assertThat(stats.security).isNotNull();
        assertThat(stats.security.tls).isNotNull();
        result = stats.security.tls;
    } else {
        ArgumentCaptor<Status> captor = ArgumentCaptor.forClass(Status.class);
        verify(clientTransportListener, timeout(TIMEOUT_SECONDS * 1000)).transportShutdown(captor.capture());
        result = captor.getValue();
    }
    client.shutdownNow(Status.UNAVAILABLE.withDescription("trash it"));
    server.shutdown();
    assertTrue(serverListener.waitForShutdown(TIMEOUT_SECONDS * 1000, TimeUnit.MILLISECONDS));
    verify(clientTransportListener, timeout(TIMEOUT_SECONDS * 1000)).transportTerminated();
    clientFactory.close();
    return result;
}
Also used : Status(io.grpc.Status) ServerStreamTracer(io.grpc.ServerStreamTracer) ClientTransportFactory(io.grpc.internal.ClientTransportFactory) ManagedClientTransport(io.grpc.internal.ManagedClientTransport) InternalChannelz(io.grpc.InternalChannelz) InternalServer(io.grpc.internal.InternalServer) ChannelLogger(io.grpc.ChannelLogger) NoopChannelLogger(io.grpc.internal.TestUtils.NoopChannelLogger)

Aggregations

InternalServer (io.grpc.internal.InternalServer)2 ChannelLogger (io.grpc.ChannelLogger)1 InternalChannelz (io.grpc.InternalChannelz)1 ServerStreamTracer (io.grpc.ServerStreamTracer)1 Status (io.grpc.Status)1 ClientTransportFactory (io.grpc.internal.ClientTransportFactory)1 ManagedClientTransport (io.grpc.internal.ManagedClientTransport)1 NoopChannelLogger (io.grpc.internal.TestUtils.NoopChannelLogger)1 Test (org.junit.Test)1