|
73 | 73 | public class DatabaseAdminClientImplTest {
|
74 | 74 | private static final String PROJECT_ID = "my-project";
|
75 | 75 | private static final String INSTANCE_ID = "my-instance";
|
| 76 | + private static final String INSTANCE_ID_2 = "my-instance-2"; |
76 | 77 | private static final String INSTANCE_NAME = "projects/my-project/instances/my-instance";
|
77 | 78 | private static final String DB_ID = "my-db";
|
78 | 79 | private static final String DB_NAME = "projects/my-project/instances/my-instance/databases/my-db";
|
@@ -591,6 +592,41 @@ public void copyBackupWithBackupObject() throws ExecutionException, InterruptedE
|
591 | 592 | assertThat(op.get().getId().getName()).isEqualTo(BK_NAME);
|
592 | 593 | }
|
593 | 594 |
|
| 595 | + @Test |
| 596 | + public void copyBackupWithBackupObject_onDifferentInstances() |
| 597 | + throws ExecutionException, InterruptedException { |
| 598 | + Backup testProto = |
| 599 | + Backup.newBuilder() |
| 600 | + .setName(BK_NAME) |
| 601 | + .setDatabase("projects/my-project/instances/my-instance-2/databases/my-db") |
| 602 | + .setState(Backup.State.READY) |
| 603 | + .build(); |
| 604 | + final OperationFuture<Backup, CopyBackupMetadata> rawOperationFuture = |
| 605 | + OperationFutureUtil.immediateOperationFuture( |
| 606 | + "copyBackup", testProto, CopyBackupMetadata.getDefaultInstance()); |
| 607 | + final Timestamp expireTime = |
| 608 | + Timestamp.ofTimeMicroseconds( |
| 609 | + TimeUnit.MILLISECONDS.toMicros(System.currentTimeMillis()) |
| 610 | + + TimeUnit.HOURS.toMicros(28)); |
| 611 | + final Timestamp versionTime = |
| 612 | + Timestamp.ofTimeMicroseconds( |
| 613 | + TimeUnit.MILLISECONDS.toMicros(System.currentTimeMillis()) - TimeUnit.DAYS.toMicros(2)); |
| 614 | + final com.google.cloud.spanner.Backup requestBackup = |
| 615 | + client |
| 616 | + .newBackupBuilder(BackupId.of(PROJECT_ID, INSTANCE_ID_2, BK_ID)) |
| 617 | + .setExpireTime(expireTime) |
| 618 | + .setVersionTime(versionTime) |
| 619 | + .build(); |
| 620 | + BackupId sourceBackupId = BackupId.of(PROJECT_ID, INSTANCE_ID, BK_ID); |
| 621 | + |
| 622 | + when(rpc.copyBackup(sourceBackupId, requestBackup)).thenReturn(rawOperationFuture); |
| 623 | + |
| 624 | + final OperationFuture<com.google.cloud.spanner.Backup, CopyBackupMetadata> op = |
| 625 | + client.copyBackup(sourceBackupId, requestBackup); |
| 626 | + assertThat(op.isDone()).isTrue(); |
| 627 | + assertThat(op.get().getId().getName()).isEqualTo(BK_NAME); |
| 628 | + } |
| 629 | + |
594 | 630 | @Test
|
595 | 631 | public void copyEncryptedBackup() throws ExecutionException, InterruptedException {
|
596 | 632 | final OperationFuture<Backup, CopyBackupMetadata> rawOperationFuture =
|
|
0 commit comments