Skip to content

Commit 4f87e12

Browse files
nnegreychingor13
authored andcommitted
samples: vision: use uuid for product search tests
1 parent 80283cb commit 4f87e12

File tree

5 files changed

+58
-94
lines changed

5 files changed

+58
-94
lines changed

vision/snippets/src/test/java/com/example/vision/ImportProductSetsIT.java

Lines changed: 33 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,17 @@
1818

1919
import static com.google.common.truth.Truth.assertThat;
2020

21+
import com.google.cloud.storage.Blob;
22+
import com.google.cloud.storage.BlobId;
23+
import com.google.cloud.storage.BlobInfo;
24+
import com.google.cloud.storage.Storage;
25+
import com.google.cloud.storage.StorageOptions;
26+
2127
import java.io.ByteArrayOutputStream;
2228
import java.io.IOException;
2329
import java.io.PrintStream;
30+
import java.util.UUID;
31+
2432
import org.junit.After;
2533
import org.junit.Before;
2634
import org.junit.Test;
@@ -33,101 +41,74 @@
3341
public class ImportProductSetsIT {
3442
private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT");
3543
private static final String COMPUTE_REGION = "us-west1";
36-
private static final String GCS_URI =
37-
"gs://cloud-samples-data/vision/product_search/product_sets.csv";
38-
private static final String PRODUCT_SET_ID = "fake_product_set_id_for_testing";
39-
private static final String PRODUCT_ID_1 = "fake_product_id_for_testing_1";
40-
private static final String PRODUCT_ID_2 = "fake_product_id_for_testing_2";
44+
private static final String PRODUCT_SET_ID =
45+
String.format("test_%s", UUID.randomUUID().toString());
46+
private static final String PRODUCT_ID_1 = String.format("test_%s", UUID.randomUUID().toString());
4147
private static final String IMAGE_URI_1 = "shoes_1.jpg";
42-
private static final String IMAGE_URI_2 = "shoes_2.jpg";
48+
private static final String FILEPATH =
49+
String.format("vision/%s.csv", UUID.randomUUID().toString());
50+
private static final String GCS_URI = String.format("gs://%s/%s", PROJECT_ID, FILEPATH);
51+
private Blob blob;
4352
private ByteArrayOutputStream bout;
4453
private PrintStream out;
4554

4655
@Before
4756
public void setUp() {
57+
// Create the product set csv file locally and upload it to GCS
58+
// This is so that there is a unique product set ID for all python version tests.
59+
Storage storage = StorageOptions.newBuilder().setProjectId(PROJECT_ID).build().getService();
60+
BlobId blobId = BlobId.of(PROJECT_ID, FILEPATH);
61+
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
62+
String csvContents =
63+
"\"gs://cloud-samples-data/vision/product_search/shoes_1.jpg\","
64+
+ String.format("\"%s\",", IMAGE_URI_1)
65+
+ String.format("\"%s\",", PRODUCT_SET_ID)
66+
+ String.format("\"%s\",", PRODUCT_ID_1)
67+
+ "\"apparel\",,\"style=womens\",\"0.1,0.1,0.9,0.1,0.9,0.9,0.1,0.9\"";
68+
blob = storage.create(blobInfo, csvContents.getBytes());
69+
4870
bout = new ByteArrayOutputStream();
4971
out = new PrintStream(bout);
5072
System.setOut(out);
5173
}
5274

5375
@After
5476
public void tearDown() throws IOException {
55-
ProductManagement.deleteProduct(PROJECT_ID,COMPUTE_REGION,PRODUCT_ID_1);
56-
ProductManagement.deleteProduct(PROJECT_ID,COMPUTE_REGION,PRODUCT_ID_2);
77+
ProductManagement.deleteProduct(PROJECT_ID, COMPUTE_REGION, PRODUCT_ID_1);
5778
ProductSetManagement.deleteProductSet(PROJECT_ID, COMPUTE_REGION, PRODUCT_SET_ID);
79+
Storage storage = StorageOptions.newBuilder().setProjectId(PROJECT_ID).build().getService();
80+
// Delete the created blob
81+
storage.delete(blob.getBlobId());
5882
System.setOut(null);
5983
}
6084

6185
@Test
6286
public void testImportProductSets() throws Exception {
63-
// Act
64-
ProductSetManagement.listProductSets(PROJECT_ID, COMPUTE_REGION);
65-
66-
// Assert
67-
String got = bout.toString();
68-
System.out.println(got);
69-
assertThat(got).doesNotContain(PRODUCT_SET_ID);
70-
71-
// Act
72-
ProductManagement.listProducts(PROJECT_ID, COMPUTE_REGION);
73-
74-
// Assert
75-
assertThat(got).doesNotContain(PRODUCT_ID_1);
76-
assertThat(got).doesNotContain(PRODUCT_ID_2);
77-
78-
// Act
79-
ProductInProductSetManagement.listProductsInProductSet(
80-
PROJECT_ID, COMPUTE_REGION, PRODUCT_SET_ID);
81-
82-
// Assert
83-
assertThat(got).doesNotContain(PRODUCT_ID_1);
84-
assertThat(got).doesNotContain(PRODUCT_ID_2);
85-
86-
// Act
87-
ReferenceImageManagement.listReferenceImagesOfProduct(PROJECT_ID, COMPUTE_REGION, PRODUCT_ID_1);
88-
89-
// Assert
90-
assertThat(got).doesNotContain(IMAGE_URI_1);
91-
92-
// Act
93-
ReferenceImageManagement.listReferenceImagesOfProduct(PROJECT_ID, COMPUTE_REGION, PRODUCT_ID_2);
94-
95-
// Assert
96-
assertThat(got).doesNotContain(IMAGE_URI_2);
97-
9887
// Act
9988
ImportProductSets.importProductSets(PROJECT_ID, COMPUTE_REGION, GCS_URI);
10089
ProductSetManagement.listProductSets(PROJECT_ID, COMPUTE_REGION);
10190

10291
// Assert
103-
got = bout.toString();
92+
String got = bout.toString();
10493
assertThat(got).contains(PRODUCT_SET_ID);
10594

10695
// Act
10796
ProductManagement.listProducts(PROJECT_ID, COMPUTE_REGION);
10897

10998
// Assert
11099
assertThat(got).contains(PRODUCT_ID_1);
111-
assertThat(got).contains(PRODUCT_ID_2);
112100

113101
// Act
114102
ProductInProductSetManagement.listProductsInProductSet(
115103
PROJECT_ID, COMPUTE_REGION, PRODUCT_SET_ID);
116104

117105
// Assert
118106
assertThat(got).contains(PRODUCT_ID_1);
119-
assertThat(got).contains(PRODUCT_ID_2);
120107

121108
// Act
122109
ReferenceImageManagement.listReferenceImagesOfProduct(PROJECT_ID, COMPUTE_REGION, PRODUCT_ID_1);
123110

124111
// Assert
125112
assertThat(got).contains(IMAGE_URI_1);
126-
127-
// Act
128-
ReferenceImageManagement.listReferenceImagesOfProduct(PROJECT_ID, COMPUTE_REGION, PRODUCT_ID_2);
129-
130-
// Assert
131-
assertThat(got).contains(IMAGE_URI_2);
132113
}
133114
}

vision/snippets/src/test/java/com/example/vision/ProductInProductSetManagementIT.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ public class ProductInProductSetManagementIT {
3636
private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT");
3737
private static final String COMPUTE_REGION = "us-west1";
3838
private static final String PRODUCT_SET_DISPLAY_NAME =
39-
"fake_pdt_set_display_name_for_testing";
40-
private static final String PRODUCT_SET_ID = "fake_pdt_set_id_for_testing" + UUID.randomUUID();
41-
private static final String PRODUCT_DISPLAY_NAME = "fake_pdt_display_name_for_testing";
39+
String.format("test_%s", UUID.randomUUID().toString());
40+
private static final String PRODUCT_SET_ID =
41+
String.format("test_%s", UUID.randomUUID().toString());
42+
private static final String PRODUCT_DISPLAY_NAME =
43+
String.format("test_%s", UUID.randomUUID().toString());
4244
private static final String PRODUCT_CATEGORY = "apparel";
43-
private static final String PRODUCT_ID = "fake_pdt_id_for_testing";
45+
private static final String PRODUCT_ID = String.format("test_%s", UUID.randomUUID().toString());
4446
private ByteArrayOutputStream bout;
4547
private PrintStream out;
4648

@@ -65,22 +67,12 @@ public void tearDown() throws IOException {
6567

6668
@Test
6769
public void testAddProductToProductSet() throws Exception {
68-
// Act
69-
ProductInProductSetManagement.listProductsInProductSet(
70-
PROJECT_ID, COMPUTE_REGION, PRODUCT_SET_ID);
71-
72-
// Assert
73-
String got = bout.toString();
74-
assertThat(got).doesNotContain(PRODUCT_ID);
75-
76-
bout.reset();
77-
7870
// Act
7971
ProductInProductSetManagement.addProductToProductSet(
8072
PROJECT_ID, COMPUTE_REGION, PRODUCT_ID, PRODUCT_SET_ID);
8173

8274
// Assert
83-
got = bout.toString();
75+
String got = bout.toString();
8476
assertThat(got).contains("Product added to product set.");
8577
}
8678

vision/snippets/src/test/java/com/example/vision/ProductManagementIT.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import java.io.ByteArrayOutputStream;
2222
import java.io.IOException;
2323
import java.io.PrintStream;
24+
import java.util.UUID;
25+
2426
import org.junit.After;
2527
import org.junit.Before;
2628
import org.junit.Test;
@@ -33,11 +35,12 @@
3335
public class ProductManagementIT {
3436
private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT");
3537
private static final String COMPUTE_REGION = "us-west1";
36-
private static final String PRODUCT_DISPLAY_NAME = "fake_prod_display_name_for_testing";
38+
private static final String PRODUCT_DISPLAY_NAME =
39+
String.format("test_%s", UUID.randomUUID().toString());
3740
private static final String PRODUCT_CATEGORY = "homegoods";
38-
private static final String PRODUCT_ID = "fake_prod_id_for_testing";
39-
private static final String KEY = "fake_key_for_testing";
40-
private static final String VALUE = "fake_value_for_testing";
41+
private static final String PRODUCT_ID = String.format("test_%s", UUID.randomUUID().toString());
42+
private static final String KEY = String.format("test_%s", UUID.randomUUID().toString());
43+
private static final String VALUE = String.format("test_%s", UUID.randomUUID().toString());
4144
private ByteArrayOutputStream bout;
4245
private PrintStream out;
4346

@@ -56,22 +59,13 @@ public void tearDown() throws IOException {
5659

5760
@Test
5861
public void testCreateProduct() throws Exception {
59-
// Act
60-
ProductManagement.listProducts(PROJECT_ID, COMPUTE_REGION);
61-
62-
// Assert
63-
String got = bout.toString();
64-
assertThat(got).doesNotContain(PRODUCT_ID);
65-
66-
bout.reset();
67-
6862
// Act
6963
ProductManagement.createProduct(
7064
PROJECT_ID, COMPUTE_REGION, PRODUCT_ID, PRODUCT_DISPLAY_NAME, PRODUCT_CATEGORY);
7165
ProductManagement.listProducts(PROJECT_ID, COMPUTE_REGION);
7266

7367
// Assert
74-
got = bout.toString();
68+
String got = bout.toString();
7569
assertThat(got).contains(PRODUCT_ID);
7670
}
7771

vision/snippets/src/test/java/com/example/vision/ProductSearchIT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import java.io.ByteArrayOutputStream;
2222
import java.io.PrintStream;
23+
import java.util.UUID;
24+
2325
import org.junit.After;
2426
import org.junit.Before;
2527
import org.junit.Test;

vision/snippets/src/test/java/com/example/vision/ReferenceImageManagementIT.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import java.io.ByteArrayOutputStream;
2222
import java.io.IOException;
2323
import java.io.PrintStream;
24+
import java.util.UUID;
25+
2426
import org.junit.After;
2527
import org.junit.Before;
2628
import org.junit.Test;
@@ -33,10 +35,12 @@
3335
public class ReferenceImageManagementIT {
3436
private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT");
3537
private static final String COMPUTE_REGION = "us-west1";
36-
private static final String PRODUCT_DISPLAY_NAME = "fake_prduct_display_name_for_testing";
38+
private static final String PRODUCT_DISPLAY_NAME =
39+
String.format("test_%s", UUID.randomUUID().toString());
3740
private static final String PRODUCT_CATEGORY = "apparel";
38-
private static final String PRODUCT_ID = "fake_prduct_id_for_testing";
39-
private static final String REFERENCE_IMAGE_ID = "fake_reference_image_id_for_testing";
41+
private static final String PRODUCT_ID = String.format("test_%s", UUID.randomUUID().toString());
42+
private static final String REFERENCE_IMAGE_ID =
43+
String.format("test_%s", UUID.randomUUID().toString());
4044
private static final String GCS_URI =
4145
"gs://java-docs-samples-testing/product-search/shoes_1.jpg";
4246
private ByteArrayOutputStream bout;
@@ -59,22 +63,13 @@ public void tearDown() throws IOException {
5963

6064
@Test
6165
public void testCreateReferenceImage() throws Exception {
62-
// Act
63-
ReferenceImageManagement.listReferenceImagesOfProduct(PROJECT_ID, COMPUTE_REGION, PRODUCT_ID);
64-
65-
// Assert
66-
String got = bout.toString();
67-
assertThat(got).doesNotContain(REFERENCE_IMAGE_ID);
68-
69-
bout.reset();
70-
7166
// Act
7267
ReferenceImageManagement.createReferenceImage(
7368
PROJECT_ID, COMPUTE_REGION, PRODUCT_ID, REFERENCE_IMAGE_ID, GCS_URI);
7469
ReferenceImageManagement.listReferenceImagesOfProduct(PROJECT_ID, COMPUTE_REGION, PRODUCT_ID);
7570

7671
// Assert
77-
got = bout.toString();
72+
String got = bout.toString();
7873
assertThat(got).contains(REFERENCE_IMAGE_ID);
7974

8075
bout.reset();

0 commit comments

Comments
 (0)