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
15// Code generated by gapic-generator. DO NOT EDIT.
16
17package instance
18
19import (
20	"context"
21	"flag"
22	"fmt"
23	"io"
24	"log"
25	"net"
26	"os"
27	"strings"
28	"testing"
29
30	"github.com/golang/protobuf/proto"
31	"github.com/golang/protobuf/ptypes"
32	emptypb "github.com/golang/protobuf/ptypes/empty"
33	"google.golang.org/api/option"
34	iampb "google.golang.org/genproto/googleapis/iam/v1"
35	longrunningpb "google.golang.org/genproto/googleapis/longrunning"
36	instancepb "google.golang.org/genproto/googleapis/spanner/admin/instance/v1"
37	field_maskpb "google.golang.org/genproto/protobuf/field_mask"
38
39	status "google.golang.org/genproto/googleapis/rpc/status"
40	"google.golang.org/grpc"
41	"google.golang.org/grpc/codes"
42	"google.golang.org/grpc/metadata"
43
44	gstatus "google.golang.org/grpc/status"
45)
46
47var _ = io.EOF
48var _ = ptypes.MarshalAny
49var _ status.Status
50
51type mockInstanceAdminServer struct {
52	// Embed for forward compatibility.
53	// Tests will keep working if more methods are added
54	// in the future.
55	instancepb.InstanceAdminServer
56
57	reqs []proto.Message
58
59	// If set, all calls return this error.
60	err error
61
62	// responses to return if err == nil
63	resps []proto.Message
64}
65
66func (s *mockInstanceAdminServer) ListInstanceConfigs(ctx context.Context, req *instancepb.ListInstanceConfigsRequest) (*instancepb.ListInstanceConfigsResponse, error) {
67	md, _ := metadata.FromIncomingContext(ctx)
68	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
69		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
70	}
71	s.reqs = append(s.reqs, req)
72	if s.err != nil {
73		return nil, s.err
74	}
75	return s.resps[0].(*instancepb.ListInstanceConfigsResponse), nil
76}
77
78func (s *mockInstanceAdminServer) GetInstanceConfig(ctx context.Context, req *instancepb.GetInstanceConfigRequest) (*instancepb.InstanceConfig, error) {
79	md, _ := metadata.FromIncomingContext(ctx)
80	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
81		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
82	}
83	s.reqs = append(s.reqs, req)
84	if s.err != nil {
85		return nil, s.err
86	}
87	return s.resps[0].(*instancepb.InstanceConfig), nil
88}
89
90func (s *mockInstanceAdminServer) ListInstances(ctx context.Context, req *instancepb.ListInstancesRequest) (*instancepb.ListInstancesResponse, error) {
91	md, _ := metadata.FromIncomingContext(ctx)
92	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
93		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
94	}
95	s.reqs = append(s.reqs, req)
96	if s.err != nil {
97		return nil, s.err
98	}
99	return s.resps[0].(*instancepb.ListInstancesResponse), nil
100}
101
102func (s *mockInstanceAdminServer) GetInstance(ctx context.Context, req *instancepb.GetInstanceRequest) (*instancepb.Instance, error) {
103	md, _ := metadata.FromIncomingContext(ctx)
104	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
105		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
106	}
107	s.reqs = append(s.reqs, req)
108	if s.err != nil {
109		return nil, s.err
110	}
111	return s.resps[0].(*instancepb.Instance), nil
112}
113
114func (s *mockInstanceAdminServer) CreateInstance(ctx context.Context, req *instancepb.CreateInstanceRequest) (*longrunningpb.Operation, error) {
115	md, _ := metadata.FromIncomingContext(ctx)
116	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
117		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
118	}
119	s.reqs = append(s.reqs, req)
120	if s.err != nil {
121		return nil, s.err
122	}
123	return s.resps[0].(*longrunningpb.Operation), nil
124}
125
126func (s *mockInstanceAdminServer) UpdateInstance(ctx context.Context, req *instancepb.UpdateInstanceRequest) (*longrunningpb.Operation, error) {
127	md, _ := metadata.FromIncomingContext(ctx)
128	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
129		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
130	}
131	s.reqs = append(s.reqs, req)
132	if s.err != nil {
133		return nil, s.err
134	}
135	return s.resps[0].(*longrunningpb.Operation), nil
136}
137
138func (s *mockInstanceAdminServer) DeleteInstance(ctx context.Context, req *instancepb.DeleteInstanceRequest) (*emptypb.Empty, error) {
139	md, _ := metadata.FromIncomingContext(ctx)
140	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
141		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
142	}
143	s.reqs = append(s.reqs, req)
144	if s.err != nil {
145		return nil, s.err
146	}
147	return s.resps[0].(*emptypb.Empty), nil
148}
149
150func (s *mockInstanceAdminServer) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest) (*iampb.Policy, error) {
151	md, _ := metadata.FromIncomingContext(ctx)
152	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
153		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
154	}
155	s.reqs = append(s.reqs, req)
156	if s.err != nil {
157		return nil, s.err
158	}
159	return s.resps[0].(*iampb.Policy), nil
160}
161
162func (s *mockInstanceAdminServer) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest) (*iampb.Policy, error) {
163	md, _ := metadata.FromIncomingContext(ctx)
164	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
165		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
166	}
167	s.reqs = append(s.reqs, req)
168	if s.err != nil {
169		return nil, s.err
170	}
171	return s.resps[0].(*iampb.Policy), nil
172}
173
174func (s *mockInstanceAdminServer) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) {
175	md, _ := metadata.FromIncomingContext(ctx)
176	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
177		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
178	}
179	s.reqs = append(s.reqs, req)
180	if s.err != nil {
181		return nil, s.err
182	}
183	return s.resps[0].(*iampb.TestIamPermissionsResponse), nil
184}
185
186// clientOpt is the option tests should use to connect to the test server.
187// It is initialized by TestMain.
188var clientOpt option.ClientOption
189
190var (
191	mockInstanceAdmin mockInstanceAdminServer
192)
193
194func TestMain(m *testing.M) {
195	flag.Parse()
196
197	serv := grpc.NewServer()
198	instancepb.RegisterInstanceAdminServer(serv, &mockInstanceAdmin)
199
200	lis, err := net.Listen("tcp", "localhost:0")
201	if err != nil {
202		log.Fatal(err)
203	}
204	go serv.Serve(lis)
205
206	conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
207	if err != nil {
208		log.Fatal(err)
209	}
210	clientOpt = option.WithGRPCConn(conn)
211
212	os.Exit(m.Run())
213}
214
215func TestInstanceAdminListInstanceConfigs(t *testing.T) {
216	var nextPageToken string = ""
217	var instanceConfigsElement *instancepb.InstanceConfig = &instancepb.InstanceConfig{}
218	var instanceConfigs = []*instancepb.InstanceConfig{instanceConfigsElement}
219	var expectedResponse = &instancepb.ListInstanceConfigsResponse{
220		NextPageToken:   nextPageToken,
221		InstanceConfigs: instanceConfigs,
222	}
223
224	mockInstanceAdmin.err = nil
225	mockInstanceAdmin.reqs = nil
226
227	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
228
229	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
230	var request = &instancepb.ListInstanceConfigsRequest{
231		Parent: formattedParent,
232	}
233
234	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
235	if err != nil {
236		t.Fatal(err)
237	}
238
239	resp, err := c.ListInstanceConfigs(context.Background(), request).Next()
240
241	if err != nil {
242		t.Fatal(err)
243	}
244
245	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
246		t.Errorf("wrong request %q, want %q", got, want)
247	}
248
249	want := (interface{})(expectedResponse.InstanceConfigs[0])
250	got := (interface{})(resp)
251	var ok bool
252
253	switch want := (want).(type) {
254	case proto.Message:
255		ok = proto.Equal(want, got.(proto.Message))
256	default:
257		ok = want == got
258	}
259	if !ok {
260		t.Errorf("wrong response %q, want %q)", got, want)
261	}
262}
263
264func TestInstanceAdminListInstanceConfigsError(t *testing.T) {
265	errCode := codes.PermissionDenied
266	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
267
268	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
269	var request = &instancepb.ListInstanceConfigsRequest{
270		Parent: formattedParent,
271	}
272
273	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
274	if err != nil {
275		t.Fatal(err)
276	}
277
278	resp, err := c.ListInstanceConfigs(context.Background(), request).Next()
279
280	if st, ok := gstatus.FromError(err); !ok {
281		t.Errorf("got error %v, expected grpc error", err)
282	} else if c := st.Code(); c != errCode {
283		t.Errorf("got error code %q, want %q", c, errCode)
284	}
285	_ = resp
286}
287func TestInstanceAdminGetInstanceConfig(t *testing.T) {
288	var name2 string = "name2-1052831874"
289	var displayName string = "displayName1615086568"
290	var expectedResponse = &instancepb.InstanceConfig{
291		Name:        name2,
292		DisplayName: displayName,
293	}
294
295	mockInstanceAdmin.err = nil
296	mockInstanceAdmin.reqs = nil
297
298	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
299
300	var formattedName string = fmt.Sprintf("projects/%s/instanceConfigs/%s", "[PROJECT]", "[INSTANCE_CONFIG]")
301	var request = &instancepb.GetInstanceConfigRequest{
302		Name: formattedName,
303	}
304
305	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
306	if err != nil {
307		t.Fatal(err)
308	}
309
310	resp, err := c.GetInstanceConfig(context.Background(), request)
311
312	if err != nil {
313		t.Fatal(err)
314	}
315
316	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
317		t.Errorf("wrong request %q, want %q", got, want)
318	}
319
320	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
321		t.Errorf("wrong response %q, want %q)", got, want)
322	}
323}
324
325func TestInstanceAdminGetInstanceConfigError(t *testing.T) {
326	errCode := codes.PermissionDenied
327	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
328
329	var formattedName string = fmt.Sprintf("projects/%s/instanceConfigs/%s", "[PROJECT]", "[INSTANCE_CONFIG]")
330	var request = &instancepb.GetInstanceConfigRequest{
331		Name: formattedName,
332	}
333
334	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
335	if err != nil {
336		t.Fatal(err)
337	}
338
339	resp, err := c.GetInstanceConfig(context.Background(), request)
340
341	if st, ok := gstatus.FromError(err); !ok {
342		t.Errorf("got error %v, expected grpc error", err)
343	} else if c := st.Code(); c != errCode {
344		t.Errorf("got error code %q, want %q", c, errCode)
345	}
346	_ = resp
347}
348func TestInstanceAdminListInstances(t *testing.T) {
349	var nextPageToken string = ""
350	var instancesElement *instancepb.Instance = &instancepb.Instance{}
351	var instances = []*instancepb.Instance{instancesElement}
352	var expectedResponse = &instancepb.ListInstancesResponse{
353		NextPageToken: nextPageToken,
354		Instances:     instances,
355	}
356
357	mockInstanceAdmin.err = nil
358	mockInstanceAdmin.reqs = nil
359
360	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
361
362	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
363	var request = &instancepb.ListInstancesRequest{
364		Parent: formattedParent,
365	}
366
367	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
368	if err != nil {
369		t.Fatal(err)
370	}
371
372	resp, err := c.ListInstances(context.Background(), request).Next()
373
374	if err != nil {
375		t.Fatal(err)
376	}
377
378	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
379		t.Errorf("wrong request %q, want %q", got, want)
380	}
381
382	want := (interface{})(expectedResponse.Instances[0])
383	got := (interface{})(resp)
384	var ok bool
385
386	switch want := (want).(type) {
387	case proto.Message:
388		ok = proto.Equal(want, got.(proto.Message))
389	default:
390		ok = want == got
391	}
392	if !ok {
393		t.Errorf("wrong response %q, want %q)", got, want)
394	}
395}
396
397func TestInstanceAdminListInstancesError(t *testing.T) {
398	errCode := codes.PermissionDenied
399	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
400
401	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
402	var request = &instancepb.ListInstancesRequest{
403		Parent: formattedParent,
404	}
405
406	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
407	if err != nil {
408		t.Fatal(err)
409	}
410
411	resp, err := c.ListInstances(context.Background(), request).Next()
412
413	if st, ok := gstatus.FromError(err); !ok {
414		t.Errorf("got error %v, expected grpc error", err)
415	} else if c := st.Code(); c != errCode {
416		t.Errorf("got error code %q, want %q", c, errCode)
417	}
418	_ = resp
419}
420func TestInstanceAdminGetInstance(t *testing.T) {
421	var name2 string = "name2-1052831874"
422	var config string = "config-1354792126"
423	var displayName string = "displayName1615086568"
424	var nodeCount int32 = 1539922066
425	var expectedResponse = &instancepb.Instance{
426		Name:        name2,
427		Config:      config,
428		DisplayName: displayName,
429		NodeCount:   nodeCount,
430	}
431
432	mockInstanceAdmin.err = nil
433	mockInstanceAdmin.reqs = nil
434
435	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
436
437	var formattedName string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]")
438	var request = &instancepb.GetInstanceRequest{
439		Name: formattedName,
440	}
441
442	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
443	if err != nil {
444		t.Fatal(err)
445	}
446
447	resp, err := c.GetInstance(context.Background(), request)
448
449	if err != nil {
450		t.Fatal(err)
451	}
452
453	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
454		t.Errorf("wrong request %q, want %q", got, want)
455	}
456
457	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
458		t.Errorf("wrong response %q, want %q)", got, want)
459	}
460}
461
462func TestInstanceAdminGetInstanceError(t *testing.T) {
463	errCode := codes.PermissionDenied
464	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
465
466	var formattedName string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]")
467	var request = &instancepb.GetInstanceRequest{
468		Name: formattedName,
469	}
470
471	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
472	if err != nil {
473		t.Fatal(err)
474	}
475
476	resp, err := c.GetInstance(context.Background(), request)
477
478	if st, ok := gstatus.FromError(err); !ok {
479		t.Errorf("got error %v, expected grpc error", err)
480	} else if c := st.Code(); c != errCode {
481		t.Errorf("got error code %q, want %q", c, errCode)
482	}
483	_ = resp
484}
485func TestInstanceAdminCreateInstance(t *testing.T) {
486	var name string = "name3373707"
487	var config string = "config-1354792126"
488	var displayName string = "displayName1615086568"
489	var nodeCount int32 = 1539922066
490	var expectedResponse = &instancepb.Instance{
491		Name:        name,
492		Config:      config,
493		DisplayName: displayName,
494		NodeCount:   nodeCount,
495	}
496
497	mockInstanceAdmin.err = nil
498	mockInstanceAdmin.reqs = nil
499
500	any, err := ptypes.MarshalAny(expectedResponse)
501	if err != nil {
502		t.Fatal(err)
503	}
504	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], &longrunningpb.Operation{
505		Name:   "longrunning-test",
506		Done:   true,
507		Result: &longrunningpb.Operation_Response{Response: any},
508	})
509
510	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
511	var instanceId string = "instanceId-2101995259"
512	var instance *instancepb.Instance = &instancepb.Instance{}
513	var request = &instancepb.CreateInstanceRequest{
514		Parent:     formattedParent,
515		InstanceId: instanceId,
516		Instance:   instance,
517	}
518
519	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
520	if err != nil {
521		t.Fatal(err)
522	}
523
524	respLRO, err := c.CreateInstance(context.Background(), request)
525	if err != nil {
526		t.Fatal(err)
527	}
528	resp, err := respLRO.Wait(context.Background())
529
530	if err != nil {
531		t.Fatal(err)
532	}
533
534	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
535		t.Errorf("wrong request %q, want %q", got, want)
536	}
537
538	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
539		t.Errorf("wrong response %q, want %q)", got, want)
540	}
541}
542
543func TestInstanceAdminCreateInstanceError(t *testing.T) {
544	errCode := codes.PermissionDenied
545	mockInstanceAdmin.err = nil
546	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], &longrunningpb.Operation{
547		Name: "longrunning-test",
548		Done: true,
549		Result: &longrunningpb.Operation_Error{
550			Error: &status.Status{
551				Code:    int32(errCode),
552				Message: "test error",
553			},
554		},
555	})
556
557	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
558	var instanceId string = "instanceId-2101995259"
559	var instance *instancepb.Instance = &instancepb.Instance{}
560	var request = &instancepb.CreateInstanceRequest{
561		Parent:     formattedParent,
562		InstanceId: instanceId,
563		Instance:   instance,
564	}
565
566	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
567	if err != nil {
568		t.Fatal(err)
569	}
570
571	respLRO, err := c.CreateInstance(context.Background(), request)
572	if err != nil {
573		t.Fatal(err)
574	}
575	resp, err := respLRO.Wait(context.Background())
576
577	if st, ok := gstatus.FromError(err); !ok {
578		t.Errorf("got error %v, expected grpc error", err)
579	} else if c := st.Code(); c != errCode {
580		t.Errorf("got error code %q, want %q", c, errCode)
581	}
582	_ = resp
583}
584func TestInstanceAdminUpdateInstance(t *testing.T) {
585	var name string = "name3373707"
586	var config string = "config-1354792126"
587	var displayName string = "displayName1615086568"
588	var nodeCount int32 = 1539922066
589	var expectedResponse = &instancepb.Instance{
590		Name:        name,
591		Config:      config,
592		DisplayName: displayName,
593		NodeCount:   nodeCount,
594	}
595
596	mockInstanceAdmin.err = nil
597	mockInstanceAdmin.reqs = nil
598
599	any, err := ptypes.MarshalAny(expectedResponse)
600	if err != nil {
601		t.Fatal(err)
602	}
603	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], &longrunningpb.Operation{
604		Name:   "longrunning-test",
605		Done:   true,
606		Result: &longrunningpb.Operation_Response{Response: any},
607	})
608
609	var instance *instancepb.Instance = &instancepb.Instance{}
610	var fieldMask *field_maskpb.FieldMask = &field_maskpb.FieldMask{}
611	var request = &instancepb.UpdateInstanceRequest{
612		Instance:  instance,
613		FieldMask: fieldMask,
614	}
615
616	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
617	if err != nil {
618		t.Fatal(err)
619	}
620
621	respLRO, err := c.UpdateInstance(context.Background(), request)
622	if err != nil {
623		t.Fatal(err)
624	}
625	resp, err := respLRO.Wait(context.Background())
626
627	if err != nil {
628		t.Fatal(err)
629	}
630
631	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
632		t.Errorf("wrong request %q, want %q", got, want)
633	}
634
635	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
636		t.Errorf("wrong response %q, want %q)", got, want)
637	}
638}
639
640func TestInstanceAdminUpdateInstanceError(t *testing.T) {
641	errCode := codes.PermissionDenied
642	mockInstanceAdmin.err = nil
643	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], &longrunningpb.Operation{
644		Name: "longrunning-test",
645		Done: true,
646		Result: &longrunningpb.Operation_Error{
647			Error: &status.Status{
648				Code:    int32(errCode),
649				Message: "test error",
650			},
651		},
652	})
653
654	var instance *instancepb.Instance = &instancepb.Instance{}
655	var fieldMask *field_maskpb.FieldMask = &field_maskpb.FieldMask{}
656	var request = &instancepb.UpdateInstanceRequest{
657		Instance:  instance,
658		FieldMask: fieldMask,
659	}
660
661	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
662	if err != nil {
663		t.Fatal(err)
664	}
665
666	respLRO, err := c.UpdateInstance(context.Background(), request)
667	if err != nil {
668		t.Fatal(err)
669	}
670	resp, err := respLRO.Wait(context.Background())
671
672	if st, ok := gstatus.FromError(err); !ok {
673		t.Errorf("got error %v, expected grpc error", err)
674	} else if c := st.Code(); c != errCode {
675		t.Errorf("got error code %q, want %q", c, errCode)
676	}
677	_ = resp
678}
679func TestInstanceAdminDeleteInstance(t *testing.T) {
680	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
681
682	mockInstanceAdmin.err = nil
683	mockInstanceAdmin.reqs = nil
684
685	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
686
687	var formattedName string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]")
688	var request = &instancepb.DeleteInstanceRequest{
689		Name: formattedName,
690	}
691
692	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
693	if err != nil {
694		t.Fatal(err)
695	}
696
697	err = c.DeleteInstance(context.Background(), request)
698
699	if err != nil {
700		t.Fatal(err)
701	}
702
703	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
704		t.Errorf("wrong request %q, want %q", got, want)
705	}
706
707}
708
709func TestInstanceAdminDeleteInstanceError(t *testing.T) {
710	errCode := codes.PermissionDenied
711	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
712
713	var formattedName string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]")
714	var request = &instancepb.DeleteInstanceRequest{
715		Name: formattedName,
716	}
717
718	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
719	if err != nil {
720		t.Fatal(err)
721	}
722
723	err = c.DeleteInstance(context.Background(), request)
724
725	if st, ok := gstatus.FromError(err); !ok {
726		t.Errorf("got error %v, expected grpc error", err)
727	} else if c := st.Code(); c != errCode {
728		t.Errorf("got error code %q, want %q", c, errCode)
729	}
730}
731func TestInstanceAdminSetIamPolicy(t *testing.T) {
732	var version int32 = 351608024
733	var etag []byte = []byte("21")
734	var expectedResponse = &iampb.Policy{
735		Version: version,
736		Etag:    etag,
737	}
738
739	mockInstanceAdmin.err = nil
740	mockInstanceAdmin.reqs = nil
741
742	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
743
744	var resource string = "resource-341064690"
745	var policy *iampb.Policy = &iampb.Policy{}
746	var request = &iampb.SetIamPolicyRequest{
747		Resource: resource,
748		Policy:   policy,
749	}
750
751	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
752	if err != nil {
753		t.Fatal(err)
754	}
755
756	resp, err := c.SetIamPolicy(context.Background(), request)
757
758	if err != nil {
759		t.Fatal(err)
760	}
761
762	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
763		t.Errorf("wrong request %q, want %q", got, want)
764	}
765
766	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
767		t.Errorf("wrong response %q, want %q)", got, want)
768	}
769}
770
771func TestInstanceAdminSetIamPolicyError(t *testing.T) {
772	errCode := codes.PermissionDenied
773	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
774
775	var resource string = "resource-341064690"
776	var policy *iampb.Policy = &iampb.Policy{}
777	var request = &iampb.SetIamPolicyRequest{
778		Resource: resource,
779		Policy:   policy,
780	}
781
782	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
783	if err != nil {
784		t.Fatal(err)
785	}
786
787	resp, err := c.SetIamPolicy(context.Background(), request)
788
789	if st, ok := gstatus.FromError(err); !ok {
790		t.Errorf("got error %v, expected grpc error", err)
791	} else if c := st.Code(); c != errCode {
792		t.Errorf("got error code %q, want %q", c, errCode)
793	}
794	_ = resp
795}
796func TestInstanceAdminGetIamPolicy(t *testing.T) {
797	var version int32 = 351608024
798	var etag []byte = []byte("21")
799	var expectedResponse = &iampb.Policy{
800		Version: version,
801		Etag:    etag,
802	}
803
804	mockInstanceAdmin.err = nil
805	mockInstanceAdmin.reqs = nil
806
807	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
808
809	var resource string = "resource-341064690"
810	var request = &iampb.GetIamPolicyRequest{
811		Resource: resource,
812	}
813
814	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
815	if err != nil {
816		t.Fatal(err)
817	}
818
819	resp, err := c.GetIamPolicy(context.Background(), request)
820
821	if err != nil {
822		t.Fatal(err)
823	}
824
825	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
826		t.Errorf("wrong request %q, want %q", got, want)
827	}
828
829	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
830		t.Errorf("wrong response %q, want %q)", got, want)
831	}
832}
833
834func TestInstanceAdminGetIamPolicyError(t *testing.T) {
835	errCode := codes.PermissionDenied
836	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
837
838	var resource string = "resource-341064690"
839	var request = &iampb.GetIamPolicyRequest{
840		Resource: resource,
841	}
842
843	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
844	if err != nil {
845		t.Fatal(err)
846	}
847
848	resp, err := c.GetIamPolicy(context.Background(), request)
849
850	if st, ok := gstatus.FromError(err); !ok {
851		t.Errorf("got error %v, expected grpc error", err)
852	} else if c := st.Code(); c != errCode {
853		t.Errorf("got error code %q, want %q", c, errCode)
854	}
855	_ = resp
856}
857func TestInstanceAdminTestIamPermissions(t *testing.T) {
858	var expectedResponse *iampb.TestIamPermissionsResponse = &iampb.TestIamPermissionsResponse{}
859
860	mockInstanceAdmin.err = nil
861	mockInstanceAdmin.reqs = nil
862
863	mockInstanceAdmin.resps = append(mockInstanceAdmin.resps[:0], expectedResponse)
864
865	var resource string = "resource-341064690"
866	var permissions []string = nil
867	var request = &iampb.TestIamPermissionsRequest{
868		Resource:    resource,
869		Permissions: permissions,
870	}
871
872	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
873	if err != nil {
874		t.Fatal(err)
875	}
876
877	resp, err := c.TestIamPermissions(context.Background(), request)
878
879	if err != nil {
880		t.Fatal(err)
881	}
882
883	if want, got := request, mockInstanceAdmin.reqs[0]; !proto.Equal(want, got) {
884		t.Errorf("wrong request %q, want %q", got, want)
885	}
886
887	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
888		t.Errorf("wrong response %q, want %q)", got, want)
889	}
890}
891
892func TestInstanceAdminTestIamPermissionsError(t *testing.T) {
893	errCode := codes.PermissionDenied
894	mockInstanceAdmin.err = gstatus.Error(errCode, "test error")
895
896	var resource string = "resource-341064690"
897	var permissions []string = nil
898	var request = &iampb.TestIamPermissionsRequest{
899		Resource:    resource,
900		Permissions: permissions,
901	}
902
903	c, err := NewInstanceAdminClient(context.Background(), clientOpt)
904	if err != nil {
905		t.Fatal(err)
906	}
907
908	resp, err := c.TestIamPermissions(context.Background(), request)
909
910	if st, ok := gstatus.FromError(err); !ok {
911		t.Errorf("got error %v, expected grpc error", err)
912	} else if c := st.Code(); c != errCode {
913		t.Errorf("got error code %q, want %q", c, errCode)
914	}
915	_ = resp
916}
917