Skip to content

Commit

Permalink
test: add more unit tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
arpan14 committed Feb 13, 2024
1 parent 543fed9 commit 53d4c7b
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThrows;
import static org.mockito.Mockito.when;

Expand All @@ -29,9 +30,16 @@
import com.google.cloud.grpc.GrpcTransportOptions;
import com.google.cloud.spanner.SpannerException.DoNotConstructDirectly;
import com.google.cloud.spanner.SpannerImpl.ClosedException;
import com.google.cloud.spanner.admin.database.v1.DatabaseAdminClient;
import com.google.cloud.spanner.admin.database.v1.stub.DatabaseAdminStub;
import com.google.cloud.spanner.admin.database.v1.stub.DatabaseAdminStubSettings;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminClient;
import com.google.cloud.spanner.admin.instance.v1.stub.InstanceAdminStub;
import com.google.cloud.spanner.admin.instance.v1.stub.InstanceAdminStubSettings;
import com.google.cloud.spanner.spi.v1.SpannerRpc;
import com.google.spanner.v1.ExecuteSqlRequest.QueryOptions;
import io.opentelemetry.api.OpenTelemetry;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Collections;
Expand All @@ -55,6 +63,10 @@
public class SpannerImplTest {
@Mock private SpannerRpc rpc;
@Mock private SpannerOptions spannerOptions;
@Mock private DatabaseAdminStubSettings databaseAdminStubSettings;
@Mock private DatabaseAdminStub databaseAdminStub;
@Mock private InstanceAdminStubSettings instanceAdminStubSettings;
@Mock private InstanceAdminStub instanceAdminStub;
private SpannerImpl impl;

@Captor ArgumentCaptor<Map<SpannerRpc.Option, Object>> options;
Expand Down Expand Up @@ -286,6 +298,66 @@ public void testClosedException() {
assertThat(sw.toString()).contains("closeSpannerAndIncludeStacktrace");
}

@Test
public void testCreateDatabaseAdminClient_whenNullAdminSettings_assertPreconditionFailure() {
Spanner spanner = new SpannerImpl(rpc, spannerOptions);
assertThrows(NullPointerException.class, spanner::createDatabaseAdminClient);
}

@Test
public void testCreateDatabaseAdminClient_whenMockAdminSettings_assertMethodInvocation()
throws IOException {
when(rpc.getDatabaseAdminStubSettings()).thenReturn(databaseAdminStubSettings);
when(databaseAdminStubSettings.createStub()).thenReturn(databaseAdminStub);

Spanner spanner = new SpannerImpl(rpc, spannerOptions);

DatabaseAdminClient databaseAdminClient = spanner.createDatabaseAdminClient();
assertNotNull(databaseAdminClient);
}

@Test(expected = SpannerException.class)
public void testCreateDatabaseAdminClient_whenMockAdminSettings_assertException()
throws IOException {
when(rpc.getDatabaseAdminStubSettings()).thenReturn(databaseAdminStubSettings);
when(databaseAdminStubSettings.createStub()).thenThrow(IOException.class);

Spanner spanner = new SpannerImpl(rpc, spannerOptions);

DatabaseAdminClient databaseAdminClient = spanner.createDatabaseAdminClient();
assertNotNull(databaseAdminClient);
}

@Test
public void testCreateInstanceAdminClient_whenNullAdminSettings_assertPreconditionFailure() {
Spanner spanner = new SpannerImpl(rpc, spannerOptions);
assertThrows(NullPointerException.class, spanner::createInstanceAdminClient);
}

@Test
public void testCreateInstanceAdminClient_whenMockAdminSettings_assertMethodInvocation()
throws IOException {
when(rpc.getInstanceAdminStubSettings()).thenReturn(instanceAdminStubSettings);
when(instanceAdminStubSettings.createStub()).thenReturn(instanceAdminStub);

Spanner spanner = new SpannerImpl(rpc, spannerOptions);

InstanceAdminClient instanceAdminClient = spanner.createInstanceAdminClient();
assertNotNull(instanceAdminClient);
}

@Test(expected = SpannerException.class)
public void testCreateInstanceAdminClient_whenMockAdminSettings_assertException()
throws IOException {
when(rpc.getInstanceAdminStubSettings()).thenReturn(instanceAdminStubSettings);
when(instanceAdminStubSettings.createStub()).thenThrow(IOException.class);

Spanner spanner = new SpannerImpl(rpc, spannerOptions);

InstanceAdminClient instanceAdminClient = spanner.createInstanceAdminClient();
assertNotNull(instanceAdminClient);
}

private void closeSpannerAndIncludeStacktrace(Spanner spanner) {
spanner.close();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,37 @@ public void testCustomClientLibToken_alsoContainsDefaultToken() {
Objects.requireNonNull(lastSeenHeaders.get(key)).contains("gl-java/"));
}

@Test
public void testGetDatabaseAdminStubSettings_whenStubInitialized_assertNonNullClientSetting() {
SpannerOptions options = createSpannerOptions();
GapicSpannerRpc rpc = new GapicSpannerRpc(options, true);

assertNotNull(rpc.getDatabaseAdminStubSettings());

rpc.shutdown();
}

@Test
public void testGetInstanceAdminStubSettings_whenStubInitialized_assertNonNullClientSetting() {
SpannerOptions options = createSpannerOptions();
GapicSpannerRpc rpc = new GapicSpannerRpc(options, true);

assertNotNull(rpc.getInstanceAdminStubSettings());

rpc.shutdown();
}

@Test
public void testAdminStubSettings_whenStubNotInitialized_assertNullClientSetting() {
SpannerOptions options = createSpannerOptions();
GapicSpannerRpc rpc = new GapicSpannerRpc(options, false);

assertNull(rpc.getDatabaseAdminStubSettings());
assertNull(rpc.getInstanceAdminStubSettings());

rpc.shutdown();
}

private SpannerOptions createSpannerOptions() {
String endpoint = address.getHostString() + ":" + server.getPort();
return SpannerOptions.newBuilder()
Expand Down

0 comments on commit 53d4c7b

Please sign in to comment.