boolean headersCollision) throws Exception { FakeClientSettings.Builder builder = new FakeClientSettings.Builder(); Duration watchdogCheckInterval = Duration.ofSeconds(11); builder.setExecutorProvider(executorProvider); builder.setTransportChannelProvider(transportProvider); builder.setCredentialsProvider(FixedCredentialsProvider.create(credentials)); builder.setWatchdogProvider(FixedWatchdogProvider.create(watchdog)); builder.setWatchdogCheckInterval(watchdogCheckInterval); builder.setClock(clock); builder.setHeaderProvider(headerProvider); builder.setInternalHeaderProvider(internalHeaderProvider); FakeClientSettings settings = builder.build(); ClientContext clientContext = ClientContext.create(settings);
@Test public void testBuilder() throws Exception { FakeClientSettings.Builder builder = new FakeClientSettings.Builder(); Duration watchdogCheckInterval = Duration.ofSeconds(13); builder.setExecutorProvider(executorProvider); builder.setTransportChannelProvider(transportProvider); builder.setCredentialsProvider(credentialsProvider); builder.setHeaderProvider(headerProvider); builder.setInternalHeaderProvider(internalHeaderProvider); builder.setClock(clock); builder.setWatchdogProvider(watchdogProvider); builder.setWatchdogCheckInterval(watchdogCheckInterval); Truth.assertThat(builder.getExecutorProvider()).isSameAs(executorProvider); Truth.assertThat(builder.getTransportChannelProvider()).isSameAs(transportProvider); Truth.assertThat(builder.getCredentialsProvider()).isSameAs(credentialsProvider); Truth.assertThat(builder.getClock()).isSameAs(clock); Truth.assertThat(builder.getHeaderProvider()).isSameAs(headerProvider); Truth.assertThat(builder.getInternalHeaderProvider()).isSameAs(internalHeaderProvider); Truth.assertThat(builder.getWatchdogProvider()).isSameAs(watchdogProvider); Truth.assertThat(builder.getWatchdogCheckInterval()).isSameAs(watchdogCheckInterval); String builderString = builder.toString(); Truth.assertThat(builderString).contains("executorProvider"); Truth.assertThat(builderString).contains("transportChannelProvider");
@Test public void testEmptyBuilder() throws Exception { FakeClientSettings.Builder builder = new FakeClientSettings.Builder(); Truth.assertThat(builder.getExecutorProvider()) .isInstanceOf(InstantiatingExecutorProvider.class); Truth.assertThat(builder.getTransportChannelProvider()).isNull(); Truth.assertThat(builder.getCredentialsProvider()).isInstanceOf(NoCredentialsProvider.class); Truth.assertThat(builder.getClock()).isInstanceOf(NanoClock.class); Truth.assertThat(builder.getHeaderProvider()).isInstanceOf(NoHeaderProvider.class); Truth.assertThat(builder.getInternalHeaderProvider()).isInstanceOf(NoHeaderProvider.class); Truth.assertThat(builder.getWatchdogProvider()) .isInstanceOf(InstantiatingWatchdogProvider.class); Truth.assertThat(builder.getWatchdogCheckInterval()).isGreaterThan(Duration.ZERO); FakeClientSettings settings = builder.build(); Truth.assertThat(settings.getExecutorProvider()).isSameAs(builder.getExecutorProvider()); Truth.assertThat(settings.getTransportChannelProvider()) .isSameAs(builder.getTransportChannelProvider()); Truth.assertThat(settings.getCredentialsProvider()).isSameAs(builder.getCredentialsProvider()); Truth.assertThat(settings.getClock()).isSameAs(builder.getClock()); Truth.assertThat(settings.getHeaderProvider()).isSameAs(builder.getHeaderProvider()); Truth.assertThat(settings.getInternalHeaderProvider()) .isSameAs(builder.getInternalHeaderProvider()); Truth.assertThat(settings.getWatchdogProvider()) .isInstanceOf(InstantiatingWatchdogProvider.class);
@Test public void testBuilderFromSettings() throws Exception { FakeClientSettings.Builder builder = new FakeClientSettings.Builder(); ExecutorProvider executorProvider = Mockito.mock(ExecutorProvider.class); TransportChannelProvider transportProvider = Mockito.mock(TransportChannelProvider.class); CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class); ApiClock clock = Mockito.mock(ApiClock.class); HeaderProvider headerProvider = Mockito.mock(HeaderProvider.class); HeaderProvider internalHeaderProvider = Mockito.mock(HeaderProvider.class); WatchdogProvider watchdogProvider = Mockito.mock(WatchdogProvider.class); Duration watchdogCheckInterval = Duration.ofSeconds(14); builder.setExecutorProvider(executorProvider); builder.setTransportChannelProvider(transportProvider); builder.setCredentialsProvider(credentialsProvider); builder.setClock(clock); builder.setHeaderProvider(headerProvider); builder.setInternalHeaderProvider(internalHeaderProvider); builder.setWatchdogProvider(watchdogProvider); builder.setWatchdogCheckInterval(watchdogCheckInterval); FakeClientSettings settings = builder.build(); FakeClientSettings.Builder newBuilder = new FakeClientSettings.Builder(settings); Truth.assertThat(newBuilder.getExecutorProvider()).isSameAs(executorProvider); Truth.assertThat(newBuilder.getTransportChannelProvider()).isSameAs(transportProvider); Truth.assertThat(newBuilder.getCredentialsProvider()).isSameAs(credentialsProvider); Truth.assertThat(newBuilder.getClock()).isSameAs(clock); Truth.assertThat(newBuilder.getHeaderProvider()).isSameAs(headerProvider); Truth.assertThat(newBuilder.getInternalHeaderProvider()).isSameAs(internalHeaderProvider); Truth.assertThat(newBuilder.getWatchdogProvider()).isSameAs(watchdogProvider); Truth.assertThat(newBuilder.getWatchdogCheckInterval()).isEqualTo(watchdogCheckInterval); }
@Test public void testBuilderFromClientContext() throws Exception { ApiClock clock = Mockito.mock(ApiClock.class); ApiCallContext callContext = FakeCallContext.createDefault(); Map<String, String> headers = Collections.singletonMap("spiffykey", "spiffyvalue"); Watchdog watchdog = Mockito.mock(Watchdog.class); Duration watchdogCheckInterval = Duration.ofSeconds(12); ClientContext clientContext = ClientContext.newBuilder() .setExecutor(Mockito.mock(ScheduledExecutorService.class)) .setTransportChannel(Mockito.mock(TransportChannel.class)) .setCredentials(Mockito.mock(Credentials.class)) .setClock(clock) .setDefaultCallContext(callContext) .setHeaders(headers) .setStreamWatchdog(watchdog) .setStreamWatchdogCheckInterval(watchdogCheckInterval) .build(); FakeClientSettings.Builder builder = new FakeClientSettings.Builder(clientContext); Truth.assertThat(builder.getExecutorProvider()).isInstanceOf(FixedExecutorProvider.class); Truth.assertThat(builder.getTransportChannelProvider()) .isInstanceOf(FixedTransportChannelProvider.class); Truth.assertThat(builder.getCredentialsProvider()).isInstanceOf(FixedCredentialsProvider.class); Truth.assertThat(builder.getClock()).isSameAs(clock); Truth.assertThat(builder.getHeaderProvider().getHeaders()) .containsEntry("spiffykey", "spiffyvalue"); Truth.assertThat(builder.getWatchdogProvider()).isInstanceOf(FixedWatchdogProvider.class); Truth.assertThat(builder.getWatchdogProvider().getWatchdog()).isSameAs(watchdog); Truth.assertThat(builder.getWatchdogCheckInterval()).isEqualTo(watchdogCheckInterval); }
@Override public ClientSettings.Builder toBuilder() { return new Builder(this); }