public static SessionName parse(String formattedString) { if (formattedString.isEmpty()) { return null; } Map<String, String> matchMap = PATH_TEMPLATE.validatedMatch( formattedString, "SessionName.parse: formattedString not in valid format"); return of( matchMap.get("project"), matchMap.get("instance"), matchMap.get("database"), matchMap.get("session")); }
@Test @SuppressWarnings("all") public void commitExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); try { SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); ByteString transactionId = ByteString.copyFromUtf8("28"); List<Mutation> mutations = new ArrayList<>(); client.commit(session, transactionId, mutations); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void rollbackExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); try { SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); ByteString transactionId = ByteString.copyFromUtf8("28"); client.rollback(session, transactionId); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } } }
@Test @SuppressWarnings("all") public void deleteSessionExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); try { SessionName name = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); client.deleteSession(name); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void getSessionExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); try { SessionName name = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); client.getSession(name); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void commitExceptionTest2() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); try { SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); TransactionOptions singleUseTransaction = TransactionOptions.newBuilder().build(); List<Mutation> mutations = new ArrayList<>(); client.commit(session, singleUseTransaction, mutations); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void beginTransactionExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); try { SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); TransactionOptions options = TransactionOptions.newBuilder().build(); client.beginTransaction(session, options); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void getSessionTest() { SessionName name2 = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); Session expectedResponse = Session.newBuilder().setName(name2.toString()).build(); mockSpanner.addResponse(expectedResponse); SessionName name = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); Session actualResponse = client.getSession(name); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); GetSessionRequest actualRequest = (GetSessionRequest) actualRequests.get(0); Assert.assertEquals(name, SessionName.parse(actualRequest.getName())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void rollbackTest() { Empty expectedResponse = Empty.newBuilder().build(); mockSpanner.addResponse(expectedResponse); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); ByteString transactionId = ByteString.copyFromUtf8("28"); client.rollback(session, transactionId); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); RollbackRequest actualRequest = (RollbackRequest) actualRequests.get(0); Assert.assertEquals(session, SessionName.parse(actualRequest.getSession())); Assert.assertEquals(transactionId, actualRequest.getTransactionId()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void deleteSessionTest() { Empty expectedResponse = Empty.newBuilder().build(); mockSpanner.addResponse(expectedResponse); SessionName name = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); client.deleteSession(name); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); DeleteSessionRequest actualRequest = (DeleteSessionRequest) actualRequests.get(0); Assert.assertEquals(name, SessionName.parse(actualRequest.getName())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void commitTest() { CommitResponse expectedResponse = CommitResponse.newBuilder().build(); mockSpanner.addResponse(expectedResponse); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); ByteString transactionId = ByteString.copyFromUtf8("28"); List<Mutation> mutations = new ArrayList<>(); CommitResponse actualResponse = client.commit(session, transactionId, mutations); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); CommitRequest actualRequest = (CommitRequest) actualRequests.get(0); Assert.assertEquals(session, SessionName.parse(actualRequest.getSession())); Assert.assertEquals(transactionId, actualRequest.getTransactionId()); Assert.assertEquals(mutations, actualRequest.getMutationsList()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void executeStreamingSqlTest() throws Exception { boolean chunkedValue = true; ByteString resumeToken = ByteString.copyFromUtf8("103"); PartialResultSet expectedResponse = PartialResultSet.newBuilder() .setChunkedValue(chunkedValue) .setResumeToken(resumeToken) .build(); mockSpanner.addResponse(expectedResponse); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); String sql = "sql114126"; ExecuteSqlRequest request = ExecuteSqlRequest.newBuilder().setSession(session.toString()).setSql(sql).build(); MockStreamObserver<PartialResultSet> responseObserver = new MockStreamObserver<>(); ServerStreamingCallable<ExecuteSqlRequest, PartialResultSet> callable = client.executeStreamingSqlCallable(); callable.serverStreamingCall(request, responseObserver); List<PartialResultSet> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void beginTransactionTest() { ByteString id = ByteString.copyFromUtf8("27"); Transaction expectedResponse = Transaction.newBuilder().setId(id).build(); mockSpanner.addResponse(expectedResponse); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); TransactionOptions options = TransactionOptions.newBuilder().build(); Transaction actualResponse = client.beginTransaction(session, options); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); BeginTransactionRequest actualRequest = (BeginTransactionRequest) actualRequests.get(0); Assert.assertEquals(session, SessionName.parse(actualRequest.getSession())); Assert.assertEquals(options, actualRequest.getOptions()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void createSessionTest() { SessionName name = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); Session expectedResponse = Session.newBuilder().setName(name.toString()).build(); mockSpanner.addResponse(expectedResponse); DatabaseName database = DatabaseName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]"); Session actualResponse = client.createSession(database); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); CreateSessionRequest actualRequest = (CreateSessionRequest) actualRequests.get(0); Assert.assertEquals(database, DatabaseName.parse(actualRequest.getDatabase())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void streamingReadTest() throws Exception { boolean chunkedValue = true; ByteString resumeToken = ByteString.copyFromUtf8("103"); PartialResultSet expectedResponse = PartialResultSet.newBuilder() .setChunkedValue(chunkedValue) .setResumeToken(resumeToken) .build(); mockSpanner.addResponse(expectedResponse); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); String table = "table110115790"; List<String> columns = new ArrayList<>(); KeySet keySet = KeySet.newBuilder().build(); ReadRequest request = ReadRequest.newBuilder() .setSession(session.toString()) .setTable(table) .addAllColumns(columns) .setKeySet(keySet) .build(); MockStreamObserver<PartialResultSet> responseObserver = new MockStreamObserver<>(); ServerStreamingCallable<ReadRequest, PartialResultSet> callable = client.streamingReadCallable(); callable.serverStreamingCall(request, responseObserver); List<PartialResultSet> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void commitTest2() { CommitResponse expectedResponse = CommitResponse.newBuilder().build(); mockSpanner.addResponse(expectedResponse); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); TransactionOptions singleUseTransaction = TransactionOptions.newBuilder().build(); List<Mutation> mutations = new ArrayList<>(); CommitResponse actualResponse = client.commit(session, singleUseTransaction, mutations); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); CommitRequest actualRequest = (CommitRequest) actualRequests.get(0); Assert.assertEquals(session, SessionName.parse(actualRequest.getSession())); Assert.assertEquals(singleUseTransaction, actualRequest.getSingleUseTransaction()); Assert.assertEquals(mutations, actualRequest.getMutationsList()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void executeStreamingSqlExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); String sql = "sql114126"; ExecuteSqlRequest request = ExecuteSqlRequest.newBuilder().setSession(session.toString()).setSql(sql).build(); MockStreamObserver<PartialResultSet> responseObserver = new MockStreamObserver<>(); ServerStreamingCallable<ExecuteSqlRequest, PartialResultSet> callable = client.executeStreamingSqlCallable(); callable.serverStreamingCall(request, responseObserver); try { List<PartialResultSet> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } }
@Test @SuppressWarnings("all") public void streamingReadExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpanner.addException(exception); SessionName session = SessionName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"); String table = "table110115790"; List<String> columns = new ArrayList<>(); KeySet keySet = KeySet.newBuilder().build(); ReadRequest request = ReadRequest.newBuilder() .setSession(session.toString()) .setTable(table) .addAllColumns(columns) .setKeySet(keySet) .build(); MockStreamObserver<PartialResultSet> responseObserver = new MockStreamObserver<>(); ServerStreamingCallable<ReadRequest, PartialResultSet> callable = client.streamingReadCallable(); callable.serverStreamingCall(request, responseObserver); try { List<PartialResultSet> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } }