diff --git a/pom.xml b/pom.xml index 2b1fb3e6..d7cb38cb 100644 --- a/pom.xml +++ b/pom.xml @@ -184,10 +184,19 @@ https://developers.google.com/protocol-buffers/docs/reference/java/ https://googleapis.dev/java/google-auth-library/latest/ https://googleapis.dev/java/gax/latest/ - https://googleapis.github.io/api-common-java/${google.api-common.version}/apidocs/ + https://googleapis.github.io/api-common-java/ + + + + include-samples + + samples + + + diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 87ef2683..1ef4bad2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,6 +44,7 @@ + junit junit diff --git a/samples/snippets/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java b/samples/snippets/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java new file mode 100644 index 00000000..943b978e --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java @@ -0,0 +1,59 @@ +/* + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquerydatatransfer; + +// [START bigquerydatatransfer_quickstart] +// Imports the Google Cloud client library + +import com.google.cloud.bigquery.datatransfer.v1.DataSource; +import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient; +import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient.ListDataSourcesPagedResponse; +import com.google.cloud.bigquery.datatransfer.v1.ListDataSourcesRequest; + +public class QuickstartSample { + /** + * List available data sources for the BigQuery Data Transfer service. + */ + public static void main(String... args) throws Exception { + // Sets your Google Cloud Platform project ID. + // String projectId = "YOUR_PROJECT_ID"; + String projectId = args[0]; + + // Instantiate a client. If you don't specify credentials when constructing a client, the + // client library will look for credentials in the environment, such as the + // GOOGLE_APPLICATION_CREDENTIALS environment variable. + try (DataTransferServiceClient client = DataTransferServiceClient.create()) { + // Request the list of available data sources. + String parent = String.format("projects/%s", projectId); + ListDataSourcesRequest request = + ListDataSourcesRequest.newBuilder() + .setParent(parent) + .build(); + ListDataSourcesPagedResponse response = client.listDataSources(request); + + // Print the results. + System.out.println("Supported Data Sources:"); + for (DataSource dataSource : response.iterateAll()) { + System.out.println(dataSource.getDisplayName()); + System.out.printf("\tID: %s%n", dataSource.getDataSourceId()); + System.out.printf("\tFull path: %s%n", dataSource.getName()); + System.out.printf("\tDescription: %s%n", dataSource.getDescription()); + } + } + } +} +// [END bigquerydatatransfer_quickstart] diff --git a/samples/snippets/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java b/samples/snippets/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java new file mode 100644 index 00000000..bc0c457c --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java @@ -0,0 +1,56 @@ +/* + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquerydatatransfer; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for quickstart sample. */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class QuickstartSampleIT { + private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQuickstart() throws Exception { + QuickstartSample.main(PROJECT_ID); + String got = bout.toString(); + assertThat(got).contains("Supported Data Sources:"); + } +}