1717package com .example .datacatalog ;
1818
1919import static org .junit .Assert .assertThat ;
20+ import static org .junit .Assert .fail ;
2021
2122import com .google .cloud .datacatalog .EntryGroupName ;
2223import com .google .cloud .datacatalog .EntryName ;
2324import com .google .cloud .datacatalog .v1beta1 .DataCatalogClient ;
2425import java .io .ByteArrayOutputStream ;
2526import java .io .PrintStream ;
27+ import java .util .ArrayList ;
28+ import java .util .List ;
2629import java .util .UUID ;
2730import org .hamcrest .CoreMatchers ;
2831import 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