1818
1919import static org .junit .Assert .*;
2020
21+ import com .google .api .gax .core .FixedCredentialsProvider ;
2122import com .google .auth .oauth2 .GoogleCredentials ;
2223import com .google .auth .oauth2 .ServiceAccountCredentials ;
2324import com .google .cloud .spanner .*;
24- import com .google .cloud .spanner .admin .database .v1 .DatabaseAdminClient ;
25+ import com .google .cloud .spanner .admin .instance .v1 .InstanceAdminClient ;
2526import com .google .cloud .spanner .connection .MutableCredentials ;
26- import com .google .spanner .admin .database .v1 .Database ;
27- import com .google .spanner .admin .database .v1 .InstanceName ;
27+ import com .google .spanner .admin .instance .v1 .ProjectName ;
2828import java .io .IOException ;
2929import java .io .InputStream ;
30- import java .util . Collections ;
31- import java .util . List ;
30+ import java .nio . file . Files ;
31+ import java .nio . file . Paths ;
3232import org .junit .Test ;
3333import org .junit .experimental .categories .Category ;
3434import org .junit .runner .RunWith ;
@@ -44,29 +44,33 @@ public class ITMutableCredentialsTest {
4444
4545 @ Test
4646 public void testMutableCredentialsUpdateAuthorizationForRunningClient () throws IOException {
47-
47+ System . out . println ( "property" + System . getenv ( "GOOGLE_ACCOUNT_CREDENTIALS" ));
4848 GoogleCredentials missingPermissionCredentials ;
4949 try (InputStream stream =
50- ITMutableCredentialsTest . class . getResourceAsStream ( MISSING_PERM_KEY )) {
50+ Files . newInputStream ( Paths . get ( System . getenv ( "GOOGLE_ACCOUNT_CREDENTIALS" )) )) {
5151 missingPermissionCredentials = GoogleCredentials .fromStream (stream );
5252 }
5353 ServiceAccountCredentials invalidCredentials ;
5454 try (InputStream stream = ITMutableCredentialsTest .class .getResourceAsStream (INVALID_KEY )) {
5555 invalidCredentials = ServiceAccountCredentials .fromStream (stream );
5656 }
57- List <String > scopes =
58- Collections .singletonList ("https://www.googleapis.com/auth/cloud-platform" );
59- // create MutableCredentials first with missing permissions
57+
58+ // create MutableCredentials first default account credentials
6059 MutableCredentials mutableCredentials =
61- new MutableCredentials ((ServiceAccountCredentials ) missingPermissionCredentials , scopes );
60+ new MutableCredentials ((ServiceAccountCredentials ) missingPermissionCredentials );
6261
63- SpannerOptions options = SpannerOptions .newBuilder ().setCredentials (mutableCredentials ).build ();
62+ SpannerOptions options =
63+ SpannerOptions .newBuilder ()
64+ .setCredentials (FixedCredentialsProvider .create (mutableCredentials ).getCredentials ())
65+ .build ();
66+ System .out .println ("initial credentials " + options .getCredentials ());
67+ System .out .println ("default projecct" + options .getProjectId ());
6468 try (Spanner spanner = options .getService ();
65- DatabaseAdminClient databaseAdminClient = spanner .createDatabaseAdminClient ()) {
69+ InstanceAdminClient instanceAdminClient = spanner .createInstanceAdminClient ()) {
6670 String project = "gcloud-devel" ;
6771 String instance = "java-client-integration-tests" ;
6872 try {
69- listDatabases ( databaseAdminClient , project , instance );
73+ listInstances ( instanceAdminClient , options . getProjectId () , instance );
7074 fail ("Expected PERMISSION_DENIED" );
7175 } catch (Exception e ) {
7276 // specifically validate the permission denied error message
@@ -78,7 +82,7 @@ public void testMutableCredentialsUpdateAuthorizationForRunningClient() throws I
7882 // update mutableCredentials now to use an invalid credential
7983 mutableCredentials .updateCredentials (invalidCredentials );
8084 try {
81- listDatabases ( databaseAdminClient , project , instance );
85+ listInstances ( instanceAdminClient , options . getProjectId () , instance );
8286 fail ("Expected UNAUTHENTICATED after switching to invalid credentials" );
8387 } catch (Exception e ) {
8488 assertTrue (e .getMessage ().contains ("UNAUTHENTICATED" ));
@@ -87,15 +91,13 @@ public void testMutableCredentialsUpdateAuthorizationForRunningClient() throws I
8791 }
8892 }
8993
90- private static void listDatabases (
91- DatabaseAdminClient databaseAdminClient , String projectId , String instanceId ) {
92- DatabaseAdminClient . ListDatabasesPagedResponse response =
93- databaseAdminClient . listDatabases ( InstanceName .of (projectId , instanceId ));
94+ private static void listInstances (
95+ InstanceAdminClient instanceAdminClient , String projectId , String instanceId ) {
96+ InstanceAdminClient . ListInstancesPagedResponse response =
97+ instanceAdminClient . listInstances ( ProjectName .of (projectId ));
9498
95- for (DatabaseAdminClient .ListDatabasesPage page : response .iteratePages ()) {
96- for (Database database : page .iterateAll ()) {
97- // no-op
98- }
99+ for (InstanceAdminClient .ListInstancesPage page : response .iteratePages ()) {
100+ // no-op
99101 }
100102 }
101103}
0 commit comments