/** * * * <pre> * The list of requested sessions. * </pre> * * <code>repeated .google.spanner.v1.Session sessions = 1;</code> */ public Builder addSessions(int index, com.google.spanner.v1.Session.Builder builderForValue) { if (sessionsBuilder_ == null) { ensureSessionsIsMutable(); sessions_.add(index, builderForValue.build()); onChanged(); } else { sessionsBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
@Test public void createAndCloseSession() { Map<String, String> labels = new HashMap<>(); labels.put("env", "dev"); Mockito.when(spannerOptions.getSessionLabels()).thenReturn(labels); String dbName = "projects/p1/instances/i1/databases/d1"; String sessionName = dbName + "/sessions/s1"; DatabaseId db = DatabaseId.of(dbName); com.google.spanner.v1.Session sessionProto = com.google.spanner.v1.Session.newBuilder() .setName(sessionName) .putAllLabels(labels) .build(); Mockito.when(rpc.createSession(Mockito.eq(dbName), Mockito.eq(labels), options.capture())) .thenReturn(sessionProto); Session session = impl.createSession(db); assertThat(session.getName()).isEqualTo(sessionName); session.close(); // The same channelHint is passed for deleteSession (contained in "options"). Mockito.verify(rpc).deleteSession(sessionName, options.getValue()); }
input.readMessage(com.google.spanner.v1.Session.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(session_); session_ = subBuilder.buildPartial();
@Override public Session createSession( String databaseName, @Nullable Map<String, String> labels, @Nullable Map<Option, ?> options) throws SpannerException { CreateSessionRequest.Builder requestBuilder = CreateSessionRequest.newBuilder().setDatabase(databaseName); if (labels != null && !labels.isEmpty()) { Session.Builder session = Session.newBuilder().putAllLabels(labels); requestBuilder.setSession(session); } CreateSessionRequest request = requestBuilder.build(); GrpcCallContext context = newCallContext(options, databaseName); return get(spannerStub.createSessionCallable().futureCall(request, context)); }
@Test @SuppressWarnings("all") public void listSessionsTest() { String nextPageToken = ""; Session sessionsElement = Session.newBuilder().build(); List<Session> sessions = Arrays.asList(sessionsElement); ListSessionsResponse expectedResponse = ListSessionsResponse.newBuilder() .setNextPageToken(nextPageToken) .addAllSessions(sessions) .build(); mockSpanner.addResponse(expectedResponse); String formattedDatabase = DatabaseName.format("[PROJECT]", "[INSTANCE]", "[DATABASE]"); ListSessionsPagedResponse pagedListResponse = client.listSessions(formattedDatabase); List<Session> resources = Lists.newArrayList(pagedListResponse.iterateAll()); Assert.assertEquals(1, resources.size()); Assert.assertEquals(expectedResponse.getSessionsList().get(0), resources.get(0)); List<GeneratedMessageV3> actualRequests = mockSpanner.getRequests(); Assert.assertEquals(1, actualRequests.size()); ListSessionsRequest actualRequest = (ListSessionsRequest) actualRequests.get(0); Assert.assertEquals(formattedDatabase, actualRequest.getDatabase()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
/** * * * <pre> * Output only. The approximate timestamp when the session is last used. It is * typically earlier than the actual last use time. * </pre> * * <code>.google.protobuf.Timestamp approximate_last_use_time = 4;</code> */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> getApproximateLastUseTimeFieldBuilder() { if (approximateLastUseTimeBuilder_ == null) { approximateLastUseTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( getApproximateLastUseTime(), getParentForChildren(), isClean()); approximateLastUseTime_ = null; } return approximateLastUseTimeBuilder_; }
/** * * * <pre> * The session to create. * </pre> * * <code>.google.spanner.v1.Session session = 2;</code> */ public Builder mergeSession(com.google.spanner.v1.Session value) { if (sessionBuilder_ == null) { if (session_ != null) { session_ = com.google.spanner.v1.Session.newBuilder(session_).mergeFrom(value).buildPartial(); } else { session_ = value; } onChanged(); } else { sessionBuilder_.mergeFrom(value); } return this; } /**
/** * * * <pre> * Output only. The timestamp when the session is created. * </pre> * * <code>.google.protobuf.Timestamp create_time = 3;</code> */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> getCreateTimeFieldBuilder() { if (createTimeBuilder_ == null) { createTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( getCreateTime(), getParentForChildren(), isClean()); createTime_ = null; } return createTimeBuilder_; }
@Test public void testBatchReadOnlyTxnWithBound() throws Exception { Session sessionProto = Session.newBuilder().setName(SESSION_NAME).build(); when(gapicRpc.createSession( eq(DB_NAME), (Map<String, String>) anyMap(), optionsCaptor.capture())) .thenReturn(sessionProto); com.google.protobuf.Timestamp timestamp = Timestamps.parse(TIMESTAMP); Transaction txnMetadata = Transaction.newBuilder().setId(TXN_ID).setReadTimestamp(timestamp).build(); when(spannerOptions.getSpannerRpcV1()).thenReturn(gapicRpc); when(gapicRpc.beginTransaction(Mockito.<BeginTransactionRequest>any(), optionsCaptor.capture())) .thenReturn(txnMetadata); BatchReadOnlyTransaction batchTxn = client.batchReadOnlyTransaction(TimestampBound.strong()); assertThat(batchTxn.getBatchTransactionId().getSessionId()).isEqualTo(SESSION_NAME); assertThat(batchTxn.getBatchTransactionId().getTransactionId()).isEqualTo(TXN_ID); Timestamp t = Timestamp.parseTimestamp(TIMESTAMP); assertThat(batchTxn.getReadTimestamp()).isEqualTo(t); assertThat(batchTxn.getReadTimestamp()) .isEqualTo(batchTxn.getBatchTransactionId().getTimestamp()); }
@Before public void setUp() { MockitoAnnotations.initMocks(this); SpannerImpl spanner = new SpannerImpl(rpc, 1, spannerOptions); String dbName = "projects/p1/instances/i1/databases/d1"; String sessionName = dbName + "/sessions/s1"; DatabaseId db = DatabaseId.of(dbName); Session sessionProto = Session.newBuilder().setName(sessionName).build(); Mockito.when( rpc.createSession( Mockito.eq(dbName), Mockito.anyMapOf(String.class, String.class), optionsCaptor.capture())) .thenReturn(sessionProto); session = spanner.createSession(db); // We expect the same options, "options", on all calls on "session". options = optionsCaptor.getValue(); Mockito.reset(rpc); }
/** * * * <pre> * The session to create. * </pre> * * <code>.google.spanner.v1.Session session = 2;</code> */ public Builder setSession(com.google.spanner.v1.Session.Builder builderForValue) { if (sessionBuilder_ == null) { session_ = builderForValue.build(); onChanged(); } else { sessionBuilder_.setMessage(builderForValue.build()); } return this; } /**
/** * * * <pre> * The list of requested sessions. * </pre> * * <code>repeated .google.spanner.v1.Session sessions = 1;</code> */ public Builder addSessions(com.google.spanner.v1.Session.Builder builderForValue) { if (sessionsBuilder_ == null) { ensureSessionsIsMutable(); sessions_.add(builderForValue.build()); onChanged(); } else { sessionsBuilder_.addMessage(builderForValue.build()); } return this; } /**
/** * * * <pre> * The list of requested sessions. * </pre> * * <code>repeated .google.spanner.v1.Session sessions = 1;</code> */ public Builder setSessions(int index, com.google.spanner.v1.Session.Builder builderForValue) { if (sessionsBuilder_ == null) { ensureSessionsIsMutable(); sessions_.set(index, builderForValue.build()); onChanged(); } else { sessionsBuilder_.setMessage(index, builderForValue.build()); } return this; } /**
@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 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())); }
/** * * * <pre> * Output only. The approximate timestamp when the session is last used. It is * typically earlier than the actual last use time. * </pre> * * <code>.google.protobuf.Timestamp approximate_last_use_time = 4;</code> */ public com.google.protobuf.Timestamp.Builder getApproximateLastUseTimeBuilder() { onChanged(); return getApproximateLastUseTimeFieldBuilder().getBuilder(); } /**
@Override public Session createSession( String databaseName, @Nullable Map<String, String> labels, @Nullable Map<Option, ?> options) throws SpannerException { CreateSessionRequest.Builder requestBuilder = CreateSessionRequest.newBuilder().setDatabase(databaseName); if (labels != null && !labels.isEmpty()) { Session.Builder session = Session.newBuilder().putAllLabels(labels); requestBuilder.setSession(session); } CreateSessionRequest request = requestBuilder.build(); GrpcCallContext context = newCallContext(options, databaseName); return get(spannerStub.createSessionCallable().futureCall(request, context)); }
/** * * * <pre> * Output only. The timestamp when the session is created. * </pre> * * <code>.google.protobuf.Timestamp create_time = 3;</code> */ public com.google.protobuf.Timestamp.Builder getCreateTimeBuilder() { onChanged(); return getCreateTimeFieldBuilder().getBuilder(); } /**
/** Use {@link #getLabelsMap()} instead. */ @java.lang.Deprecated public java.util.Map<java.lang.String, java.lang.String> getLabels() { return getLabelsMap(); } /**