public void ClientCreatedWithEmulatorDetection() { Mock <SpannerClient> spannerClientMock = SetupExecuteStreamingSql(); var spannerClient = spannerClientMock.Object; var sessionPoolOptions = new SessionPoolOptions { MaintenanceLoopDelay = TimeSpan.Zero }; var sessionPoolManager = new SessionPoolManager( sessionPoolOptions, spannerClient.Settings.Logger, (_o, _s, _l) => { Assert.True(_o.UsesEmulator); return(Task.FromResult(spannerClient)); }); SpannerConnectionStringBuilder builder = new SpannerConnectionStringBuilder { DataSource = DatabaseName.Format(SpannerClientHelpers.ProjectId, SpannerClientHelpers.Instance, SpannerClientHelpers.Database), SessionPoolManager = sessionPoolManager, EmulatorDetection = EmulatorDetection.EmulatorOrProduction, EnvironmentVariableProvider = key => key == "SPANNER_EMULATOR_HOST" ? "localhost" : null }; var connection = new SpannerConnection(builder); var command = connection.CreateSelectCommand("SELECT * FROM FOO"); using (var reader = command.ExecuteReader()) { // Do nothing. } }
public void ClientCreatedWithEmulatorDetection() { Mock <SpannerClient> spannerClientMock = SpannerClientHelpers .CreateMockClient(Logger.DefaultLogger, MockBehavior.Strict); spannerClientMock .SetupBatchCreateSessionsAsync() .SetupExecuteStreamingSql(); var spannerClient = spannerClientMock.Object; var sessionPoolOptions = new SessionPoolOptions { MaintenanceLoopDelay = TimeSpan.Zero }; var sessionPoolManager = new SessionPoolManager( sessionPoolOptions, spannerClient.Settings.Logger, (_o, _s, _l) => { Assert.True(_o.UsesEmulator); return(Task.FromResult(spannerClient)); }); SpannerConnectionStringBuilder builder = new SpannerConnectionStringBuilder { DataSource = DatabaseName.Format(SpannerClientHelpers.ProjectId, SpannerClientHelpers.Instance, SpannerClientHelpers.Database), SessionPoolManager = sessionPoolManager, EmulatorDetection = EmulatorDetection.EmulatorOrProduction, EnvironmentVariableProvider = key => key == "SPANNER_EMULATOR_HOST" ? "localhost" : null }; var connection = new SpannerConnection(builder); var command = connection.CreateSelectCommand("SELECT * FROM FOO"); using (var reader = command.ExecuteReader()) { Assert.True(reader.HasRows); } spannerClientMock.Verify(client => client.ExecuteStreamingSql( It.IsAny <ExecuteSqlRequest>(), It.IsAny <CallSettings>()), Times.Once()); }
private SpannerConnection BuildSpannerConnection(Mock<SpannerClient> spannerClientMock) { var spannerClient = spannerClientMock.Object; var sessionPoolOptions = new SessionPoolOptions { MaintenanceLoopDelay = TimeSpan.Zero }; var sessionPoolManager = new SessionPoolManager(sessionPoolOptions, spannerClient.Settings.Logger, (_o, _s, _l) => Task.FromResult(spannerClient)); sessionPoolManager.SpannerSettings.Scheduler = spannerClient.Settings.Scheduler; sessionPoolManager.SpannerSettings.Clock = spannerClient.Settings.Clock; SpannerConnectionStringBuilder builder = new SpannerConnectionStringBuilder { DataSource = DatabaseName.Format(SpannerClientHelpers.ProjectId, SpannerClientHelpers.Instance, SpannerClientHelpers.Database), SessionPoolManager = sessionPoolManager }; return new SpannerConnection(builder); }