use of com.datastax.oss.protocol.internal.response.Ready in project java-driver by datastax.
the class ProtocolInitHandlerTest method should_initialize_with_keyspace.
@Test
public void should_initialize_with_keyspace() {
DriverChannelOptions options = DriverChannelOptions.builder().withKeyspace(CqlIdentifier.fromCql("ks")).build();
channel.pipeline().addLast(ChannelFactory.INIT_HANDLER_NAME, new ProtocolInitHandler(internalDriverContext, DefaultProtocolVersion.V4, null, END_POINT, options, heartbeatHandler, false));
ChannelFuture connectFuture = channel.connect(new InetSocketAddress("localhost", 9042));
writeInboundFrame(readOutboundFrame(), new Ready());
writeInboundFrame(readOutboundFrame(), TestResponses.clusterNameResponse("someClusterName"));
Frame requestFrame = readOutboundFrame();
assertThat(requestFrame.message).isInstanceOf(Query.class);
assertThat(((Query) requestFrame.message).query).isEqualTo("USE \"ks\"");
writeInboundFrame(requestFrame, new SetKeyspace("ks"));
assertThat(connectFuture).isSuccess();
}
use of com.datastax.oss.protocol.internal.response.Ready in project java-driver by datastax.
the class ProtocolInitHandlerTest method should_initialize_with_events.
@Test
public void should_initialize_with_events() {
List<String> eventTypes = ImmutableList.of("foo", "bar");
EventCallback eventCallback = mock(EventCallback.class);
DriverChannelOptions driverChannelOptions = DriverChannelOptions.builder().withEvents(eventTypes, eventCallback).build();
channel.pipeline().addLast(ChannelFactory.INIT_HANDLER_NAME, new ProtocolInitHandler(internalDriverContext, DefaultProtocolVersion.V4, null, END_POINT, driverChannelOptions, heartbeatHandler, false));
ChannelFuture connectFuture = channel.connect(new InetSocketAddress("localhost", 9042));
writeInboundFrame(readOutboundFrame(), new Ready());
writeInboundFrame(readOutboundFrame(), TestResponses.clusterNameResponse("someClusterName"));
Frame requestFrame = readOutboundFrame();
assertThat(requestFrame.message).isInstanceOf(Register.class);
assertThat(((Register) requestFrame.message).eventTypes).containsExactly("foo", "bar");
writeInboundFrame(requestFrame, new Ready());
assertThat(connectFuture).isSuccess();
}
use of com.datastax.oss.protocol.internal.response.Ready in project java-driver by datastax.
the class ChannelFactoryClusterNameTest method should_set_cluster_name_from_first_connection.
@Test
public void should_set_cluster_name_from_first_connection() {
// Given
when(defaultProfile.isDefined(DefaultDriverOption.PROTOCOL_VERSION)).thenReturn(false);
when(protocolVersionRegistry.highestNonBeta()).thenReturn(DefaultProtocolVersion.V4);
ChannelFactory factory = newChannelFactory();
// When
CompletionStage<DriverChannel> channelFuture = factory.connect(SERVER_ADDRESS, DriverChannelOptions.DEFAULT, NoopNodeMetricUpdater.INSTANCE);
writeInboundFrame(readOutboundFrame(), TestResponses.supportedResponse("mock_key", "mock_value"));
writeInboundFrame(readOutboundFrame(), new Ready());
writeInboundFrame(readOutboundFrame(), TestResponses.clusterNameResponse("mockClusterName"));
// Then
assertThatStage(channelFuture).isSuccess();
assertThat(factory.getClusterName()).isEqualTo("mockClusterName");
}
use of com.datastax.oss.protocol.internal.response.Ready in project java-driver by datastax.
the class ChannelFactorySupportedOptionsTest method should_query_supported_options_on_first_channel.
@Test
public void should_query_supported_options_on_first_channel() throws Throwable {
// Given
when(defaultProfile.isDefined(DefaultDriverOption.PROTOCOL_VERSION)).thenReturn(false);
when(protocolVersionRegistry.highestNonBeta()).thenReturn(DefaultProtocolVersion.V4);
ChannelFactory factory = newChannelFactory();
// When
CompletionStage<DriverChannel> channelFuture1 = factory.connect(SERVER_ADDRESS, DriverChannelOptions.DEFAULT, NoopNodeMetricUpdater.INSTANCE);
writeInboundFrame(readOutboundFrame(), TestResponses.supportedResponse("mock_key", "mock_value"));
writeInboundFrame(readOutboundFrame(), new Ready());
writeInboundFrame(readOutboundFrame(), TestResponses.clusterNameResponse("mockClusterName"));
// Then
assertThatStage(channelFuture1).isSuccess();
DriverChannel channel1 = channelFuture1.toCompletableFuture().get();
assertThat(channel1.getOptions()).containsKey("mock_key");
assertThat(channel1.getOptions().get("mock_key")).containsOnly("mock_value");
// When
CompletionStage<DriverChannel> channelFuture2 = factory.connect(SERVER_ADDRESS, DriverChannelOptions.DEFAULT, NoopNodeMetricUpdater.INSTANCE);
writeInboundFrame(readOutboundFrame(), new Ready());
writeInboundFrame(readOutboundFrame(), TestResponses.clusterNameResponse("mockClusterName"));
// Then
assertThatStage(channelFuture2).isSuccess();
DriverChannel channel2 = channelFuture2.toCompletableFuture().get();
assertThat(channel2.getOptions()).isNull();
}
use of com.datastax.oss.protocol.internal.response.Ready in project java-driver by datastax.
the class ChannelFactoryTestBase method completeSimpleChannelInit.
/**
* Simulate the sequence of roundtrips to initialize a simple channel without authentication or
* keyspace (avoids repeating it in subclasses).
*/
protected void completeSimpleChannelInit() {
Frame requestFrame = readOutboundFrame();
assertThat(requestFrame.message).isInstanceOf(Options.class);
writeInboundFrame(requestFrame, TestResponses.supportedResponse("mock_key", "mock_value"));
requestFrame = readOutboundFrame();
assertThat(requestFrame.message).isInstanceOf(Startup.class);
writeInboundFrame(requestFrame, new Ready());
requestFrame = readOutboundFrame();
writeInboundFrame(requestFrame, TestResponses.clusterNameResponse("mockClusterName"));
}
Aggregations