From 3b3ae647c860cecc98ff7e69d85ca4cd8fd345e6 Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 11:35:58 -0700 Subject: [PATCH 01/12] Bare files for BigQuery Dataset snippets. --- .../bigquery/snippets/DatasetSnippets.java | 27 +++++++++++++++++++ .../bigquery/snippets/ITDatasetSnippets.java | 21 +++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java create mode 100644 google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java new file mode 100644 index 000000000000..5a8e9796e71d --- /dev/null +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -0,0 +1,27 @@ +/* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * 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. + */ + +/* + * EDITING INSTRUCTIONS + * This file is referenced in Dataset’s javadoc. Any change to this file should be reflected in + * Dataset’s javadoc. +*/ + +package com.google.cloud.examples.bigquery.snippets; + +public class DatasetSnippets { + +} diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java new file mode 100644 index 000000000000..ac72c504c7aa --- /dev/null +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java @@ -0,0 +1,21 @@ +/* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * 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.google.cloud.examples.bigquery.snippets; + +public class ITDatasetSnippets { + +} From f7a62f6f28403f5569c3a9392f095332a39568d0 Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 11:55:05 -0700 Subject: [PATCH 02/12] Adds constructor for DatasetSnippets. --- .../examples/bigquery/snippets/DatasetSnippets.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index 5a8e9796e71d..fed69ca8adeb 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -22,6 +22,17 @@ package com.google.cloud.examples.bigquery.snippets; +import com.google.cloud.bigquery.Dataset; + +/** + * This class contains a number of snippets for the {@link Dataset} interface. + */ public class DatasetSnippets { + private final Dataset dataset; + + public DatasetSnippets(Dataset dataset) { + this.dataset = dataset; + } + } From 4b2f929420e046d8fcc4618bcdfbbf1e8836bff5 Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Fri, 16 Sep 2016 13:28:02 -0700 Subject: [PATCH 03/12] Add snippets for dataset list/get/create --- .../bigquery/snippets/DatasetSnippets.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index fed69ca8adeb..744006bc383a 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -22,7 +22,16 @@ package com.google.cloud.examples.bigquery.snippets; +import com.google.cloud.bigquery.TimePartitioning; +import com.google.cloud.Page; +import com.google.cloud.bigquery.BigQuery.TableListOption; import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; + +import java.util.Iterator; /** * This class contains a number of snippets for the {@link Dataset} interface. @@ -35,4 +44,82 @@ public DatasetSnippets(Dataset dataset) { this.dataset = dataset; } + /** + * Example of listing dataset tables. + */ + // [TARGET list(BigQuery.TableListOption... options)] + public Page listDataset() { + // [START listDataset] + Page
tables = dataset.list(); + Iterator
tableIterator = tables.iterateAll(); + while (tableIterator.hasNext()) { + Table table = tableIterator.next(); + // do something with the table + } + // [END listDataset] + return tables; + } + + /** + * Example of listing dataset tables with page sizes. + */ + // [TARGET list(BigQuery.TableListOption... options)] + public Page
listDatasetWithPageSize(long pageSize) { + // [START listDataset] + TableListOption option = TableListOption.pageSize(pageSize); + Page
tables = dataset.list(option); + Iterator
tableIterator = tables.iterateAll(); + while (tableIterator.hasNext()) { + Table table = tableIterator.next(); + // do something with the table + } + // [END listDataset] + return tables; + } + + /** + * Example of getting a dataset table. + */ + // [TARGET get(String table, BigQuery.TableOption... options)] + // [VARIABLE “my_table”] + public Table getTable(String tableName) { + // [START getTable] + Table table = dataset.get(tableName); + // [END getTable] + return table; + } + + /** + * Example of creating an empty dataset table. + */ + // [TARGET create(String table, TableDefinition definition, BigQuery.TableOption... options)] + // [VARIABLE “my_table”] + public Table createTable(String tableName) { + // [START createTable] + StandardTableDefinition definition = StandardTableDefinition.builder() + .build(); + Table table = dataset.create(tableName, definition); + // [END createTable] + return table; + } + + /** + * Example of creating a dataset table with schema and time partitioning. + */ + // [TARGET create(String table, TableDefinition definition, BigQuery.TableOption... options)] + // [VARIABLE “my_table”] + // [VARIABLE “my_field”] + public Table createTabl(String tableName, String fieldName) { + // [START createTable] + Schema schema = Schema.builder() + .addField(Field.of(fieldName, Field.Type.string())) + .build(); + StandardTableDefinition definition = StandardTableDefinition.builder() + .schema(schema) + .timePartitioning(TimePartitioning.of(TimePartitioning.Type.DAY)) + .build(); + Table table = dataset.create(tableName, definition); + // [END createTable] + return table; + } } From 44e7f5a2391bb0f1751cb1fe003de2b341f58129 Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Fri, 16 Sep 2016 13:31:14 -0700 Subject: [PATCH 04/12] Fix a typo --- .../cloud/examples/bigquery/snippets/DatasetSnippets.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index 744006bc383a..273ffd0a4ca2 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -109,7 +109,7 @@ public Table createTable(String tableName) { // [TARGET create(String table, TableDefinition definition, BigQuery.TableOption... options)] // [VARIABLE “my_table”] // [VARIABLE “my_field”] - public Table createTabl(String tableName, String fieldName) { + public Table createTable(String tableName, String fieldName) { // [START createTable] Schema schema = Schema.builder() .addField(Field.of(fieldName, Field.Type.string())) From 76ab902ef377f5f200af028aff4d1bf8c574801c Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 14:11:45 -0700 Subject: [PATCH 05/12] Add snippet and add integration tests. --- .../bigquery/snippets/DatasetSnippets.java | 24 ++++++++++ .../bigquery/snippets/ITDatasetSnippets.java | 45 +++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index 273ffd0a4ca2..0f25f465b5f0 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -43,6 +43,29 @@ public class DatasetSnippets { public DatasetSnippets(Dataset dataset) { this.dataset = dataset; } + + /** + * Example of checking whether a dataset exists. + */ + // [TARGET exists()] + public boolean checkDatasetExists() { + // [START checkDatasetExists] + boolean exists = this.dataset.exists(); + // [END checkDatasetExists] + return exists; + } + + /** + * Example of reloading a dataset. + */ + // [TARGET reload(DatasetOption... options)] + public Dataset reloadDataset() { + // [START reloadDataset] + Dataset dataset = this.dataset.reload(); + // [END reloadDataset] + return dataset; + } + */ /** * Example of listing dataset tables. @@ -122,4 +145,5 @@ public Table createTable(String tableName, String fieldName) { // [END createTable] return table; } + } diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java index ac72c504c7aa..65ccad1d18d4 100644 --- a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java @@ -16,6 +16,51 @@ package com.google.cloud.examples.bigquery.snippets; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + public class ITDatasetSnippets { + private static final String datasetId = "dataset_snippets_integration_test"; + private static final String nonExistandDatasetId = "non_existant_dataset"; + + private static BigQuery bigquery; + private static Dataset dataset; + private static Dataset nonExistantDataset; + + @BeforeClass + public static void beforeClass() { + bigquery = BigQueryOptions.defaultInstance().service(); + } + + @Before + public void before() { + dataset = bigquery.create(DatasetInfo.builder(datasetId).build()); + nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); + bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); + } + + @After + public void after() { + bigquery.delete(datasetId, BigQuery.DatasetDeleteOption.deleteContents()); + } + + @Test + public void testExistsReturnsFalseWhenDatasetDoesntExist() { + assertFalse(nonExistantDataset.exists()); + } + + @Test + public void testExistsReturnsTrueWhenDatasetExists() { + assertTrue(dataset.exists()); + } } From 0a45c85c12e5447c5ee539a2cfb98659cc32277f Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 14:17:17 -0700 Subject: [PATCH 06/12] Fix compile error. --- .../google/cloud/examples/bigquery/snippets/DatasetSnippets.java | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index 0f25f465b5f0..b9d2217041ce 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -65,7 +65,6 @@ public Dataset reloadDataset() { // [END reloadDataset] return dataset; } - */ /** * Example of listing dataset tables. From b14146720569864eb0164153c1052933ad218784 Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 14:19:55 -0700 Subject: [PATCH 07/12] Fix formatting. --- .../bigquery/snippets/DatasetSnippets.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index b9d2217041ce..a80879767686 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -67,8 +67,8 @@ public Dataset reloadDataset() { } /** - * Example of listing dataset tables. - */ + * Example of listing dataset tables. + */ // [TARGET list(BigQuery.TableListOption... options)] public Page
listDataset() { // [START listDataset] @@ -83,8 +83,8 @@ public Page
listDataset() { } /** - * Example of listing dataset tables with page sizes. - */ + * Example of listing dataset tables with page sizes. + */ // [TARGET list(BigQuery.TableListOption... options)] public Page
listDatasetWithPageSize(long pageSize) { // [START listDataset] @@ -100,8 +100,8 @@ public Page
listDatasetWithPageSize(long pageSize) { } /** - * Example of getting a dataset table. - */ + * Example of getting a dataset table. + */ // [TARGET get(String table, BigQuery.TableOption... options)] // [VARIABLE “my_table”] public Table getTable(String tableName) { @@ -112,8 +112,8 @@ public Table getTable(String tableName) { } /** - * Example of creating an empty dataset table. - */ + * Example of creating an empty dataset table. + */ // [TARGET create(String table, TableDefinition definition, BigQuery.TableOption... options)] // [VARIABLE “my_table”] public Table createTable(String tableName) { @@ -126,8 +126,8 @@ public Table createTable(String tableName) { } /** - * Example of creating a dataset table with schema and time partitioning. - */ + * Example of creating a dataset table with schema and time partitioning. + */ // [TARGET create(String table, TableDefinition definition, BigQuery.TableOption... options)] // [VARIABLE “my_table”] // [VARIABLE “my_field”] From 2ae7e349ee9d51d6bb0c26defe5656f07ee60aec Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 14:58:37 -0700 Subject: [PATCH 08/12] Adds more Dataset snippets and updates integration tests. --- .../bigquery/snippets/DatasetSnippets.java | 48 ++++++++++++++++--- .../bigquery/snippets/ITDatasetSnippets.java | 17 ++++--- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index a80879767686..1f96c5362463 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -22,15 +22,15 @@ package com.google.cloud.examples.bigquery.snippets; -import com.google.cloud.bigquery.TimePartitioning; import com.google.cloud.Page; import com.google.cloud.bigquery.BigQuery.TableListOption; import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.Dataset.Builder; import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; - +import com.google.cloud.bigquery.TimePartitioning; import java.util.Iterator; /** @@ -48,24 +48,60 @@ public DatasetSnippets(Dataset dataset) { * Example of checking whether a dataset exists. */ // [TARGET exists()] - public boolean checkDatasetExists() { - // [START checkDatasetExists] + public boolean doesDatasetExist() { + // [START doesDatasetExist] boolean exists = this.dataset.exists(); - // [END checkDatasetExists] + // [END doesDatasetExist] return exists; } /** * Example of reloading a dataset. */ - // [TARGET reload(DatasetOption... options)] + // [TARGET reload(BigQuery.DatasetOption... options)] public Dataset reloadDataset() { // [START reloadDataset] Dataset dataset = this.dataset.reload(); + if (dataset != null) { + // The dataset was reloaded. + } else { + // The dataset was not found. + } // [END reloadDataset] return dataset; } + /** + * Example of updating a dataset. + */ + // [TARGET update(BigQuery.DatasetOption... options)] + // [VARIABLE "my_friendly_name"] + public Dataset updateDataset(String friendlyName) { + // [START updateDataset] + Builder builder = this.dataset.toBuilder(); + builder.friendlyName(friendlyName); + Dataset datasetWithChanges = builder.build(); + Dataset updatedDataset = datasetWithChanges.update(); + // [END updateDataset] + return updatedDataset; + } + + /** + * Example of deleting a dataset. + */ + // [TARGET delete()] + public boolean deleteDataset() { + // [START deleteDataset] + boolean deleted = this.dataset.delete(); + if (deleted) { + // The dataset was deleted. + } else { + // The dataset was not found. + } + // [END deleteDataset] + return deleted; + } + /** * Example of listing dataset tables. */ diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java index 65ccad1d18d4..64d43014ba7a 100644 --- a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java @@ -17,11 +17,13 @@ package com.google.cloud.examples.bigquery.snippets; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.Dataset.Builder; import com.google.cloud.bigquery.DatasetInfo; import org.junit.After; import org.junit.Before; @@ -33,8 +35,8 @@ public class ITDatasetSnippets { private static final String nonExistandDatasetId = "non_existant_dataset"; private static BigQuery bigquery; - private static Dataset dataset; - private static Dataset nonExistantDataset; + private static DatasetSnippets datasetSnippets; + private static DatasetSnippets datasetSnippetsWithNonExistantDataset; @BeforeClass public static void beforeClass() { @@ -43,9 +45,12 @@ public static void beforeClass() { @Before public void before() { - dataset = bigquery.create(DatasetInfo.builder(datasetId).build()); - nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); + Dataset dataset = bigquery.create(DatasetInfo.builder(datasetId).build()); + datasetSnippets = new DatasetSnippets(dataset); + + Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); + datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset); } @After @@ -55,12 +60,12 @@ public void after() { @Test public void testExistsReturnsFalseWhenDatasetDoesntExist() { - assertFalse(nonExistantDataset.exists()); + assertFalse(datasetSnippetsWithNonExistantDataset.doesDatasetExist()); } @Test public void testExistsReturnsTrueWhenDatasetExists() { - assertTrue(dataset.exists()); + assertTrue(datasetSnippets.doesDatasetExist()); } } From 9c43a2b35b7b6760d5795aa6be81722a002cf1f0 Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 15:00:38 -0700 Subject: [PATCH 09/12] Updates integration tests so that the datasets are accessible. --- .../examples/bigquery/snippets/ITDatasetSnippets.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java index 64d43014ba7a..5e7e9388f30e 100644 --- a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java @@ -17,13 +17,11 @@ package com.google.cloud.examples.bigquery.snippets; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Dataset; -import com.google.cloud.bigquery.Dataset.Builder; import com.google.cloud.bigquery.DatasetInfo; import org.junit.After; import org.junit.Before; @@ -35,6 +33,8 @@ public class ITDatasetSnippets { private static final String nonExistandDatasetId = "non_existant_dataset"; private static BigQuery bigquery; + private static Dataset dataset; + private static Dataset nonExistantDataset; private static DatasetSnippets datasetSnippets; private static DatasetSnippets datasetSnippetsWithNonExistantDataset; @@ -45,10 +45,10 @@ public static void beforeClass() { @Before public void before() { - Dataset dataset = bigquery.create(DatasetInfo.builder(datasetId).build()); + dataset = bigquery.create(DatasetInfo.builder(datasetId).build()); datasetSnippets = new DatasetSnippets(dataset); - Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); + nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset); } From 8c89830d2d022bbebe3381f88c365f3f4284a81c Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Fri, 16 Sep 2016 15:55:32 -0700 Subject: [PATCH 10/12] Update snippets and add IT --- .../bigquery/snippets/DatasetSnippets.java | 1 - .../bigquery/snippets/ITDatasetSnippets.java | 74 +++++++++++++++++-- 2 files changed, 67 insertions(+), 8 deletions(-) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index 1f96c5362463..a38901840814 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -174,7 +174,6 @@ public Table createTable(String tableName, String fieldName) { .build(); StandardTableDefinition definition = StandardTableDefinition.builder() .schema(schema) - .timePartitioning(TimePartitioning.of(TimePartitioning.Type.DAY)) .build(); Table table = dataset.create(tableName, definition); // [END createTable] diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java index 5e7e9388f30e..237dc2195b2c 100644 --- a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java @@ -19,38 +19,40 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import com.google.cloud.Page; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Dataset; import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; + import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import java.util.Iterator; + public class ITDatasetSnippets { private static final String datasetId = "dataset_snippets_integration_test"; private static final String nonExistandDatasetId = "non_existant_dataset"; private static BigQuery bigquery; private static Dataset dataset; - private static Dataset nonExistantDataset; private static DatasetSnippets datasetSnippets; - private static DatasetSnippets datasetSnippetsWithNonExistantDataset; @BeforeClass public static void beforeClass() { - bigquery = BigQueryOptions.defaultInstance().service(); + bigquery = BigQueryOptions.defaultInstance().service(); } @Before public void before() { dataset = bigquery.create(DatasetInfo.builder(datasetId).build()); datasetSnippets = new DatasetSnippets(dataset); - - nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); - bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); - datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset); } @After @@ -60,6 +62,11 @@ public void after() { @Test public void testExistsReturnsFalseWhenDatasetDoesntExist() { + Dataset nonExistantDataset = + bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); + DatasetSnippets datasetSnippetsWithNonExistantDataset = + new DatasetSnippets(nonExistantDataset); + bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); assertFalse(datasetSnippetsWithNonExistantDataset.doesDatasetExist()); } @@ -68,4 +75,57 @@ public void testExistsReturnsTrueWhenDatasetExists() { assertTrue(datasetSnippets.doesDatasetExist()); } + @Test + public void testListTablesWhenEmpty() { + Page
tables = datasetSnippets.listDataset(); + assertFalse(tables.iterateAll().hasNext()); + } + + @Test + public void testListTablesWhenNotEmpty() { + String expectedTableName = "test_table"; + + dataset.create(expectedTableName, StandardTableDefinition.builder().build()); + Page
tables = datasetSnippets.listDataset(); + Iterator
iterator = tables.iterateAll(); + assertTrue(iterator.hasNext()); + + Table actualTable = iterator.next(); + assertTrue(actualTable.tableId().table().equals(expectedTableName)); + assertFalse(iterator.hasNext()); + } + + @Test + public void testGetTable() { + String expectedTableName = "test_table"; + + dataset.create(expectedTableName, StandardTableDefinition.builder().build()); + Table actualTable = datasetSnippets.getTable(expectedTableName); + + Assert.assertNotNull(actualTable); + Assert.assertEquals(expectedTableName, actualTable.tableId().table()); + } + + @Test + public void testCreateTable() { + String expectedTableName = "test_table"; + + Table actualTable = datasetSnippets.createTable(expectedTableName); + Assert.assertNotNull(actualTable); + Assert.assertEquals(expectedTableName, actualTable.tableId().table()); + } + + @Test + public void testCreateTableWithSchema() { + String expectedTableName = "test_table"; + String expectedFieldName = "test_field"; + + Table actualTable = datasetSnippets.createTable(expectedTableName, expectedFieldName); + Assert.assertNotNull(actualTable); + Assert.assertEquals(expectedTableName, actualTable.tableId().table()); + Assert.assertEquals(1, actualTable.definition().schema().fields().size()); + + Field actualField = actualTable.definition().schema().fields().get(0); + Assert.assertEquals(expectedFieldName, actualField.name()); + } } From 45971a5f8bbc985a0a080cc3dae2737c18f02cb2 Mon Sep 17 00:00:00 2001 From: Wesley Wong Date: Fri, 16 Sep 2016 16:05:01 -0700 Subject: [PATCH 11/12] Adds the rest of the integration tests for the dataset snippets. --- .../bigquery/snippets/DatasetSnippets.java | 4 +- .../bigquery/snippets/ITDatasetSnippets.java | 57 ++++++++++++++++--- 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index a38901840814..39a300b15d87 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -30,7 +30,6 @@ import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; -import com.google.cloud.bigquery.TimePartitioning; import java.util.Iterator; /** @@ -80,8 +79,7 @@ public Dataset updateDataset(String friendlyName) { // [START updateDataset] Builder builder = this.dataset.toBuilder(); builder.friendlyName(friendlyName); - Dataset datasetWithChanges = builder.build(); - Dataset updatedDataset = datasetWithChanges.update(); + Dataset updatedDataset = builder.build().update(); // [END updateDataset] return updatedDataset; } diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java index 237dc2195b2c..3f8ef00a916b 100644 --- a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java @@ -16,13 +16,16 @@ package com.google.cloud.examples.bigquery.snippets; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import com.google.cloud.Page; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.Dataset.Builder; import com.google.cloud.bigquery.DatasetInfo; import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.StandardTableDefinition; @@ -39,6 +42,7 @@ public class ITDatasetSnippets { private static final String datasetId = "dataset_snippets_integration_test"; private static final String nonExistandDatasetId = "non_existant_dataset"; + private static final String friendlyName = "some_friendly_name"; private static BigQuery bigquery; private static Dataset dataset; @@ -61,19 +65,58 @@ public void after() { } @Test - public void testExistsReturnsFalseWhenDatasetDoesntExist() { - Dataset nonExistantDataset = - bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); - DatasetSnippets datasetSnippetsWithNonExistantDataset = - new DatasetSnippets(nonExistantDataset); + public void testDoesDataExistReturnsFalseWhenDatasetDoesntExist() { + Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); + DatasetSnippets datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset); bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); assertFalse(datasetSnippetsWithNonExistantDataset.doesDatasetExist()); } @Test - public void testExistsReturnsTrueWhenDatasetExists() { + public void testDoesDataExistReturnsTrueWhenDatasetExists() { assertTrue(datasetSnippets.doesDatasetExist()); } + + @Test + public void testReloadDatasetReturnsNullWhenDatasetDoesntExist() { + Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); + DatasetSnippets datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset); + bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); + assertNull(datasetSnippetsWithNonExistantDataset.reloadDataset()); + } + + @Test + public void testReloadDatasetReturnsTheReloadedDatasetWhenDatasetExists() { + assertNull(dataset.friendlyName()); + + Builder builder = dataset.toBuilder(); + builder.friendlyName(friendlyName); + builder.build().update(); + + Dataset reloadedDataset = datasetSnippets.reloadDataset(); + assertEquals(friendlyName, reloadedDataset.friendlyName()); + } + + @Test + public void testUpdateDatasetReturnsTheUpdatedDatasetWhenDatasetExists() { + assertNull(dataset.friendlyName()); + + Dataset updatedDataset = datasetSnippets.updateDataset(friendlyName); + assertEquals(friendlyName, updatedDataset.friendlyName()); + } + + @Test + public void testDeleteDatasetReturnsFalseWhenDatasetDoesntExist() { + Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build()); + DatasetSnippets datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset); + bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents()); + assertFalse(datasetSnippetsWithNonExistantDataset.deleteDataset()); + } + + @Test + public void testDeleteDatasetReturnsTrueWhenDatasetExists() { + assertTrue(datasetSnippets.deleteDataset()); + } @Test public void testListTablesWhenEmpty() { From 81d53739817273dfd5dbfe5c99c1bdf9bcc3aa31 Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Fri, 16 Sep 2016 16:56:19 -0700 Subject: [PATCH 12/12] Remove page size snippet --- .../bigquery/snippets/DatasetSnippets.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java index 39a300b15d87..3cd05860a97a 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java @@ -115,23 +115,6 @@ public Page
listDataset() { // [END listDataset] return tables; } - - /** - * Example of listing dataset tables with page sizes. - */ - // [TARGET list(BigQuery.TableListOption... options)] - public Page
listDatasetWithPageSize(long pageSize) { - // [START listDataset] - TableListOption option = TableListOption.pageSize(pageSize); - Page
tables = dataset.list(option); - Iterator
tableIterator = tables.iterateAll(); - while (tableIterator.hasNext()) { - Table table = tableIterator.next(); - // do something with the table - } - // [END listDataset] - return tables; - } /** * Example of getting a dataset table.