• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.retail.v2beta;
18 
19 import static com.google.cloud.retail.v2beta.SearchServiceClient.SearchPagedResponse;
20 
21 import com.google.api.gax.core.NoCredentialsProvider;
22 import com.google.api.gax.grpc.GaxGrpcProperties;
23 import com.google.api.gax.grpc.testing.LocalChannelProvider;
24 import com.google.api.gax.grpc.testing.MockGrpcService;
25 import com.google.api.gax.grpc.testing.MockServiceHelper;
26 import com.google.api.gax.rpc.ApiClientHeaderProvider;
27 import com.google.api.gax.rpc.InvalidArgumentException;
28 import com.google.common.collect.Lists;
29 import com.google.protobuf.AbstractMessage;
30 import io.grpc.StatusRuntimeException;
31 import java.io.IOException;
32 import java.util.ArrayList;
33 import java.util.Arrays;
34 import java.util.HashMap;
35 import java.util.List;
36 import java.util.UUID;
37 import javax.annotation.Generated;
38 import org.junit.After;
39 import org.junit.AfterClass;
40 import org.junit.Assert;
41 import org.junit.Before;
42 import org.junit.BeforeClass;
43 import org.junit.Test;
44 
45 @Generated("by gapic-generator-java")
46 public class SearchServiceClientTest {
47   private static MockSearchService mockSearchService;
48   private static MockServiceHelper mockServiceHelper;
49   private LocalChannelProvider channelProvider;
50   private SearchServiceClient client;
51 
52   @BeforeClass
startStaticServer()53   public static void startStaticServer() {
54     mockSearchService = new MockSearchService();
55     mockServiceHelper =
56         new MockServiceHelper(
57             UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockSearchService));
58     mockServiceHelper.start();
59   }
60 
61   @AfterClass
stopServer()62   public static void stopServer() {
63     mockServiceHelper.stop();
64   }
65 
66   @Before
setUp()67   public void setUp() throws IOException {
68     mockServiceHelper.reset();
69     channelProvider = mockServiceHelper.createChannelProvider();
70     SearchServiceSettings settings =
71         SearchServiceSettings.newBuilder()
72             .setTransportChannelProvider(channelProvider)
73             .setCredentialsProvider(NoCredentialsProvider.create())
74             .build();
75     client = SearchServiceClient.create(settings);
76   }
77 
78   @After
tearDown()79   public void tearDown() throws Exception {
80     client.close();
81   }
82 
83   @Test
searchTest()84   public void searchTest() throws Exception {
85     SearchResponse.SearchResult responsesElement = SearchResponse.SearchResult.newBuilder().build();
86     SearchResponse expectedResponse =
87         SearchResponse.newBuilder()
88             .setNextPageToken("")
89             .addAllResults(Arrays.asList(responsesElement))
90             .build();
91     mockSearchService.addResponse(expectedResponse);
92 
93     SearchRequest request =
94         SearchRequest.newBuilder()
95             .setPlacement("placement1792938725")
96             .setBranch(BranchName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]").toString())
97             .setQuery("query107944136")
98             .setVisitorId("visitorId1880545833")
99             .setUserInfo(UserInfo.newBuilder().build())
100             .setPageSize(883849137)
101             .setPageToken("pageToken873572522")
102             .setOffset(-1019779949)
103             .setFilter("filter-1274492040")
104             .setCanonicalFilter("canonicalFilter-722283124")
105             .setOrderBy("orderBy-1207110587")
106             .addAllFacetSpecs(new ArrayList<SearchRequest.FacetSpec>())
107             .setDynamicFacetSpec(SearchRequest.DynamicFacetSpec.newBuilder().build())
108             .setBoostSpec(SearchRequest.BoostSpec.newBuilder().build())
109             .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build())
110             .addAllVariantRollupKeys(new ArrayList<String>())
111             .addAllPageCategories(new ArrayList<String>())
112             .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build())
113             .putAllLabels(new HashMap<String, String>())
114             .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build())
115             .setEntity("entity-1298275357")
116             .build();
117 
118     SearchPagedResponse pagedListResponse = client.search(request);
119 
120     List<SearchResponse.SearchResult> resources =
121         Lists.newArrayList(pagedListResponse.iterateAll());
122 
123     Assert.assertEquals(1, resources.size());
124     Assert.assertEquals(expectedResponse.getResultsList().get(0), resources.get(0));
125 
126     List<AbstractMessage> actualRequests = mockSearchService.getRequests();
127     Assert.assertEquals(1, actualRequests.size());
128     SearchRequest actualRequest = ((SearchRequest) actualRequests.get(0));
129 
130     Assert.assertEquals(request.getPlacement(), actualRequest.getPlacement());
131     Assert.assertEquals(request.getBranch(), actualRequest.getBranch());
132     Assert.assertEquals(request.getQuery(), actualRequest.getQuery());
133     Assert.assertEquals(request.getVisitorId(), actualRequest.getVisitorId());
134     Assert.assertEquals(request.getUserInfo(), actualRequest.getUserInfo());
135     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
136     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
137     Assert.assertEquals(request.getOffset(), actualRequest.getOffset());
138     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
139     Assert.assertEquals(request.getCanonicalFilter(), actualRequest.getCanonicalFilter());
140     Assert.assertEquals(request.getOrderBy(), actualRequest.getOrderBy());
141     Assert.assertEquals(request.getFacetSpecsList(), actualRequest.getFacetSpecsList());
142     Assert.assertEquals(request.getDynamicFacetSpec(), actualRequest.getDynamicFacetSpec());
143     Assert.assertEquals(request.getBoostSpec(), actualRequest.getBoostSpec());
144     Assert.assertEquals(request.getQueryExpansionSpec(), actualRequest.getQueryExpansionSpec());
145     Assert.assertEquals(
146         request.getVariantRollupKeysList(), actualRequest.getVariantRollupKeysList());
147     Assert.assertEquals(request.getPageCategoriesList(), actualRequest.getPageCategoriesList());
148     Assert.assertEquals(request.getSearchMode(), actualRequest.getSearchMode());
149     Assert.assertEquals(request.getPersonalizationSpec(), actualRequest.getPersonalizationSpec());
150     Assert.assertEquals(request.getLabelsMap(), actualRequest.getLabelsMap());
151     Assert.assertEquals(request.getSpellCorrectionSpec(), actualRequest.getSpellCorrectionSpec());
152     Assert.assertEquals(request.getEntity(), actualRequest.getEntity());
153     Assert.assertTrue(
154         channelProvider.isHeaderSent(
155             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
156             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
157   }
158 
159   @Test
searchExceptionTest()160   public void searchExceptionTest() throws Exception {
161     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
162     mockSearchService.addException(exception);
163 
164     try {
165       SearchRequest request =
166           SearchRequest.newBuilder()
167               .setPlacement("placement1792938725")
168               .setBranch(
169                   BranchName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]").toString())
170               .setQuery("query107944136")
171               .setVisitorId("visitorId1880545833")
172               .setUserInfo(UserInfo.newBuilder().build())
173               .setPageSize(883849137)
174               .setPageToken("pageToken873572522")
175               .setOffset(-1019779949)
176               .setFilter("filter-1274492040")
177               .setCanonicalFilter("canonicalFilter-722283124")
178               .setOrderBy("orderBy-1207110587")
179               .addAllFacetSpecs(new ArrayList<SearchRequest.FacetSpec>())
180               .setDynamicFacetSpec(SearchRequest.DynamicFacetSpec.newBuilder().build())
181               .setBoostSpec(SearchRequest.BoostSpec.newBuilder().build())
182               .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build())
183               .addAllVariantRollupKeys(new ArrayList<String>())
184               .addAllPageCategories(new ArrayList<String>())
185               .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build())
186               .putAllLabels(new HashMap<String, String>())
187               .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build())
188               .setEntity("entity-1298275357")
189               .build();
190       client.search(request);
191       Assert.fail("No exception raised");
192     } catch (InvalidArgumentException e) {
193       // Expected exception.
194     }
195   }
196 }
197