You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1645 lines
49 KiB

  1. // Copyright 2019 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // https://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Code generated by gapic-generator. DO NOT EDIT.
  15. package vision
  16. import (
  17. emptypb "github.com/golang/protobuf/ptypes/empty"
  18. visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1"
  19. longrunningpb "google.golang.org/genproto/googleapis/longrunning"
  20. )
  21. import (
  22. "context"
  23. "flag"
  24. "fmt"
  25. "io"
  26. "log"
  27. "net"
  28. "os"
  29. "strings"
  30. "testing"
  31. "github.com/golang/protobuf/proto"
  32. "github.com/golang/protobuf/ptypes"
  33. "google.golang.org/api/option"
  34. status "google.golang.org/genproto/googleapis/rpc/status"
  35. "google.golang.org/grpc"
  36. "google.golang.org/grpc/codes"
  37. "google.golang.org/grpc/metadata"
  38. gstatus "google.golang.org/grpc/status"
  39. )
  40. var _ = io.EOF
  41. var _ = ptypes.MarshalAny
  42. var _ status.Status
  43. type mockProductSearchServer struct {
  44. // Embed for forward compatibility.
  45. // Tests will keep working if more methods are added
  46. // in the future.
  47. visionpb.ProductSearchServer
  48. reqs []proto.Message
  49. // If set, all calls return this error.
  50. err error
  51. // responses to return if err == nil
  52. resps []proto.Message
  53. }
  54. func (s *mockProductSearchServer) CreateProductSet(ctx context.Context, req *visionpb.CreateProductSetRequest) (*visionpb.ProductSet, error) {
  55. md, _ := metadata.FromIncomingContext(ctx)
  56. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  57. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  58. }
  59. s.reqs = append(s.reqs, req)
  60. if s.err != nil {
  61. return nil, s.err
  62. }
  63. return s.resps[0].(*visionpb.ProductSet), nil
  64. }
  65. func (s *mockProductSearchServer) ListProductSets(ctx context.Context, req *visionpb.ListProductSetsRequest) (*visionpb.ListProductSetsResponse, error) {
  66. md, _ := metadata.FromIncomingContext(ctx)
  67. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  68. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  69. }
  70. s.reqs = append(s.reqs, req)
  71. if s.err != nil {
  72. return nil, s.err
  73. }
  74. return s.resps[0].(*visionpb.ListProductSetsResponse), nil
  75. }
  76. func (s *mockProductSearchServer) GetProductSet(ctx context.Context, req *visionpb.GetProductSetRequest) (*visionpb.ProductSet, error) {
  77. md, _ := metadata.FromIncomingContext(ctx)
  78. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  79. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  80. }
  81. s.reqs = append(s.reqs, req)
  82. if s.err != nil {
  83. return nil, s.err
  84. }
  85. return s.resps[0].(*visionpb.ProductSet), nil
  86. }
  87. func (s *mockProductSearchServer) UpdateProductSet(ctx context.Context, req *visionpb.UpdateProductSetRequest) (*visionpb.ProductSet, error) {
  88. md, _ := metadata.FromIncomingContext(ctx)
  89. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  90. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  91. }
  92. s.reqs = append(s.reqs, req)
  93. if s.err != nil {
  94. return nil, s.err
  95. }
  96. return s.resps[0].(*visionpb.ProductSet), nil
  97. }
  98. func (s *mockProductSearchServer) DeleteProductSet(ctx context.Context, req *visionpb.DeleteProductSetRequest) (*emptypb.Empty, error) {
  99. md, _ := metadata.FromIncomingContext(ctx)
  100. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  101. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  102. }
  103. s.reqs = append(s.reqs, req)
  104. if s.err != nil {
  105. return nil, s.err
  106. }
  107. return s.resps[0].(*emptypb.Empty), nil
  108. }
  109. func (s *mockProductSearchServer) CreateProduct(ctx context.Context, req *visionpb.CreateProductRequest) (*visionpb.Product, error) {
  110. md, _ := metadata.FromIncomingContext(ctx)
  111. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  112. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  113. }
  114. s.reqs = append(s.reqs, req)
  115. if s.err != nil {
  116. return nil, s.err
  117. }
  118. return s.resps[0].(*visionpb.Product), nil
  119. }
  120. func (s *mockProductSearchServer) ListProducts(ctx context.Context, req *visionpb.ListProductsRequest) (*visionpb.ListProductsResponse, error) {
  121. md, _ := metadata.FromIncomingContext(ctx)
  122. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  123. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  124. }
  125. s.reqs = append(s.reqs, req)
  126. if s.err != nil {
  127. return nil, s.err
  128. }
  129. return s.resps[0].(*visionpb.ListProductsResponse), nil
  130. }
  131. func (s *mockProductSearchServer) GetProduct(ctx context.Context, req *visionpb.GetProductRequest) (*visionpb.Product, error) {
  132. md, _ := metadata.FromIncomingContext(ctx)
  133. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  134. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  135. }
  136. s.reqs = append(s.reqs, req)
  137. if s.err != nil {
  138. return nil, s.err
  139. }
  140. return s.resps[0].(*visionpb.Product), nil
  141. }
  142. func (s *mockProductSearchServer) UpdateProduct(ctx context.Context, req *visionpb.UpdateProductRequest) (*visionpb.Product, error) {
  143. md, _ := metadata.FromIncomingContext(ctx)
  144. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  145. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  146. }
  147. s.reqs = append(s.reqs, req)
  148. if s.err != nil {
  149. return nil, s.err
  150. }
  151. return s.resps[0].(*visionpb.Product), nil
  152. }
  153. func (s *mockProductSearchServer) DeleteProduct(ctx context.Context, req *visionpb.DeleteProductRequest) (*emptypb.Empty, error) {
  154. md, _ := metadata.FromIncomingContext(ctx)
  155. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  156. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  157. }
  158. s.reqs = append(s.reqs, req)
  159. if s.err != nil {
  160. return nil, s.err
  161. }
  162. return s.resps[0].(*emptypb.Empty), nil
  163. }
  164. func (s *mockProductSearchServer) CreateReferenceImage(ctx context.Context, req *visionpb.CreateReferenceImageRequest) (*visionpb.ReferenceImage, error) {
  165. md, _ := metadata.FromIncomingContext(ctx)
  166. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  167. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  168. }
  169. s.reqs = append(s.reqs, req)
  170. if s.err != nil {
  171. return nil, s.err
  172. }
  173. return s.resps[0].(*visionpb.ReferenceImage), nil
  174. }
  175. func (s *mockProductSearchServer) DeleteReferenceImage(ctx context.Context, req *visionpb.DeleteReferenceImageRequest) (*emptypb.Empty, error) {
  176. md, _ := metadata.FromIncomingContext(ctx)
  177. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  178. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  179. }
  180. s.reqs = append(s.reqs, req)
  181. if s.err != nil {
  182. return nil, s.err
  183. }
  184. return s.resps[0].(*emptypb.Empty), nil
  185. }
  186. func (s *mockProductSearchServer) ListReferenceImages(ctx context.Context, req *visionpb.ListReferenceImagesRequest) (*visionpb.ListReferenceImagesResponse, error) {
  187. md, _ := metadata.FromIncomingContext(ctx)
  188. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  189. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  190. }
  191. s.reqs = append(s.reqs, req)
  192. if s.err != nil {
  193. return nil, s.err
  194. }
  195. return s.resps[0].(*visionpb.ListReferenceImagesResponse), nil
  196. }
  197. func (s *mockProductSearchServer) GetReferenceImage(ctx context.Context, req *visionpb.GetReferenceImageRequest) (*visionpb.ReferenceImage, error) {
  198. md, _ := metadata.FromIncomingContext(ctx)
  199. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  200. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  201. }
  202. s.reqs = append(s.reqs, req)
  203. if s.err != nil {
  204. return nil, s.err
  205. }
  206. return s.resps[0].(*visionpb.ReferenceImage), nil
  207. }
  208. func (s *mockProductSearchServer) AddProductToProductSet(ctx context.Context, req *visionpb.AddProductToProductSetRequest) (*emptypb.Empty, error) {
  209. md, _ := metadata.FromIncomingContext(ctx)
  210. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  211. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  212. }
  213. s.reqs = append(s.reqs, req)
  214. if s.err != nil {
  215. return nil, s.err
  216. }
  217. return s.resps[0].(*emptypb.Empty), nil
  218. }
  219. func (s *mockProductSearchServer) RemoveProductFromProductSet(ctx context.Context, req *visionpb.RemoveProductFromProductSetRequest) (*emptypb.Empty, error) {
  220. md, _ := metadata.FromIncomingContext(ctx)
  221. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  222. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  223. }
  224. s.reqs = append(s.reqs, req)
  225. if s.err != nil {
  226. return nil, s.err
  227. }
  228. return s.resps[0].(*emptypb.Empty), nil
  229. }
  230. func (s *mockProductSearchServer) ListProductsInProductSet(ctx context.Context, req *visionpb.ListProductsInProductSetRequest) (*visionpb.ListProductsInProductSetResponse, error) {
  231. md, _ := metadata.FromIncomingContext(ctx)
  232. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  233. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  234. }
  235. s.reqs = append(s.reqs, req)
  236. if s.err != nil {
  237. return nil, s.err
  238. }
  239. return s.resps[0].(*visionpb.ListProductsInProductSetResponse), nil
  240. }
  241. func (s *mockProductSearchServer) ImportProductSets(ctx context.Context, req *visionpb.ImportProductSetsRequest) (*longrunningpb.Operation, error) {
  242. md, _ := metadata.FromIncomingContext(ctx)
  243. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  244. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  245. }
  246. s.reqs = append(s.reqs, req)
  247. if s.err != nil {
  248. return nil, s.err
  249. }
  250. return s.resps[0].(*longrunningpb.Operation), nil
  251. }
  252. type mockImageAnnotatorServer struct {
  253. // Embed for forward compatibility.
  254. // Tests will keep working if more methods are added
  255. // in the future.
  256. visionpb.ImageAnnotatorServer
  257. reqs []proto.Message
  258. // If set, all calls return this error.
  259. err error
  260. // responses to return if err == nil
  261. resps []proto.Message
  262. }
  263. func (s *mockImageAnnotatorServer) BatchAnnotateImages(ctx context.Context, req *visionpb.BatchAnnotateImagesRequest) (*visionpb.BatchAnnotateImagesResponse, error) {
  264. md, _ := metadata.FromIncomingContext(ctx)
  265. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  266. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  267. }
  268. s.reqs = append(s.reqs, req)
  269. if s.err != nil {
  270. return nil, s.err
  271. }
  272. return s.resps[0].(*visionpb.BatchAnnotateImagesResponse), nil
  273. }
  274. func (s *mockImageAnnotatorServer) AsyncBatchAnnotateFiles(ctx context.Context, req *visionpb.AsyncBatchAnnotateFilesRequest) (*longrunningpb.Operation, error) {
  275. md, _ := metadata.FromIncomingContext(ctx)
  276. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  277. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  278. }
  279. s.reqs = append(s.reqs, req)
  280. if s.err != nil {
  281. return nil, s.err
  282. }
  283. return s.resps[0].(*longrunningpb.Operation), nil
  284. }
  285. // clientOpt is the option tests should use to connect to the test server.
  286. // It is initialized by TestMain.
  287. var clientOpt option.ClientOption
  288. var (
  289. mockProductSearch mockProductSearchServer
  290. mockImageAnnotator mockImageAnnotatorServer
  291. )
  292. func TestMain(m *testing.M) {
  293. flag.Parse()
  294. serv := grpc.NewServer()
  295. visionpb.RegisterProductSearchServer(serv, &mockProductSearch)
  296. visionpb.RegisterImageAnnotatorServer(serv, &mockImageAnnotator)
  297. lis, err := net.Listen("tcp", "localhost:0")
  298. if err != nil {
  299. log.Fatal(err)
  300. }
  301. go serv.Serve(lis)
  302. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  303. if err != nil {
  304. log.Fatal(err)
  305. }
  306. clientOpt = option.WithGRPCConn(conn)
  307. os.Exit(m.Run())
  308. }
  309. func TestProductSearchCreateProduct(t *testing.T) {
  310. var name string = "name3373707"
  311. var displayName string = "displayName1615086568"
  312. var description string = "description-1724546052"
  313. var productCategory string = "productCategory-1607451058"
  314. var expectedResponse = &visionpb.Product{
  315. Name: name,
  316. DisplayName: displayName,
  317. Description: description,
  318. ProductCategory: productCategory,
  319. }
  320. mockProductSearch.err = nil
  321. mockProductSearch.reqs = nil
  322. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  323. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  324. var product *visionpb.Product = &visionpb.Product{}
  325. var request = &visionpb.CreateProductRequest{
  326. Parent: formattedParent,
  327. Product: product,
  328. }
  329. c, err := NewProductSearchClient(context.Background(), clientOpt)
  330. if err != nil {
  331. t.Fatal(err)
  332. }
  333. resp, err := c.CreateProduct(context.Background(), request)
  334. if err != nil {
  335. t.Fatal(err)
  336. }
  337. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  338. t.Errorf("wrong request %q, want %q", got, want)
  339. }
  340. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  341. t.Errorf("wrong response %q, want %q)", got, want)
  342. }
  343. }
  344. func TestProductSearchCreateProductError(t *testing.T) {
  345. errCode := codes.PermissionDenied
  346. mockProductSearch.err = gstatus.Error(errCode, "test error")
  347. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  348. var product *visionpb.Product = &visionpb.Product{}
  349. var request = &visionpb.CreateProductRequest{
  350. Parent: formattedParent,
  351. Product: product,
  352. }
  353. c, err := NewProductSearchClient(context.Background(), clientOpt)
  354. if err != nil {
  355. t.Fatal(err)
  356. }
  357. resp, err := c.CreateProduct(context.Background(), request)
  358. if st, ok := gstatus.FromError(err); !ok {
  359. t.Errorf("got error %v, expected grpc error", err)
  360. } else if c := st.Code(); c != errCode {
  361. t.Errorf("got error code %q, want %q", c, errCode)
  362. }
  363. _ = resp
  364. }
  365. func TestProductSearchListProducts(t *testing.T) {
  366. var nextPageToken string = ""
  367. var productsElement *visionpb.Product = &visionpb.Product{}
  368. var products = []*visionpb.Product{productsElement}
  369. var expectedResponse = &visionpb.ListProductsResponse{
  370. NextPageToken: nextPageToken,
  371. Products: products,
  372. }
  373. mockProductSearch.err = nil
  374. mockProductSearch.reqs = nil
  375. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  376. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  377. var request = &visionpb.ListProductsRequest{
  378. Parent: formattedParent,
  379. }
  380. c, err := NewProductSearchClient(context.Background(), clientOpt)
  381. if err != nil {
  382. t.Fatal(err)
  383. }
  384. resp, err := c.ListProducts(context.Background(), request).Next()
  385. if err != nil {
  386. t.Fatal(err)
  387. }
  388. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  389. t.Errorf("wrong request %q, want %q", got, want)
  390. }
  391. want := (interface{})(expectedResponse.Products[0])
  392. got := (interface{})(resp)
  393. var ok bool
  394. switch want := (want).(type) {
  395. case proto.Message:
  396. ok = proto.Equal(want, got.(proto.Message))
  397. default:
  398. ok = want == got
  399. }
  400. if !ok {
  401. t.Errorf("wrong response %q, want %q)", got, want)
  402. }
  403. }
  404. func TestProductSearchListProductsError(t *testing.T) {
  405. errCode := codes.PermissionDenied
  406. mockProductSearch.err = gstatus.Error(errCode, "test error")
  407. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  408. var request = &visionpb.ListProductsRequest{
  409. Parent: formattedParent,
  410. }
  411. c, err := NewProductSearchClient(context.Background(), clientOpt)
  412. if err != nil {
  413. t.Fatal(err)
  414. }
  415. resp, err := c.ListProducts(context.Background(), request).Next()
  416. if st, ok := gstatus.FromError(err); !ok {
  417. t.Errorf("got error %v, expected grpc error", err)
  418. } else if c := st.Code(); c != errCode {
  419. t.Errorf("got error code %q, want %q", c, errCode)
  420. }
  421. _ = resp
  422. }
  423. func TestProductSearchGetProduct(t *testing.T) {
  424. var name2 string = "name2-1052831874"
  425. var displayName string = "displayName1615086568"
  426. var description string = "description-1724546052"
  427. var productCategory string = "productCategory-1607451058"
  428. var expectedResponse = &visionpb.Product{
  429. Name: name2,
  430. DisplayName: displayName,
  431. Description: description,
  432. ProductCategory: productCategory,
  433. }
  434. mockProductSearch.err = nil
  435. mockProductSearch.reqs = nil
  436. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  437. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  438. var request = &visionpb.GetProductRequest{
  439. Name: formattedName,
  440. }
  441. c, err := NewProductSearchClient(context.Background(), clientOpt)
  442. if err != nil {
  443. t.Fatal(err)
  444. }
  445. resp, err := c.GetProduct(context.Background(), request)
  446. if err != nil {
  447. t.Fatal(err)
  448. }
  449. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  450. t.Errorf("wrong request %q, want %q", got, want)
  451. }
  452. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  453. t.Errorf("wrong response %q, want %q)", got, want)
  454. }
  455. }
  456. func TestProductSearchGetProductError(t *testing.T) {
  457. errCode := codes.PermissionDenied
  458. mockProductSearch.err = gstatus.Error(errCode, "test error")
  459. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  460. var request = &visionpb.GetProductRequest{
  461. Name: formattedName,
  462. }
  463. c, err := NewProductSearchClient(context.Background(), clientOpt)
  464. if err != nil {
  465. t.Fatal(err)
  466. }
  467. resp, err := c.GetProduct(context.Background(), request)
  468. if st, ok := gstatus.FromError(err); !ok {
  469. t.Errorf("got error %v, expected grpc error", err)
  470. } else if c := st.Code(); c != errCode {
  471. t.Errorf("got error code %q, want %q", c, errCode)
  472. }
  473. _ = resp
  474. }
  475. func TestProductSearchUpdateProduct(t *testing.T) {
  476. var name string = "name3373707"
  477. var displayName string = "displayName1615086568"
  478. var description string = "description-1724546052"
  479. var productCategory string = "productCategory-1607451058"
  480. var expectedResponse = &visionpb.Product{
  481. Name: name,
  482. DisplayName: displayName,
  483. Description: description,
  484. ProductCategory: productCategory,
  485. }
  486. mockProductSearch.err = nil
  487. mockProductSearch.reqs = nil
  488. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  489. var product *visionpb.Product = &visionpb.Product{}
  490. var request = &visionpb.UpdateProductRequest{
  491. Product: product,
  492. }
  493. c, err := NewProductSearchClient(context.Background(), clientOpt)
  494. if err != nil {
  495. t.Fatal(err)
  496. }
  497. resp, err := c.UpdateProduct(context.Background(), request)
  498. if err != nil {
  499. t.Fatal(err)
  500. }
  501. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  502. t.Errorf("wrong request %q, want %q", got, want)
  503. }
  504. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  505. t.Errorf("wrong response %q, want %q)", got, want)
  506. }
  507. }
  508. func TestProductSearchUpdateProductError(t *testing.T) {
  509. errCode := codes.PermissionDenied
  510. mockProductSearch.err = gstatus.Error(errCode, "test error")
  511. var product *visionpb.Product = &visionpb.Product{}
  512. var request = &visionpb.UpdateProductRequest{
  513. Product: product,
  514. }
  515. c, err := NewProductSearchClient(context.Background(), clientOpt)
  516. if err != nil {
  517. t.Fatal(err)
  518. }
  519. resp, err := c.UpdateProduct(context.Background(), request)
  520. if st, ok := gstatus.FromError(err); !ok {
  521. t.Errorf("got error %v, expected grpc error", err)
  522. } else if c := st.Code(); c != errCode {
  523. t.Errorf("got error code %q, want %q", c, errCode)
  524. }
  525. _ = resp
  526. }
  527. func TestProductSearchDeleteProduct(t *testing.T) {
  528. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  529. mockProductSearch.err = nil
  530. mockProductSearch.reqs = nil
  531. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  532. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  533. var request = &visionpb.DeleteProductRequest{
  534. Name: formattedName,
  535. }
  536. c, err := NewProductSearchClient(context.Background(), clientOpt)
  537. if err != nil {
  538. t.Fatal(err)
  539. }
  540. err = c.DeleteProduct(context.Background(), request)
  541. if err != nil {
  542. t.Fatal(err)
  543. }
  544. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  545. t.Errorf("wrong request %q, want %q", got, want)
  546. }
  547. }
  548. func TestProductSearchDeleteProductError(t *testing.T) {
  549. errCode := codes.PermissionDenied
  550. mockProductSearch.err = gstatus.Error(errCode, "test error")
  551. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  552. var request = &visionpb.DeleteProductRequest{
  553. Name: formattedName,
  554. }
  555. c, err := NewProductSearchClient(context.Background(), clientOpt)
  556. if err != nil {
  557. t.Fatal(err)
  558. }
  559. err = c.DeleteProduct(context.Background(), request)
  560. if st, ok := gstatus.FromError(err); !ok {
  561. t.Errorf("got error %v, expected grpc error", err)
  562. } else if c := st.Code(); c != errCode {
  563. t.Errorf("got error code %q, want %q", c, errCode)
  564. }
  565. }
  566. func TestProductSearchListReferenceImages(t *testing.T) {
  567. var pageSize int32 = 883849137
  568. var nextPageToken string = ""
  569. var referenceImagesElement *visionpb.ReferenceImage = &visionpb.ReferenceImage{}
  570. var referenceImages = []*visionpb.ReferenceImage{referenceImagesElement}
  571. var expectedResponse = &visionpb.ListReferenceImagesResponse{
  572. PageSize: pageSize,
  573. NextPageToken: nextPageToken,
  574. ReferenceImages: referenceImages,
  575. }
  576. mockProductSearch.err = nil
  577. mockProductSearch.reqs = nil
  578. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  579. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  580. var request = &visionpb.ListReferenceImagesRequest{
  581. Parent: formattedParent,
  582. }
  583. c, err := NewProductSearchClient(context.Background(), clientOpt)
  584. if err != nil {
  585. t.Fatal(err)
  586. }
  587. resp, err := c.ListReferenceImages(context.Background(), request).Next()
  588. if err != nil {
  589. t.Fatal(err)
  590. }
  591. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  592. t.Errorf("wrong request %q, want %q", got, want)
  593. }
  594. want := (interface{})(expectedResponse.ReferenceImages[0])
  595. got := (interface{})(resp)
  596. var ok bool
  597. switch want := (want).(type) {
  598. case proto.Message:
  599. ok = proto.Equal(want, got.(proto.Message))
  600. default:
  601. ok = want == got
  602. }
  603. if !ok {
  604. t.Errorf("wrong response %q, want %q)", got, want)
  605. }
  606. }
  607. func TestProductSearchListReferenceImagesError(t *testing.T) {
  608. errCode := codes.PermissionDenied
  609. mockProductSearch.err = gstatus.Error(errCode, "test error")
  610. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  611. var request = &visionpb.ListReferenceImagesRequest{
  612. Parent: formattedParent,
  613. }
  614. c, err := NewProductSearchClient(context.Background(), clientOpt)
  615. if err != nil {
  616. t.Fatal(err)
  617. }
  618. resp, err := c.ListReferenceImages(context.Background(), request).Next()
  619. if st, ok := gstatus.FromError(err); !ok {
  620. t.Errorf("got error %v, expected grpc error", err)
  621. } else if c := st.Code(); c != errCode {
  622. t.Errorf("got error code %q, want %q", c, errCode)
  623. }
  624. _ = resp
  625. }
  626. func TestProductSearchGetReferenceImage(t *testing.T) {
  627. var name2 string = "name2-1052831874"
  628. var uri string = "uri116076"
  629. var expectedResponse = &visionpb.ReferenceImage{
  630. Name: name2,
  631. Uri: uri,
  632. }
  633. mockProductSearch.err = nil
  634. mockProductSearch.reqs = nil
  635. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  636. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s/referenceImages/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]")
  637. var request = &visionpb.GetReferenceImageRequest{
  638. Name: formattedName,
  639. }
  640. c, err := NewProductSearchClient(context.Background(), clientOpt)
  641. if err != nil {
  642. t.Fatal(err)
  643. }
  644. resp, err := c.GetReferenceImage(context.Background(), request)
  645. if err != nil {
  646. t.Fatal(err)
  647. }
  648. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  649. t.Errorf("wrong request %q, want %q", got, want)
  650. }
  651. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  652. t.Errorf("wrong response %q, want %q)", got, want)
  653. }
  654. }
  655. func TestProductSearchGetReferenceImageError(t *testing.T) {
  656. errCode := codes.PermissionDenied
  657. mockProductSearch.err = gstatus.Error(errCode, "test error")
  658. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s/referenceImages/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]")
  659. var request = &visionpb.GetReferenceImageRequest{
  660. Name: formattedName,
  661. }
  662. c, err := NewProductSearchClient(context.Background(), clientOpt)
  663. if err != nil {
  664. t.Fatal(err)
  665. }
  666. resp, err := c.GetReferenceImage(context.Background(), request)
  667. if st, ok := gstatus.FromError(err); !ok {
  668. t.Errorf("got error %v, expected grpc error", err)
  669. } else if c := st.Code(); c != errCode {
  670. t.Errorf("got error code %q, want %q", c, errCode)
  671. }
  672. _ = resp
  673. }
  674. func TestProductSearchDeleteReferenceImage(t *testing.T) {
  675. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  676. mockProductSearch.err = nil
  677. mockProductSearch.reqs = nil
  678. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  679. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s/referenceImages/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]")
  680. var request = &visionpb.DeleteReferenceImageRequest{
  681. Name: formattedName,
  682. }
  683. c, err := NewProductSearchClient(context.Background(), clientOpt)
  684. if err != nil {
  685. t.Fatal(err)
  686. }
  687. err = c.DeleteReferenceImage(context.Background(), request)
  688. if err != nil {
  689. t.Fatal(err)
  690. }
  691. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  692. t.Errorf("wrong request %q, want %q", got, want)
  693. }
  694. }
  695. func TestProductSearchDeleteReferenceImageError(t *testing.T) {
  696. errCode := codes.PermissionDenied
  697. mockProductSearch.err = gstatus.Error(errCode, "test error")
  698. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/products/%s/referenceImages/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]")
  699. var request = &visionpb.DeleteReferenceImageRequest{
  700. Name: formattedName,
  701. }
  702. c, err := NewProductSearchClient(context.Background(), clientOpt)
  703. if err != nil {
  704. t.Fatal(err)
  705. }
  706. err = c.DeleteReferenceImage(context.Background(), request)
  707. if st, ok := gstatus.FromError(err); !ok {
  708. t.Errorf("got error %v, expected grpc error", err)
  709. } else if c := st.Code(); c != errCode {
  710. t.Errorf("got error code %q, want %q", c, errCode)
  711. }
  712. }
  713. func TestProductSearchCreateReferenceImage(t *testing.T) {
  714. var name string = "name3373707"
  715. var uri string = "uri116076"
  716. var expectedResponse = &visionpb.ReferenceImage{
  717. Name: name,
  718. Uri: uri,
  719. }
  720. mockProductSearch.err = nil
  721. mockProductSearch.reqs = nil
  722. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  723. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  724. var referenceImage *visionpb.ReferenceImage = &visionpb.ReferenceImage{}
  725. var request = &visionpb.CreateReferenceImageRequest{
  726. Parent: formattedParent,
  727. ReferenceImage: referenceImage,
  728. }
  729. c, err := NewProductSearchClient(context.Background(), clientOpt)
  730. if err != nil {
  731. t.Fatal(err)
  732. }
  733. resp, err := c.CreateReferenceImage(context.Background(), request)
  734. if err != nil {
  735. t.Fatal(err)
  736. }
  737. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  738. t.Errorf("wrong request %q, want %q", got, want)
  739. }
  740. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  741. t.Errorf("wrong response %q, want %q)", got, want)
  742. }
  743. }
  744. func TestProductSearchCreateReferenceImageError(t *testing.T) {
  745. errCode := codes.PermissionDenied
  746. mockProductSearch.err = gstatus.Error(errCode, "test error")
  747. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s/products/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT]")
  748. var referenceImage *visionpb.ReferenceImage = &visionpb.ReferenceImage{}
  749. var request = &visionpb.CreateReferenceImageRequest{
  750. Parent: formattedParent,
  751. ReferenceImage: referenceImage,
  752. }
  753. c, err := NewProductSearchClient(context.Background(), clientOpt)
  754. if err != nil {
  755. t.Fatal(err)
  756. }
  757. resp, err := c.CreateReferenceImage(context.Background(), request)
  758. if st, ok := gstatus.FromError(err); !ok {
  759. t.Errorf("got error %v, expected grpc error", err)
  760. } else if c := st.Code(); c != errCode {
  761. t.Errorf("got error code %q, want %q", c, errCode)
  762. }
  763. _ = resp
  764. }
  765. func TestProductSearchCreateProductSet(t *testing.T) {
  766. var name string = "name3373707"
  767. var displayName string = "displayName1615086568"
  768. var expectedResponse = &visionpb.ProductSet{
  769. Name: name,
  770. DisplayName: displayName,
  771. }
  772. mockProductSearch.err = nil
  773. mockProductSearch.reqs = nil
  774. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  775. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  776. var productSet *visionpb.ProductSet = &visionpb.ProductSet{}
  777. var request = &visionpb.CreateProductSetRequest{
  778. Parent: formattedParent,
  779. ProductSet: productSet,
  780. }
  781. c, err := NewProductSearchClient(context.Background(), clientOpt)
  782. if err != nil {
  783. t.Fatal(err)
  784. }
  785. resp, err := c.CreateProductSet(context.Background(), request)
  786. if err != nil {
  787. t.Fatal(err)
  788. }
  789. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  790. t.Errorf("wrong request %q, want %q", got, want)
  791. }
  792. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  793. t.Errorf("wrong response %q, want %q)", got, want)
  794. }
  795. }
  796. func TestProductSearchCreateProductSetError(t *testing.T) {
  797. errCode := codes.PermissionDenied
  798. mockProductSearch.err = gstatus.Error(errCode, "test error")
  799. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  800. var productSet *visionpb.ProductSet = &visionpb.ProductSet{}
  801. var request = &visionpb.CreateProductSetRequest{
  802. Parent: formattedParent,
  803. ProductSet: productSet,
  804. }
  805. c, err := NewProductSearchClient(context.Background(), clientOpt)
  806. if err != nil {
  807. t.Fatal(err)
  808. }
  809. resp, err := c.CreateProductSet(context.Background(), request)
  810. if st, ok := gstatus.FromError(err); !ok {
  811. t.Errorf("got error %v, expected grpc error", err)
  812. } else if c := st.Code(); c != errCode {
  813. t.Errorf("got error code %q, want %q", c, errCode)
  814. }
  815. _ = resp
  816. }
  817. func TestProductSearchListProductSets(t *testing.T) {
  818. var nextPageToken string = ""
  819. var productSetsElement *visionpb.ProductSet = &visionpb.ProductSet{}
  820. var productSets = []*visionpb.ProductSet{productSetsElement}
  821. var expectedResponse = &visionpb.ListProductSetsResponse{
  822. NextPageToken: nextPageToken,
  823. ProductSets: productSets,
  824. }
  825. mockProductSearch.err = nil
  826. mockProductSearch.reqs = nil
  827. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  828. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  829. var request = &visionpb.ListProductSetsRequest{
  830. Parent: formattedParent,
  831. }
  832. c, err := NewProductSearchClient(context.Background(), clientOpt)
  833. if err != nil {
  834. t.Fatal(err)
  835. }
  836. resp, err := c.ListProductSets(context.Background(), request).Next()
  837. if err != nil {
  838. t.Fatal(err)
  839. }
  840. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  841. t.Errorf("wrong request %q, want %q", got, want)
  842. }
  843. want := (interface{})(expectedResponse.ProductSets[0])
  844. got := (interface{})(resp)
  845. var ok bool
  846. switch want := (want).(type) {
  847. case proto.Message:
  848. ok = proto.Equal(want, got.(proto.Message))
  849. default:
  850. ok = want == got
  851. }
  852. if !ok {
  853. t.Errorf("wrong response %q, want %q)", got, want)
  854. }
  855. }
  856. func TestProductSearchListProductSetsError(t *testing.T) {
  857. errCode := codes.PermissionDenied
  858. mockProductSearch.err = gstatus.Error(errCode, "test error")
  859. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  860. var request = &visionpb.ListProductSetsRequest{
  861. Parent: formattedParent,
  862. }
  863. c, err := NewProductSearchClient(context.Background(), clientOpt)
  864. if err != nil {
  865. t.Fatal(err)
  866. }
  867. resp, err := c.ListProductSets(context.Background(), request).Next()
  868. if st, ok := gstatus.FromError(err); !ok {
  869. t.Errorf("got error %v, expected grpc error", err)
  870. } else if c := st.Code(); c != errCode {
  871. t.Errorf("got error code %q, want %q", c, errCode)
  872. }
  873. _ = resp
  874. }
  875. func TestProductSearchGetProductSet(t *testing.T) {
  876. var name2 string = "name2-1052831874"
  877. var displayName string = "displayName1615086568"
  878. var expectedResponse = &visionpb.ProductSet{
  879. Name: name2,
  880. DisplayName: displayName,
  881. }
  882. mockProductSearch.err = nil
  883. mockProductSearch.reqs = nil
  884. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  885. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  886. var request = &visionpb.GetProductSetRequest{
  887. Name: formattedName,
  888. }
  889. c, err := NewProductSearchClient(context.Background(), clientOpt)
  890. if err != nil {
  891. t.Fatal(err)
  892. }
  893. resp, err := c.GetProductSet(context.Background(), request)
  894. if err != nil {
  895. t.Fatal(err)
  896. }
  897. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  898. t.Errorf("wrong request %q, want %q", got, want)
  899. }
  900. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  901. t.Errorf("wrong response %q, want %q)", got, want)
  902. }
  903. }
  904. func TestProductSearchGetProductSetError(t *testing.T) {
  905. errCode := codes.PermissionDenied
  906. mockProductSearch.err = gstatus.Error(errCode, "test error")
  907. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  908. var request = &visionpb.GetProductSetRequest{
  909. Name: formattedName,
  910. }
  911. c, err := NewProductSearchClient(context.Background(), clientOpt)
  912. if err != nil {
  913. t.Fatal(err)
  914. }
  915. resp, err := c.GetProductSet(context.Background(), request)
  916. if st, ok := gstatus.FromError(err); !ok {
  917. t.Errorf("got error %v, expected grpc error", err)
  918. } else if c := st.Code(); c != errCode {
  919. t.Errorf("got error code %q, want %q", c, errCode)
  920. }
  921. _ = resp
  922. }
  923. func TestProductSearchUpdateProductSet(t *testing.T) {
  924. var name string = "name3373707"
  925. var displayName string = "displayName1615086568"
  926. var expectedResponse = &visionpb.ProductSet{
  927. Name: name,
  928. DisplayName: displayName,
  929. }
  930. mockProductSearch.err = nil
  931. mockProductSearch.reqs = nil
  932. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  933. var productSet *visionpb.ProductSet = &visionpb.ProductSet{}
  934. var request = &visionpb.UpdateProductSetRequest{
  935. ProductSet: productSet,
  936. }
  937. c, err := NewProductSearchClient(context.Background(), clientOpt)
  938. if err != nil {
  939. t.Fatal(err)
  940. }
  941. resp, err := c.UpdateProductSet(context.Background(), request)
  942. if err != nil {
  943. t.Fatal(err)
  944. }
  945. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  946. t.Errorf("wrong request %q, want %q", got, want)
  947. }
  948. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  949. t.Errorf("wrong response %q, want %q)", got, want)
  950. }
  951. }
  952. func TestProductSearchUpdateProductSetError(t *testing.T) {
  953. errCode := codes.PermissionDenied
  954. mockProductSearch.err = gstatus.Error(errCode, "test error")
  955. var productSet *visionpb.ProductSet = &visionpb.ProductSet{}
  956. var request = &visionpb.UpdateProductSetRequest{
  957. ProductSet: productSet,
  958. }
  959. c, err := NewProductSearchClient(context.Background(), clientOpt)
  960. if err != nil {
  961. t.Fatal(err)
  962. }
  963. resp, err := c.UpdateProductSet(context.Background(), request)
  964. if st, ok := gstatus.FromError(err); !ok {
  965. t.Errorf("got error %v, expected grpc error", err)
  966. } else if c := st.Code(); c != errCode {
  967. t.Errorf("got error code %q, want %q", c, errCode)
  968. }
  969. _ = resp
  970. }
  971. func TestProductSearchDeleteProductSet(t *testing.T) {
  972. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  973. mockProductSearch.err = nil
  974. mockProductSearch.reqs = nil
  975. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  976. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  977. var request = &visionpb.DeleteProductSetRequest{
  978. Name: formattedName,
  979. }
  980. c, err := NewProductSearchClient(context.Background(), clientOpt)
  981. if err != nil {
  982. t.Fatal(err)
  983. }
  984. err = c.DeleteProductSet(context.Background(), request)
  985. if err != nil {
  986. t.Fatal(err)
  987. }
  988. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  989. t.Errorf("wrong request %q, want %q", got, want)
  990. }
  991. }
  992. func TestProductSearchDeleteProductSetError(t *testing.T) {
  993. errCode := codes.PermissionDenied
  994. mockProductSearch.err = gstatus.Error(errCode, "test error")
  995. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  996. var request = &visionpb.DeleteProductSetRequest{
  997. Name: formattedName,
  998. }
  999. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1000. if err != nil {
  1001. t.Fatal(err)
  1002. }
  1003. err = c.DeleteProductSet(context.Background(), request)
  1004. if st, ok := gstatus.FromError(err); !ok {
  1005. t.Errorf("got error %v, expected grpc error", err)
  1006. } else if c := st.Code(); c != errCode {
  1007. t.Errorf("got error code %q, want %q", c, errCode)
  1008. }
  1009. }
  1010. func TestProductSearchAddProductToProductSet(t *testing.T) {
  1011. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  1012. mockProductSearch.err = nil
  1013. mockProductSearch.reqs = nil
  1014. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  1015. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  1016. var product string = "product-309474065"
  1017. var request = &visionpb.AddProductToProductSetRequest{
  1018. Name: formattedName,
  1019. Product: product,
  1020. }
  1021. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1022. if err != nil {
  1023. t.Fatal(err)
  1024. }
  1025. err = c.AddProductToProductSet(context.Background(), request)
  1026. if err != nil {
  1027. t.Fatal(err)
  1028. }
  1029. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  1030. t.Errorf("wrong request %q, want %q", got, want)
  1031. }
  1032. }
  1033. func TestProductSearchAddProductToProductSetError(t *testing.T) {
  1034. errCode := codes.PermissionDenied
  1035. mockProductSearch.err = gstatus.Error(errCode, "test error")
  1036. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  1037. var product string = "product-309474065"
  1038. var request = &visionpb.AddProductToProductSetRequest{
  1039. Name: formattedName,
  1040. Product: product,
  1041. }
  1042. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1043. if err != nil {
  1044. t.Fatal(err)
  1045. }
  1046. err = c.AddProductToProductSet(context.Background(), request)
  1047. if st, ok := gstatus.FromError(err); !ok {
  1048. t.Errorf("got error %v, expected grpc error", err)
  1049. } else if c := st.Code(); c != errCode {
  1050. t.Errorf("got error code %q, want %q", c, errCode)
  1051. }
  1052. }
  1053. func TestProductSearchRemoveProductFromProductSet(t *testing.T) {
  1054. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  1055. mockProductSearch.err = nil
  1056. mockProductSearch.reqs = nil
  1057. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  1058. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  1059. var product string = "product-309474065"
  1060. var request = &visionpb.RemoveProductFromProductSetRequest{
  1061. Name: formattedName,
  1062. Product: product,
  1063. }
  1064. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1065. if err != nil {
  1066. t.Fatal(err)
  1067. }
  1068. err = c.RemoveProductFromProductSet(context.Background(), request)
  1069. if err != nil {
  1070. t.Fatal(err)
  1071. }
  1072. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  1073. t.Errorf("wrong request %q, want %q", got, want)
  1074. }
  1075. }
  1076. func TestProductSearchRemoveProductFromProductSetError(t *testing.T) {
  1077. errCode := codes.PermissionDenied
  1078. mockProductSearch.err = gstatus.Error(errCode, "test error")
  1079. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  1080. var product string = "product-309474065"
  1081. var request = &visionpb.RemoveProductFromProductSetRequest{
  1082. Name: formattedName,
  1083. Product: product,
  1084. }
  1085. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1086. if err != nil {
  1087. t.Fatal(err)
  1088. }
  1089. err = c.RemoveProductFromProductSet(context.Background(), request)
  1090. if st, ok := gstatus.FromError(err); !ok {
  1091. t.Errorf("got error %v, expected grpc error", err)
  1092. } else if c := st.Code(); c != errCode {
  1093. t.Errorf("got error code %q, want %q", c, errCode)
  1094. }
  1095. }
  1096. func TestProductSearchListProductsInProductSet(t *testing.T) {
  1097. var nextPageToken string = ""
  1098. var productsElement *visionpb.Product = &visionpb.Product{}
  1099. var products = []*visionpb.Product{productsElement}
  1100. var expectedResponse = &visionpb.ListProductsInProductSetResponse{
  1101. NextPageToken: nextPageToken,
  1102. Products: products,
  1103. }
  1104. mockProductSearch.err = nil
  1105. mockProductSearch.reqs = nil
  1106. mockProductSearch.resps = append(mockProductSearch.resps[:0], expectedResponse)
  1107. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  1108. var request = &visionpb.ListProductsInProductSetRequest{
  1109. Name: formattedName,
  1110. }
  1111. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1112. if err != nil {
  1113. t.Fatal(err)
  1114. }
  1115. resp, err := c.ListProductsInProductSet(context.Background(), request).Next()
  1116. if err != nil {
  1117. t.Fatal(err)
  1118. }
  1119. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  1120. t.Errorf("wrong request %q, want %q", got, want)
  1121. }
  1122. want := (interface{})(expectedResponse.Products[0])
  1123. got := (interface{})(resp)
  1124. var ok bool
  1125. switch want := (want).(type) {
  1126. case proto.Message:
  1127. ok = proto.Equal(want, got.(proto.Message))
  1128. default:
  1129. ok = want == got
  1130. }
  1131. if !ok {
  1132. t.Errorf("wrong response %q, want %q)", got, want)
  1133. }
  1134. }
  1135. func TestProductSearchListProductsInProductSetError(t *testing.T) {
  1136. errCode := codes.PermissionDenied
  1137. mockProductSearch.err = gstatus.Error(errCode, "test error")
  1138. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/productSets/%s", "[PROJECT]", "[LOCATION]", "[PRODUCT_SET]")
  1139. var request = &visionpb.ListProductsInProductSetRequest{
  1140. Name: formattedName,
  1141. }
  1142. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1143. if err != nil {
  1144. t.Fatal(err)
  1145. }
  1146. resp, err := c.ListProductsInProductSet(context.Background(), request).Next()
  1147. if st, ok := gstatus.FromError(err); !ok {
  1148. t.Errorf("got error %v, expected grpc error", err)
  1149. } else if c := st.Code(); c != errCode {
  1150. t.Errorf("got error code %q, want %q", c, errCode)
  1151. }
  1152. _ = resp
  1153. }
  1154. func TestProductSearchImportProductSets(t *testing.T) {
  1155. var expectedResponse *visionpb.ImportProductSetsResponse = &visionpb.ImportProductSetsResponse{}
  1156. mockProductSearch.err = nil
  1157. mockProductSearch.reqs = nil
  1158. any, err := ptypes.MarshalAny(expectedResponse)
  1159. if err != nil {
  1160. t.Fatal(err)
  1161. }
  1162. mockProductSearch.resps = append(mockProductSearch.resps[:0], &longrunningpb.Operation{
  1163. Name: "longrunning-test",
  1164. Done: true,
  1165. Result: &longrunningpb.Operation_Response{Response: any},
  1166. })
  1167. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  1168. var inputConfig *visionpb.ImportProductSetsInputConfig = &visionpb.ImportProductSetsInputConfig{}
  1169. var request = &visionpb.ImportProductSetsRequest{
  1170. Parent: formattedParent,
  1171. InputConfig: inputConfig,
  1172. }
  1173. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1174. if err != nil {
  1175. t.Fatal(err)
  1176. }
  1177. respLRO, err := c.ImportProductSets(context.Background(), request)
  1178. if err != nil {
  1179. t.Fatal(err)
  1180. }
  1181. resp, err := respLRO.Wait(context.Background())
  1182. if err != nil {
  1183. t.Fatal(err)
  1184. }
  1185. if want, got := request, mockProductSearch.reqs[0]; !proto.Equal(want, got) {
  1186. t.Errorf("wrong request %q, want %q", got, want)
  1187. }
  1188. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1189. t.Errorf("wrong response %q, want %q)", got, want)
  1190. }
  1191. }
  1192. func TestProductSearchImportProductSetsError(t *testing.T) {
  1193. errCode := codes.PermissionDenied
  1194. mockProductSearch.err = nil
  1195. mockProductSearch.resps = append(mockProductSearch.resps[:0], &longrunningpb.Operation{
  1196. Name: "longrunning-test",
  1197. Done: true,
  1198. Result: &longrunningpb.Operation_Error{
  1199. Error: &status.Status{
  1200. Code: int32(errCode),
  1201. Message: "test error",
  1202. },
  1203. },
  1204. })
  1205. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  1206. var inputConfig *visionpb.ImportProductSetsInputConfig = &visionpb.ImportProductSetsInputConfig{}
  1207. var request = &visionpb.ImportProductSetsRequest{
  1208. Parent: formattedParent,
  1209. InputConfig: inputConfig,
  1210. }
  1211. c, err := NewProductSearchClient(context.Background(), clientOpt)
  1212. if err != nil {
  1213. t.Fatal(err)
  1214. }
  1215. respLRO, err := c.ImportProductSets(context.Background(), request)
  1216. if err != nil {
  1217. t.Fatal(err)
  1218. }
  1219. resp, err := respLRO.Wait(context.Background())
  1220. if st, ok := gstatus.FromError(err); !ok {
  1221. t.Errorf("got error %v, expected grpc error", err)
  1222. } else if c := st.Code(); c != errCode {
  1223. t.Errorf("got error code %q, want %q", c, errCode)
  1224. }
  1225. _ = resp
  1226. }
  1227. func TestImageAnnotatorBatchAnnotateImages(t *testing.T) {
  1228. var expectedResponse *visionpb.BatchAnnotateImagesResponse = &visionpb.BatchAnnotateImagesResponse{}
  1229. mockImageAnnotator.err = nil
  1230. mockImageAnnotator.reqs = nil
  1231. mockImageAnnotator.resps = append(mockImageAnnotator.resps[:0], expectedResponse)
  1232. var requests []*visionpb.AnnotateImageRequest = nil
  1233. var request = &visionpb.BatchAnnotateImagesRequest{
  1234. Requests: requests,
  1235. }
  1236. c, err := NewImageAnnotatorClient(context.Background(), clientOpt)
  1237. if err != nil {
  1238. t.Fatal(err)
  1239. }
  1240. resp, err := c.BatchAnnotateImages(context.Background(), request)
  1241. if err != nil {
  1242. t.Fatal(err)
  1243. }
  1244. if want, got := request, mockImageAnnotator.reqs[0]; !proto.Equal(want, got) {
  1245. t.Errorf("wrong request %q, want %q", got, want)
  1246. }
  1247. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1248. t.Errorf("wrong response %q, want %q)", got, want)
  1249. }
  1250. }
  1251. func TestImageAnnotatorBatchAnnotateImagesError(t *testing.T) {
  1252. errCode := codes.PermissionDenied
  1253. mockImageAnnotator.err = gstatus.Error(errCode, "test error")
  1254. var requests []*visionpb.AnnotateImageRequest = nil
  1255. var request = &visionpb.BatchAnnotateImagesRequest{
  1256. Requests: requests,
  1257. }
  1258. c, err := NewImageAnnotatorClient(context.Background(), clientOpt)
  1259. if err != nil {
  1260. t.Fatal(err)
  1261. }
  1262. resp, err := c.BatchAnnotateImages(context.Background(), request)
  1263. if st, ok := gstatus.FromError(err); !ok {
  1264. t.Errorf("got error %v, expected grpc error", err)
  1265. } else if c := st.Code(); c != errCode {
  1266. t.Errorf("got error code %q, want %q", c, errCode)
  1267. }
  1268. _ = resp
  1269. }
  1270. func TestImageAnnotatorAsyncBatchAnnotateFiles(t *testing.T) {
  1271. var expectedResponse *visionpb.AsyncBatchAnnotateFilesResponse = &visionpb.AsyncBatchAnnotateFilesResponse{}
  1272. mockImageAnnotator.err = nil
  1273. mockImageAnnotator.reqs = nil
  1274. any, err := ptypes.MarshalAny(expectedResponse)
  1275. if err != nil {
  1276. t.Fatal(err)
  1277. }
  1278. mockImageAnnotator.resps = append(mockImageAnnotator.resps[:0], &longrunningpb.Operation{
  1279. Name: "longrunning-test",
  1280. Done: true,
  1281. Result: &longrunningpb.Operation_Response{Response: any},
  1282. })
  1283. var requests []*visionpb.AsyncAnnotateFileRequest = nil
  1284. var request = &visionpb.AsyncBatchAnnotateFilesRequest{
  1285. Requests: requests,
  1286. }
  1287. c, err := NewImageAnnotatorClient(context.Background(), clientOpt)
  1288. if err != nil {
  1289. t.Fatal(err)
  1290. }
  1291. respLRO, err := c.AsyncBatchAnnotateFiles(context.Background(), request)
  1292. if err != nil {
  1293. t.Fatal(err)
  1294. }
  1295. resp, err := respLRO.Wait(context.Background())
  1296. if err != nil {
  1297. t.Fatal(err)
  1298. }
  1299. if want, got := request, mockImageAnnotator.reqs[0]; !proto.Equal(want, got) {
  1300. t.Errorf("wrong request %q, want %q", got, want)
  1301. }
  1302. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1303. t.Errorf("wrong response %q, want %q)", got, want)
  1304. }
  1305. }
  1306. func TestImageAnnotatorAsyncBatchAnnotateFilesError(t *testing.T) {
  1307. errCode := codes.PermissionDenied
  1308. mockImageAnnotator.err = nil
  1309. mockImageAnnotator.resps = append(mockImageAnnotator.resps[:0], &longrunningpb.Operation{
  1310. Name: "longrunning-test",
  1311. Done: true,
  1312. Result: &longrunningpb.Operation_Error{
  1313. Error: &status.Status{
  1314. Code: int32(errCode),
  1315. Message: "test error",
  1316. },
  1317. },
  1318. })
  1319. var requests []*visionpb.AsyncAnnotateFileRequest = nil
  1320. var request = &visionpb.AsyncBatchAnnotateFilesRequest{
  1321. Requests: requests,
  1322. }
  1323. c, err := NewImageAnnotatorClient(context.Background(), clientOpt)
  1324. if err != nil {
  1325. t.Fatal(err)
  1326. }
  1327. respLRO, err := c.AsyncBatchAnnotateFiles(context.Background(), request)
  1328. if err != nil {
  1329. t.Fatal(err)
  1330. }
  1331. resp, err := respLRO.Wait(context.Background())
  1332. if st, ok := gstatus.FromError(err); !ok {
  1333. t.Errorf("got error %v, expected grpc error", err)
  1334. } else if c := st.Code(); c != errCode {
  1335. t.Errorf("got error code %q, want %q", c, errCode)
  1336. }
  1337. _ = resp
  1338. }