Skip to content

Commit 4aa1e9b

Browse files
mesmacostachingor13
authored andcommitted
samples: Add Data Catalog createEntry quickstart samples and tests. (#1731)
* ADD sample for create fileset entry quickstart * RAN google java format * CHANGE exception comment * FIX lint issues * Split quickstart into a new folder * Rename files since class name will appear on samples * Ran java formatter * revert region tags change * remove extra space * change to real bucket name
1 parent 4ac2639 commit 4aa1e9b

File tree

2 files changed

+49
-27
lines changed

2 files changed

+49
-27
lines changed

datacatalog/snippets/src/main/java/com/example/datacatalog/CreateFilesetEntry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public static void createEntry(String projectId, String entryGroupId, String ent
5454
.setDisplayName("My Fileset")
5555
.setDescription("This fileset consists of ....")
5656
.setGcsFilesetSpec(
57-
GcsFilesetSpec.newBuilder().addFilePatterns("gs://my_bucket/*").build())
57+
GcsFilesetSpec.newBuilder().addFilePatterns("gs://cloud-samples-data/*").build())
5858
.setSchema(
5959
Schema.newBuilder()
6060
.addColumns(

datacatalog/snippets/src/test/java/com/example/datacatalog/CreateEntryTests.java

Lines changed: 48 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717
package com.example.datacatalog;
1818

1919
import static org.junit.Assert.assertThat;
20+
import static org.junit.Assert.fail;
2021

2122
import com.google.cloud.datacatalog.EntryGroupName;
2223
import com.google.cloud.datacatalog.EntryName;
2324
import com.google.cloud.datacatalog.v1beta1.DataCatalogClient;
2425
import java.io.ByteArrayOutputStream;
2526
import java.io.PrintStream;
27+
import java.util.ArrayList;
28+
import java.util.List;
2629
import java.util.UUID;
2730
import org.hamcrest.CoreMatchers;
2831
import org.junit.After;
@@ -38,15 +41,12 @@ public class CreateEntryTests {
3841

3942
private ByteArrayOutputStream bout;
4043

41-
private static String ENTRY_GROUP_ID_NO_CHILDREN =
42-
"entry_group_no_children_" + UUID.randomUUID().toString().substring(0, 8);
43-
private static String PARENT_ENTRY_GROUP_ID =
44-
"fileset_entry_group_parent_" + UUID.randomUUID().toString().substring(0, 8);
45-
private static String ENTRY_ID =
46-
"fileset_entry_id_" + UUID.randomUUID().toString().substring(0, 8);
4744
private static String LOCATION = "us-central1";
4845
private static String PROJECT_ID = System.getenv().get("GOOGLE_CLOUD_PROJECT");
4946

47+
private static List<String> entryGroupsPendingDeletion = new ArrayList<>();
48+
private static List<String> entriesPendingDeletion = new ArrayList<>();
49+
5050
@Before
5151
public void setUp() {
5252
bout = new ByteArrayOutputStream();
@@ -62,45 +62,67 @@ public void tearDown() {
6262
@AfterClass
6363
public static void tearDownClass() {
6464
try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
65-
dataCatalogClient.deleteEntryGroup(
66-
EntryGroupName.of(PROJECT_ID, LOCATION, ENTRY_GROUP_ID_NO_CHILDREN).toString());
67-
68-
dataCatalogClient.deleteEntry(
69-
EntryName.of(PROJECT_ID, LOCATION, PARENT_ENTRY_GROUP_ID, ENTRY_ID).toString());
70-
dataCatalogClient.deleteEntryGroup(
71-
EntryGroupName.of(PROJECT_ID, LOCATION, PARENT_ENTRY_GROUP_ID).toString());
65+
// Must delete Entries before deleting the Entry Group.
66+
if (entriesPendingDeletion.isEmpty() || entryGroupsPendingDeletion.isEmpty()) {
67+
fail("Something went wrong, no entries were generated");
68+
}
69+
70+
for (String entryName : entriesPendingDeletion) {
71+
dataCatalogClient.deleteEntry(entryName);
72+
}
73+
74+
for (String entryGroupName : entryGroupsPendingDeletion) {
75+
dataCatalogClient.deleteEntryGroup(entryGroupName);
76+
}
7277
} catch (Exception e) {
7378
System.out.println("Error in cleaning up test data:\n" + e.toString());
7479
}
7580
}
7681

7782
@Test
7883
public void testCreateFilesetEntry() {
84+
String entryGroupId = "fileset_entry_group_parent_" + getUuid8Chars();
85+
String entryId = "fileset_entry_id_" + getUuid8Chars();
86+
7987
// Must create a Entry Group before creating the entry.
80-
CreateEntryGroup.createEntryGroup(PROJECT_ID, PARENT_ENTRY_GROUP_ID);
81-
CreateFilesetEntry.createEntry(PROJECT_ID, PARENT_ENTRY_GROUP_ID, ENTRY_ID);
88+
CreateEntryGroup.createEntryGroup(PROJECT_ID, entryGroupId);
89+
CreateFilesetEntry.createEntry(PROJECT_ID, entryGroupId, entryId);
90+
91+
// Store names for clean up on teardown
92+
String expectedEntryGroupName =
93+
EntryGroupName.of(PROJECT_ID, LOCATION, entryGroupId).toString();
94+
entryGroupsPendingDeletion.add(expectedEntryGroupName);
95+
96+
String expectedEntryName = EntryName.of(PROJECT_ID, LOCATION, entryGroupId, entryId).toString();
97+
entriesPendingDeletion.add(expectedEntryName);
8298

8399
String output = bout.toString();
84100

85-
String entryTemplate =
86-
"Entry created with name: projects/%s/locations/us-central1/entryGroups/%s/entries/%s";
101+
String entryTemplate = "Entry created with name: %s";
87102
assertThat(
88-
output,
89-
CoreMatchers.containsString(
90-
String.format(entryTemplate, PROJECT_ID, PARENT_ENTRY_GROUP_ID, ENTRY_ID)));
103+
output, CoreMatchers.containsString(String.format(entryTemplate, expectedEntryName)));
91104
}
92105

93106
@Test
94107
public void testCreateEntryGroup() {
95-
CreateEntryGroup.createEntryGroup(PROJECT_ID, ENTRY_GROUP_ID_NO_CHILDREN);
108+
String entryGroupId = "entry_group_no_children_" + getUuid8Chars();
109+
110+
CreateEntryGroup.createEntryGroup(PROJECT_ID, entryGroupId);
111+
112+
// Store names for clean up on teardown
113+
String expectedEntryGroupName =
114+
EntryGroupName.of(PROJECT_ID, LOCATION, entryGroupId).toString();
115+
entryGroupsPendingDeletion.add(expectedEntryGroupName);
96116

97117
String output = bout.toString();
98118

99-
String entryGroupTemplate =
100-
"Entry Group created with name: projects/%s/locations/us-central1/entryGroups/%s";
119+
String entryGroupTemplate = "Entry Group created with name: %s";
101120
assertThat(
102121
output,
103-
CoreMatchers.containsString(
104-
String.format(entryGroupTemplate, PROJECT_ID, ENTRY_GROUP_ID_NO_CHILDREN)));
122+
CoreMatchers.containsString(String.format(entryGroupTemplate, expectedEntryGroupName)));
123+
}
124+
125+
private String getUuid8Chars() {
126+
return UUID.randomUUID().toString().substring(0, 8);
105127
}
106-
}
128+
}

0 commit comments

Comments
 (0)