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 admin
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	adminpb "google.golang.org/genproto/googleapis/iam/admin/v1"
35	iampb "google.golang.org/genproto/googleapis/iam/v1"
36
37	status "google.golang.org/genproto/googleapis/rpc/status"
38	"google.golang.org/grpc"
39	"google.golang.org/grpc/codes"
40	"google.golang.org/grpc/metadata"
41
42	gstatus "google.golang.org/grpc/status"
43)
44
45var _ = io.EOF
46var _ = ptypes.MarshalAny
47var _ status.Status
48
49type mockIamServer struct {
50	// Embed for forward compatibility.
51	// Tests will keep working if more methods are added
52	// in the future.
53	adminpb.IAMServer
54
55	reqs []proto.Message
56
57	// If set, all calls return this error.
58	err error
59
60	// responses to return if err == nil
61	resps []proto.Message
62}
63
64func (s *mockIamServer) ListServiceAccounts(ctx context.Context, req *adminpb.ListServiceAccountsRequest) (*adminpb.ListServiceAccountsResponse, error) {
65	md, _ := metadata.FromIncomingContext(ctx)
66	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
67		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
68	}
69	s.reqs = append(s.reqs, req)
70	if s.err != nil {
71		return nil, s.err
72	}
73	return s.resps[0].(*adminpb.ListServiceAccountsResponse), nil
74}
75
76func (s *mockIamServer) GetServiceAccount(ctx context.Context, req *adminpb.GetServiceAccountRequest) (*adminpb.ServiceAccount, 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].(*adminpb.ServiceAccount), nil
86}
87
88func (s *mockIamServer) CreateServiceAccount(ctx context.Context, req *adminpb.CreateServiceAccountRequest) (*adminpb.ServiceAccount, error) {
89	md, _ := metadata.FromIncomingContext(ctx)
90	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
91		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
92	}
93	s.reqs = append(s.reqs, req)
94	if s.err != nil {
95		return nil, s.err
96	}
97	return s.resps[0].(*adminpb.ServiceAccount), nil
98}
99
100func (s *mockIamServer) UpdateServiceAccount(ctx context.Context, req *adminpb.ServiceAccount) (*adminpb.ServiceAccount, error) {
101	md, _ := metadata.FromIncomingContext(ctx)
102	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
103		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
104	}
105	s.reqs = append(s.reqs, req)
106	if s.err != nil {
107		return nil, s.err
108	}
109	return s.resps[0].(*adminpb.ServiceAccount), nil
110}
111
112func (s *mockIamServer) DeleteServiceAccount(ctx context.Context, req *adminpb.DeleteServiceAccountRequest) (*emptypb.Empty, error) {
113	md, _ := metadata.FromIncomingContext(ctx)
114	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
115		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
116	}
117	s.reqs = append(s.reqs, req)
118	if s.err != nil {
119		return nil, s.err
120	}
121	return s.resps[0].(*emptypb.Empty), nil
122}
123
124func (s *mockIamServer) ListServiceAccountKeys(ctx context.Context, req *adminpb.ListServiceAccountKeysRequest) (*adminpb.ListServiceAccountKeysResponse, error) {
125	md, _ := metadata.FromIncomingContext(ctx)
126	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
127		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
128	}
129	s.reqs = append(s.reqs, req)
130	if s.err != nil {
131		return nil, s.err
132	}
133	return s.resps[0].(*adminpb.ListServiceAccountKeysResponse), nil
134}
135
136func (s *mockIamServer) GetServiceAccountKey(ctx context.Context, req *adminpb.GetServiceAccountKeyRequest) (*adminpb.ServiceAccountKey, error) {
137	md, _ := metadata.FromIncomingContext(ctx)
138	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
139		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
140	}
141	s.reqs = append(s.reqs, req)
142	if s.err != nil {
143		return nil, s.err
144	}
145	return s.resps[0].(*adminpb.ServiceAccountKey), nil
146}
147
148func (s *mockIamServer) CreateServiceAccountKey(ctx context.Context, req *adminpb.CreateServiceAccountKeyRequest) (*adminpb.ServiceAccountKey, error) {
149	md, _ := metadata.FromIncomingContext(ctx)
150	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
151		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
152	}
153	s.reqs = append(s.reqs, req)
154	if s.err != nil {
155		return nil, s.err
156	}
157	return s.resps[0].(*adminpb.ServiceAccountKey), nil
158}
159
160func (s *mockIamServer) DeleteServiceAccountKey(ctx context.Context, req *adminpb.DeleteServiceAccountKeyRequest) (*emptypb.Empty, error) {
161	md, _ := metadata.FromIncomingContext(ctx)
162	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
163		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
164	}
165	s.reqs = append(s.reqs, req)
166	if s.err != nil {
167		return nil, s.err
168	}
169	return s.resps[0].(*emptypb.Empty), nil
170}
171
172func (s *mockIamServer) SignBlob(ctx context.Context, req *adminpb.SignBlobRequest) (*adminpb.SignBlobResponse, error) {
173	md, _ := metadata.FromIncomingContext(ctx)
174	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
175		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
176	}
177	s.reqs = append(s.reqs, req)
178	if s.err != nil {
179		return nil, s.err
180	}
181	return s.resps[0].(*adminpb.SignBlobResponse), nil
182}
183
184func (s *mockIamServer) SignJwt(ctx context.Context, req *adminpb.SignJwtRequest) (*adminpb.SignJwtResponse, error) {
185	md, _ := metadata.FromIncomingContext(ctx)
186	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
187		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
188	}
189	s.reqs = append(s.reqs, req)
190	if s.err != nil {
191		return nil, s.err
192	}
193	return s.resps[0].(*adminpb.SignJwtResponse), nil
194}
195
196func (s *mockIamServer) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest) (*iampb.Policy, error) {
197	md, _ := metadata.FromIncomingContext(ctx)
198	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
199		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
200	}
201	s.reqs = append(s.reqs, req)
202	if s.err != nil {
203		return nil, s.err
204	}
205	return s.resps[0].(*iampb.Policy), nil
206}
207
208func (s *mockIamServer) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest) (*iampb.Policy, 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].(*iampb.Policy), nil
218}
219
220func (s *mockIamServer) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) {
221	md, _ := metadata.FromIncomingContext(ctx)
222	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
223		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
224	}
225	s.reqs = append(s.reqs, req)
226	if s.err != nil {
227		return nil, s.err
228	}
229	return s.resps[0].(*iampb.TestIamPermissionsResponse), nil
230}
231
232func (s *mockIamServer) QueryGrantableRoles(ctx context.Context, req *adminpb.QueryGrantableRolesRequest) (*adminpb.QueryGrantableRolesResponse, error) {
233	md, _ := metadata.FromIncomingContext(ctx)
234	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
235		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
236	}
237	s.reqs = append(s.reqs, req)
238	if s.err != nil {
239		return nil, s.err
240	}
241	return s.resps[0].(*adminpb.QueryGrantableRolesResponse), nil
242}
243
244func (s *mockIamServer) ListRoles(ctx context.Context, req *adminpb.ListRolesRequest) (*adminpb.ListRolesResponse, error) {
245	md, _ := metadata.FromIncomingContext(ctx)
246	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
247		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
248	}
249	s.reqs = append(s.reqs, req)
250	if s.err != nil {
251		return nil, s.err
252	}
253	return s.resps[0].(*adminpb.ListRolesResponse), nil
254}
255
256func (s *mockIamServer) GetRole(ctx context.Context, req *adminpb.GetRoleRequest) (*adminpb.Role, error) {
257	md, _ := metadata.FromIncomingContext(ctx)
258	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
259		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
260	}
261	s.reqs = append(s.reqs, req)
262	if s.err != nil {
263		return nil, s.err
264	}
265	return s.resps[0].(*adminpb.Role), nil
266}
267
268func (s *mockIamServer) CreateRole(ctx context.Context, req *adminpb.CreateRoleRequest) (*adminpb.Role, error) {
269	md, _ := metadata.FromIncomingContext(ctx)
270	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
271		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
272	}
273	s.reqs = append(s.reqs, req)
274	if s.err != nil {
275		return nil, s.err
276	}
277	return s.resps[0].(*adminpb.Role), nil
278}
279
280func (s *mockIamServer) UpdateRole(ctx context.Context, req *adminpb.UpdateRoleRequest) (*adminpb.Role, error) {
281	md, _ := metadata.FromIncomingContext(ctx)
282	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
283		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
284	}
285	s.reqs = append(s.reqs, req)
286	if s.err != nil {
287		return nil, s.err
288	}
289	return s.resps[0].(*adminpb.Role), nil
290}
291
292func (s *mockIamServer) DeleteRole(ctx context.Context, req *adminpb.DeleteRoleRequest) (*adminpb.Role, error) {
293	md, _ := metadata.FromIncomingContext(ctx)
294	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
295		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
296	}
297	s.reqs = append(s.reqs, req)
298	if s.err != nil {
299		return nil, s.err
300	}
301	return s.resps[0].(*adminpb.Role), nil
302}
303
304func (s *mockIamServer) UndeleteRole(ctx context.Context, req *adminpb.UndeleteRoleRequest) (*adminpb.Role, error) {
305	md, _ := metadata.FromIncomingContext(ctx)
306	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
307		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
308	}
309	s.reqs = append(s.reqs, req)
310	if s.err != nil {
311		return nil, s.err
312	}
313	return s.resps[0].(*adminpb.Role), nil
314}
315
316func (s *mockIamServer) QueryTestablePermissions(ctx context.Context, req *adminpb.QueryTestablePermissionsRequest) (*adminpb.QueryTestablePermissionsResponse, error) {
317	md, _ := metadata.FromIncomingContext(ctx)
318	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
319		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
320	}
321	s.reqs = append(s.reqs, req)
322	if s.err != nil {
323		return nil, s.err
324	}
325	return s.resps[0].(*adminpb.QueryTestablePermissionsResponse), nil
326}
327
328// clientOpt is the option tests should use to connect to the test server.
329// It is initialized by TestMain.
330var clientOpt option.ClientOption
331
332var (
333	mockIam mockIamServer
334)
335
336func TestMain(m *testing.M) {
337	flag.Parse()
338
339	serv := grpc.NewServer()
340	adminpb.RegisterIAMServer(serv, &mockIam)
341
342	lis, err := net.Listen("tcp", "localhost:0")
343	if err != nil {
344		log.Fatal(err)
345	}
346	go serv.Serve(lis)
347
348	conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
349	if err != nil {
350		log.Fatal(err)
351	}
352	clientOpt = option.WithGRPCConn(conn)
353
354	os.Exit(m.Run())
355}
356
357func TestIamListServiceAccounts(t *testing.T) {
358	var nextPageToken string = ""
359	var accountsElement *adminpb.ServiceAccount = &adminpb.ServiceAccount{}
360	var accounts = []*adminpb.ServiceAccount{accountsElement}
361	var expectedResponse = &adminpb.ListServiceAccountsResponse{
362		NextPageToken: nextPageToken,
363		Accounts:      accounts,
364	}
365
366	mockIam.err = nil
367	mockIam.reqs = nil
368
369	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
370
371	var formattedName string = fmt.Sprintf("projects/%s", "[PROJECT]")
372	var request = &adminpb.ListServiceAccountsRequest{
373		Name: formattedName,
374	}
375
376	c, err := NewIamClient(context.Background(), clientOpt)
377	if err != nil {
378		t.Fatal(err)
379	}
380
381	resp, err := c.ListServiceAccounts(context.Background(), request).Next()
382
383	if err != nil {
384		t.Fatal(err)
385	}
386
387	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
388		t.Errorf("wrong request %q, want %q", got, want)
389	}
390
391	want := (interface{})(expectedResponse.Accounts[0])
392	got := (interface{})(resp)
393	var ok bool
394
395	switch want := (want).(type) {
396	case proto.Message:
397		ok = proto.Equal(want, got.(proto.Message))
398	default:
399		ok = want == got
400	}
401	if !ok {
402		t.Errorf("wrong response %q, want %q)", got, want)
403	}
404}
405
406func TestIamListServiceAccountsError(t *testing.T) {
407	errCode := codes.PermissionDenied
408	mockIam.err = gstatus.Error(errCode, "test error")
409
410	var formattedName string = fmt.Sprintf("projects/%s", "[PROJECT]")
411	var request = &adminpb.ListServiceAccountsRequest{
412		Name: formattedName,
413	}
414
415	c, err := NewIamClient(context.Background(), clientOpt)
416	if err != nil {
417		t.Fatal(err)
418	}
419
420	resp, err := c.ListServiceAccounts(context.Background(), request).Next()
421
422	if st, ok := gstatus.FromError(err); !ok {
423		t.Errorf("got error %v, expected grpc error", err)
424	} else if c := st.Code(); c != errCode {
425		t.Errorf("got error code %q, want %q", c, errCode)
426	}
427	_ = resp
428}
429func TestIamGetServiceAccount(t *testing.T) {
430	var name2 string = "name2-1052831874"
431	var projectId string = "projectId-1969970175"
432	var uniqueId string = "uniqueId-538310583"
433	var email string = "email96619420"
434	var displayName string = "displayName1615086568"
435	var etag []byte = []byte("21")
436	var oauth2ClientId string = "oauth2ClientId-1833466037"
437	var expectedResponse = &adminpb.ServiceAccount{
438		Name:           name2,
439		ProjectId:      projectId,
440		UniqueId:       uniqueId,
441		Email:          email,
442		DisplayName:    displayName,
443		Etag:           etag,
444		Oauth2ClientId: oauth2ClientId,
445	}
446
447	mockIam.err = nil
448	mockIam.reqs = nil
449
450	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
451
452	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
453	var request = &adminpb.GetServiceAccountRequest{
454		Name: formattedName,
455	}
456
457	c, err := NewIamClient(context.Background(), clientOpt)
458	if err != nil {
459		t.Fatal(err)
460	}
461
462	resp, err := c.GetServiceAccount(context.Background(), request)
463
464	if err != nil {
465		t.Fatal(err)
466	}
467
468	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
469		t.Errorf("wrong request %q, want %q", got, want)
470	}
471
472	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
473		t.Errorf("wrong response %q, want %q)", got, want)
474	}
475}
476
477func TestIamGetServiceAccountError(t *testing.T) {
478	errCode := codes.PermissionDenied
479	mockIam.err = gstatus.Error(errCode, "test error")
480
481	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
482	var request = &adminpb.GetServiceAccountRequest{
483		Name: formattedName,
484	}
485
486	c, err := NewIamClient(context.Background(), clientOpt)
487	if err != nil {
488		t.Fatal(err)
489	}
490
491	resp, err := c.GetServiceAccount(context.Background(), request)
492
493	if st, ok := gstatus.FromError(err); !ok {
494		t.Errorf("got error %v, expected grpc error", err)
495	} else if c := st.Code(); c != errCode {
496		t.Errorf("got error code %q, want %q", c, errCode)
497	}
498	_ = resp
499}
500func TestIamCreateServiceAccount(t *testing.T) {
501	var name2 string = "name2-1052831874"
502	var projectId string = "projectId-1969970175"
503	var uniqueId string = "uniqueId-538310583"
504	var email string = "email96619420"
505	var displayName string = "displayName1615086568"
506	var etag []byte = []byte("21")
507	var oauth2ClientId string = "oauth2ClientId-1833466037"
508	var expectedResponse = &adminpb.ServiceAccount{
509		Name:           name2,
510		ProjectId:      projectId,
511		UniqueId:       uniqueId,
512		Email:          email,
513		DisplayName:    displayName,
514		Etag:           etag,
515		Oauth2ClientId: oauth2ClientId,
516	}
517
518	mockIam.err = nil
519	mockIam.reqs = nil
520
521	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
522
523	var formattedName string = fmt.Sprintf("projects/%s", "[PROJECT]")
524	var accountId string = "accountId-803333011"
525	var request = &adminpb.CreateServiceAccountRequest{
526		Name:      formattedName,
527		AccountId: accountId,
528	}
529
530	c, err := NewIamClient(context.Background(), clientOpt)
531	if err != nil {
532		t.Fatal(err)
533	}
534
535	resp, err := c.CreateServiceAccount(context.Background(), request)
536
537	if err != nil {
538		t.Fatal(err)
539	}
540
541	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
542		t.Errorf("wrong request %q, want %q", got, want)
543	}
544
545	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
546		t.Errorf("wrong response %q, want %q)", got, want)
547	}
548}
549
550func TestIamCreateServiceAccountError(t *testing.T) {
551	errCode := codes.PermissionDenied
552	mockIam.err = gstatus.Error(errCode, "test error")
553
554	var formattedName string = fmt.Sprintf("projects/%s", "[PROJECT]")
555	var accountId string = "accountId-803333011"
556	var request = &adminpb.CreateServiceAccountRequest{
557		Name:      formattedName,
558		AccountId: accountId,
559	}
560
561	c, err := NewIamClient(context.Background(), clientOpt)
562	if err != nil {
563		t.Fatal(err)
564	}
565
566	resp, err := c.CreateServiceAccount(context.Background(), request)
567
568	if st, ok := gstatus.FromError(err); !ok {
569		t.Errorf("got error %v, expected grpc error", err)
570	} else if c := st.Code(); c != errCode {
571		t.Errorf("got error code %q, want %q", c, errCode)
572	}
573	_ = resp
574}
575func TestIamUpdateServiceAccount(t *testing.T) {
576	var name string = "name3373707"
577	var projectId string = "projectId-1969970175"
578	var uniqueId string = "uniqueId-538310583"
579	var email string = "email96619420"
580	var displayName string = "displayName1615086568"
581	var etag2 []byte = []byte("-120")
582	var oauth2ClientId string = "oauth2ClientId-1833466037"
583	var expectedResponse = &adminpb.ServiceAccount{
584		Name:           name,
585		ProjectId:      projectId,
586		UniqueId:       uniqueId,
587		Email:          email,
588		DisplayName:    displayName,
589		Etag:           etag2,
590		Oauth2ClientId: oauth2ClientId,
591	}
592
593	mockIam.err = nil
594	mockIam.reqs = nil
595
596	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
597
598	var etag []byte = []byte("21")
599	var request = &adminpb.ServiceAccount{
600		Etag: etag,
601	}
602
603	c, err := NewIamClient(context.Background(), clientOpt)
604	if err != nil {
605		t.Fatal(err)
606	}
607
608	resp, err := c.UpdateServiceAccount(context.Background(), request)
609
610	if err != nil {
611		t.Fatal(err)
612	}
613
614	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
615		t.Errorf("wrong request %q, want %q", got, want)
616	}
617
618	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
619		t.Errorf("wrong response %q, want %q)", got, want)
620	}
621}
622
623func TestIamUpdateServiceAccountError(t *testing.T) {
624	errCode := codes.PermissionDenied
625	mockIam.err = gstatus.Error(errCode, "test error")
626
627	var etag []byte = []byte("21")
628	var request = &adminpb.ServiceAccount{
629		Etag: etag,
630	}
631
632	c, err := NewIamClient(context.Background(), clientOpt)
633	if err != nil {
634		t.Fatal(err)
635	}
636
637	resp, err := c.UpdateServiceAccount(context.Background(), request)
638
639	if st, ok := gstatus.FromError(err); !ok {
640		t.Errorf("got error %v, expected grpc error", err)
641	} else if c := st.Code(); c != errCode {
642		t.Errorf("got error code %q, want %q", c, errCode)
643	}
644	_ = resp
645}
646func TestIamDeleteServiceAccount(t *testing.T) {
647	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
648
649	mockIam.err = nil
650	mockIam.reqs = nil
651
652	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
653
654	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
655	var request = &adminpb.DeleteServiceAccountRequest{
656		Name: formattedName,
657	}
658
659	c, err := NewIamClient(context.Background(), clientOpt)
660	if err != nil {
661		t.Fatal(err)
662	}
663
664	err = c.DeleteServiceAccount(context.Background(), request)
665
666	if err != nil {
667		t.Fatal(err)
668	}
669
670	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
671		t.Errorf("wrong request %q, want %q", got, want)
672	}
673
674}
675
676func TestIamDeleteServiceAccountError(t *testing.T) {
677	errCode := codes.PermissionDenied
678	mockIam.err = gstatus.Error(errCode, "test error")
679
680	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
681	var request = &adminpb.DeleteServiceAccountRequest{
682		Name: formattedName,
683	}
684
685	c, err := NewIamClient(context.Background(), clientOpt)
686	if err != nil {
687		t.Fatal(err)
688	}
689
690	err = c.DeleteServiceAccount(context.Background(), request)
691
692	if st, ok := gstatus.FromError(err); !ok {
693		t.Errorf("got error %v, expected grpc error", err)
694	} else if c := st.Code(); c != errCode {
695		t.Errorf("got error code %q, want %q", c, errCode)
696	}
697}
698func TestIamListServiceAccountKeys(t *testing.T) {
699	var expectedResponse *adminpb.ListServiceAccountKeysResponse = &adminpb.ListServiceAccountKeysResponse{}
700
701	mockIam.err = nil
702	mockIam.reqs = nil
703
704	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
705
706	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
707	var request = &adminpb.ListServiceAccountKeysRequest{
708		Name: formattedName,
709	}
710
711	c, err := NewIamClient(context.Background(), clientOpt)
712	if err != nil {
713		t.Fatal(err)
714	}
715
716	resp, err := c.ListServiceAccountKeys(context.Background(), request)
717
718	if err != nil {
719		t.Fatal(err)
720	}
721
722	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
723		t.Errorf("wrong request %q, want %q", got, want)
724	}
725
726	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
727		t.Errorf("wrong response %q, want %q)", got, want)
728	}
729}
730
731func TestIamListServiceAccountKeysError(t *testing.T) {
732	errCode := codes.PermissionDenied
733	mockIam.err = gstatus.Error(errCode, "test error")
734
735	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
736	var request = &adminpb.ListServiceAccountKeysRequest{
737		Name: formattedName,
738	}
739
740	c, err := NewIamClient(context.Background(), clientOpt)
741	if err != nil {
742		t.Fatal(err)
743	}
744
745	resp, err := c.ListServiceAccountKeys(context.Background(), request)
746
747	if st, ok := gstatus.FromError(err); !ok {
748		t.Errorf("got error %v, expected grpc error", err)
749	} else if c := st.Code(); c != errCode {
750		t.Errorf("got error code %q, want %q", c, errCode)
751	}
752	_ = resp
753}
754func TestIamGetServiceAccountKey(t *testing.T) {
755	var name2 string = "name2-1052831874"
756	var privateKeyData []byte = []byte("-58")
757	var publicKeyData []byte = []byte("-96")
758	var expectedResponse = &adminpb.ServiceAccountKey{
759		Name:           name2,
760		PrivateKeyData: privateKeyData,
761		PublicKeyData:  publicKeyData,
762	}
763
764	mockIam.err = nil
765	mockIam.reqs = nil
766
767	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
768
769	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s/keys/%s", "[PROJECT]", "[SERVICE_ACCOUNT]", "[KEY]")
770	var request = &adminpb.GetServiceAccountKeyRequest{
771		Name: formattedName,
772	}
773
774	c, err := NewIamClient(context.Background(), clientOpt)
775	if err != nil {
776		t.Fatal(err)
777	}
778
779	resp, err := c.GetServiceAccountKey(context.Background(), request)
780
781	if err != nil {
782		t.Fatal(err)
783	}
784
785	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
786		t.Errorf("wrong request %q, want %q", got, want)
787	}
788
789	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
790		t.Errorf("wrong response %q, want %q)", got, want)
791	}
792}
793
794func TestIamGetServiceAccountKeyError(t *testing.T) {
795	errCode := codes.PermissionDenied
796	mockIam.err = gstatus.Error(errCode, "test error")
797
798	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s/keys/%s", "[PROJECT]", "[SERVICE_ACCOUNT]", "[KEY]")
799	var request = &adminpb.GetServiceAccountKeyRequest{
800		Name: formattedName,
801	}
802
803	c, err := NewIamClient(context.Background(), clientOpt)
804	if err != nil {
805		t.Fatal(err)
806	}
807
808	resp, err := c.GetServiceAccountKey(context.Background(), request)
809
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}
817func TestIamCreateServiceAccountKey(t *testing.T) {
818	var name2 string = "name2-1052831874"
819	var privateKeyData []byte = []byte("-58")
820	var publicKeyData []byte = []byte("-96")
821	var expectedResponse = &adminpb.ServiceAccountKey{
822		Name:           name2,
823		PrivateKeyData: privateKeyData,
824		PublicKeyData:  publicKeyData,
825	}
826
827	mockIam.err = nil
828	mockIam.reqs = nil
829
830	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
831
832	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
833	var request = &adminpb.CreateServiceAccountKeyRequest{
834		Name: formattedName,
835	}
836
837	c, err := NewIamClient(context.Background(), clientOpt)
838	if err != nil {
839		t.Fatal(err)
840	}
841
842	resp, err := c.CreateServiceAccountKey(context.Background(), request)
843
844	if err != nil {
845		t.Fatal(err)
846	}
847
848	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
849		t.Errorf("wrong request %q, want %q", got, want)
850	}
851
852	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
853		t.Errorf("wrong response %q, want %q)", got, want)
854	}
855}
856
857func TestIamCreateServiceAccountKeyError(t *testing.T) {
858	errCode := codes.PermissionDenied
859	mockIam.err = gstatus.Error(errCode, "test error")
860
861	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
862	var request = &adminpb.CreateServiceAccountKeyRequest{
863		Name: formattedName,
864	}
865
866	c, err := NewIamClient(context.Background(), clientOpt)
867	if err != nil {
868		t.Fatal(err)
869	}
870
871	resp, err := c.CreateServiceAccountKey(context.Background(), request)
872
873	if st, ok := gstatus.FromError(err); !ok {
874		t.Errorf("got error %v, expected grpc error", err)
875	} else if c := st.Code(); c != errCode {
876		t.Errorf("got error code %q, want %q", c, errCode)
877	}
878	_ = resp
879}
880func TestIamDeleteServiceAccountKey(t *testing.T) {
881	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
882
883	mockIam.err = nil
884	mockIam.reqs = nil
885
886	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
887
888	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s/keys/%s", "[PROJECT]", "[SERVICE_ACCOUNT]", "[KEY]")
889	var request = &adminpb.DeleteServiceAccountKeyRequest{
890		Name: formattedName,
891	}
892
893	c, err := NewIamClient(context.Background(), clientOpt)
894	if err != nil {
895		t.Fatal(err)
896	}
897
898	err = c.DeleteServiceAccountKey(context.Background(), request)
899
900	if err != nil {
901		t.Fatal(err)
902	}
903
904	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
905		t.Errorf("wrong request %q, want %q", got, want)
906	}
907
908}
909
910func TestIamDeleteServiceAccountKeyError(t *testing.T) {
911	errCode := codes.PermissionDenied
912	mockIam.err = gstatus.Error(errCode, "test error")
913
914	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s/keys/%s", "[PROJECT]", "[SERVICE_ACCOUNT]", "[KEY]")
915	var request = &adminpb.DeleteServiceAccountKeyRequest{
916		Name: formattedName,
917	}
918
919	c, err := NewIamClient(context.Background(), clientOpt)
920	if err != nil {
921		t.Fatal(err)
922	}
923
924	err = c.DeleteServiceAccountKey(context.Background(), request)
925
926	if st, ok := gstatus.FromError(err); !ok {
927		t.Errorf("got error %v, expected grpc error", err)
928	} else if c := st.Code(); c != errCode {
929		t.Errorf("got error code %q, want %q", c, errCode)
930	}
931}
932func TestIamSignBlob(t *testing.T) {
933	var keyId string = "keyId-1134673157"
934	var signature []byte = []byte("-72")
935	var expectedResponse = &adminpb.SignBlobResponse{
936		KeyId:     keyId,
937		Signature: signature,
938	}
939
940	mockIam.err = nil
941	mockIam.reqs = nil
942
943	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
944
945	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
946	var bytesToSign []byte = []byte("45")
947	var request = &adminpb.SignBlobRequest{
948		Name:        formattedName,
949		BytesToSign: bytesToSign,
950	}
951
952	c, err := NewIamClient(context.Background(), clientOpt)
953	if err != nil {
954		t.Fatal(err)
955	}
956
957	resp, err := c.SignBlob(context.Background(), request)
958
959	if err != nil {
960		t.Fatal(err)
961	}
962
963	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
964		t.Errorf("wrong request %q, want %q", got, want)
965	}
966
967	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
968		t.Errorf("wrong response %q, want %q)", got, want)
969	}
970}
971
972func TestIamSignBlobError(t *testing.T) {
973	errCode := codes.PermissionDenied
974	mockIam.err = gstatus.Error(errCode, "test error")
975
976	var formattedName string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
977	var bytesToSign []byte = []byte("45")
978	var request = &adminpb.SignBlobRequest{
979		Name:        formattedName,
980		BytesToSign: bytesToSign,
981	}
982
983	c, err := NewIamClient(context.Background(), clientOpt)
984	if err != nil {
985		t.Fatal(err)
986	}
987
988	resp, err := c.SignBlob(context.Background(), request)
989
990	if st, ok := gstatus.FromError(err); !ok {
991		t.Errorf("got error %v, expected grpc error", err)
992	} else if c := st.Code(); c != errCode {
993		t.Errorf("got error code %q, want %q", c, errCode)
994	}
995	_ = resp
996}
997func TestIamGetIamPolicy(t *testing.T) {
998	var version int32 = 351608024
999	var etag []byte = []byte("21")
1000	var expectedResponse = &iampb.Policy{
1001		Version: version,
1002		Etag:    etag,
1003	}
1004
1005	mockIam.err = nil
1006	mockIam.reqs = nil
1007
1008	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1009
1010	var formattedResource string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
1011	var request = &iampb.GetIamPolicyRequest{
1012		Resource: formattedResource,
1013	}
1014
1015	c, err := NewIamClient(context.Background(), clientOpt)
1016	if err != nil {
1017		t.Fatal(err)
1018	}
1019
1020	resp, err := c.getIamPolicy(context.Background(), request)
1021
1022	if err != nil {
1023		t.Fatal(err)
1024	}
1025
1026	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1027		t.Errorf("wrong request %q, want %q", got, want)
1028	}
1029
1030	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1031		t.Errorf("wrong response %q, want %q)", got, want)
1032	}
1033}
1034
1035func TestIamGetIamPolicyError(t *testing.T) {
1036	errCode := codes.PermissionDenied
1037	mockIam.err = gstatus.Error(errCode, "test error")
1038
1039	var formattedResource string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
1040	var request = &iampb.GetIamPolicyRequest{
1041		Resource: formattedResource,
1042	}
1043
1044	c, err := NewIamClient(context.Background(), clientOpt)
1045	if err != nil {
1046		t.Fatal(err)
1047	}
1048
1049	resp, err := c.getIamPolicy(context.Background(), request)
1050
1051	if st, ok := gstatus.FromError(err); !ok {
1052		t.Errorf("got error %v, expected grpc error", err)
1053	} else if c := st.Code(); c != errCode {
1054		t.Errorf("got error code %q, want %q", c, errCode)
1055	}
1056	_ = resp
1057}
1058func TestIamSetIamPolicy(t *testing.T) {
1059	var version int32 = 351608024
1060	var etag []byte = []byte("21")
1061	var expectedResponse = &iampb.Policy{
1062		Version: version,
1063		Etag:    etag,
1064	}
1065
1066	mockIam.err = nil
1067	mockIam.reqs = nil
1068
1069	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1070
1071	var formattedResource string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
1072	var policy *iampb.Policy = &iampb.Policy{}
1073	var request = &iampb.SetIamPolicyRequest{
1074		Resource: formattedResource,
1075		Policy:   policy,
1076	}
1077
1078	c, err := NewIamClient(context.Background(), clientOpt)
1079	if err != nil {
1080		t.Fatal(err)
1081	}
1082
1083	resp, err := c.setIamPolicy(context.Background(), request)
1084
1085	if err != nil {
1086		t.Fatal(err)
1087	}
1088
1089	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1090		t.Errorf("wrong request %q, want %q", got, want)
1091	}
1092
1093	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1094		t.Errorf("wrong response %q, want %q)", got, want)
1095	}
1096}
1097
1098func TestIamSetIamPolicyError(t *testing.T) {
1099	errCode := codes.PermissionDenied
1100	mockIam.err = gstatus.Error(errCode, "test error")
1101
1102	var formattedResource string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
1103	var policy *iampb.Policy = &iampb.Policy{}
1104	var request = &iampb.SetIamPolicyRequest{
1105		Resource: formattedResource,
1106		Policy:   policy,
1107	}
1108
1109	c, err := NewIamClient(context.Background(), clientOpt)
1110	if err != nil {
1111		t.Fatal(err)
1112	}
1113
1114	resp, err := c.setIamPolicy(context.Background(), request)
1115
1116	if st, ok := gstatus.FromError(err); !ok {
1117		t.Errorf("got error %v, expected grpc error", err)
1118	} else if c := st.Code(); c != errCode {
1119		t.Errorf("got error code %q, want %q", c, errCode)
1120	}
1121	_ = resp
1122}
1123func TestIamTestIamPermissions(t *testing.T) {
1124	var expectedResponse *iampb.TestIamPermissionsResponse = &iampb.TestIamPermissionsResponse{}
1125
1126	mockIam.err = nil
1127	mockIam.reqs = nil
1128
1129	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1130
1131	var formattedResource string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
1132	var permissions []string = nil
1133	var request = &iampb.TestIamPermissionsRequest{
1134		Resource:    formattedResource,
1135		Permissions: permissions,
1136	}
1137
1138	c, err := NewIamClient(context.Background(), clientOpt)
1139	if err != nil {
1140		t.Fatal(err)
1141	}
1142
1143	resp, err := c.TestIamPermissions(context.Background(), request)
1144
1145	if err != nil {
1146		t.Fatal(err)
1147	}
1148
1149	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1150		t.Errorf("wrong request %q, want %q", got, want)
1151	}
1152
1153	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1154		t.Errorf("wrong response %q, want %q)", got, want)
1155	}
1156}
1157
1158func TestIamTestIamPermissionsError(t *testing.T) {
1159	errCode := codes.PermissionDenied
1160	mockIam.err = gstatus.Error(errCode, "test error")
1161
1162	var formattedResource string = fmt.Sprintf("projects/%s/serviceAccounts/%s", "[PROJECT]", "[SERVICE_ACCOUNT]")
1163	var permissions []string = nil
1164	var request = &iampb.TestIamPermissionsRequest{
1165		Resource:    formattedResource,
1166		Permissions: permissions,
1167	}
1168
1169	c, err := NewIamClient(context.Background(), clientOpt)
1170	if err != nil {
1171		t.Fatal(err)
1172	}
1173
1174	resp, err := c.TestIamPermissions(context.Background(), request)
1175
1176	if st, ok := gstatus.FromError(err); !ok {
1177		t.Errorf("got error %v, expected grpc error", err)
1178	} else if c := st.Code(); c != errCode {
1179		t.Errorf("got error code %q, want %q", c, errCode)
1180	}
1181	_ = resp
1182}
1183func TestIamQueryGrantableRoles(t *testing.T) {
1184	var nextPageToken string = "nextPageToken-1530815211"
1185	var expectedResponse = &adminpb.QueryGrantableRolesResponse{
1186		NextPageToken: nextPageToken,
1187	}
1188
1189	mockIam.err = nil
1190	mockIam.reqs = nil
1191
1192	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1193
1194	var fullResourceName string = "fullResourceName1300993644"
1195	var request = &adminpb.QueryGrantableRolesRequest{
1196		FullResourceName: fullResourceName,
1197	}
1198
1199	c, err := NewIamClient(context.Background(), clientOpt)
1200	if err != nil {
1201		t.Fatal(err)
1202	}
1203
1204	resp, err := c.QueryGrantableRoles(context.Background(), request)
1205
1206	if err != nil {
1207		t.Fatal(err)
1208	}
1209
1210	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1211		t.Errorf("wrong request %q, want %q", got, want)
1212	}
1213
1214	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1215		t.Errorf("wrong response %q, want %q)", got, want)
1216	}
1217}
1218
1219func TestIamQueryGrantableRolesError(t *testing.T) {
1220	errCode := codes.PermissionDenied
1221	mockIam.err = gstatus.Error(errCode, "test error")
1222
1223	var fullResourceName string = "fullResourceName1300993644"
1224	var request = &adminpb.QueryGrantableRolesRequest{
1225		FullResourceName: fullResourceName,
1226	}
1227
1228	c, err := NewIamClient(context.Background(), clientOpt)
1229	if err != nil {
1230		t.Fatal(err)
1231	}
1232
1233	resp, err := c.QueryGrantableRoles(context.Background(), request)
1234
1235	if st, ok := gstatus.FromError(err); !ok {
1236		t.Errorf("got error %v, expected grpc error", err)
1237	} else if c := st.Code(); c != errCode {
1238		t.Errorf("got error code %q, want %q", c, errCode)
1239	}
1240	_ = resp
1241}
1242func TestIamSignJwt(t *testing.T) {
1243	var keyId string = "keyId-1134673157"
1244	var signedJwt string = "signedJwt-979546844"
1245	var expectedResponse = &adminpb.SignJwtResponse{
1246		KeyId:     keyId,
1247		SignedJwt: signedJwt,
1248	}
1249
1250	mockIam.err = nil
1251	mockIam.reqs = nil
1252
1253	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1254
1255	var name string = "name3373707"
1256	var payload string = "payload-786701938"
1257	var request = &adminpb.SignJwtRequest{
1258		Name:    name,
1259		Payload: payload,
1260	}
1261
1262	c, err := NewIamClient(context.Background(), clientOpt)
1263	if err != nil {
1264		t.Fatal(err)
1265	}
1266
1267	resp, err := c.SignJwt(context.Background(), request)
1268
1269	if err != nil {
1270		t.Fatal(err)
1271	}
1272
1273	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1274		t.Errorf("wrong request %q, want %q", got, want)
1275	}
1276
1277	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1278		t.Errorf("wrong response %q, want %q)", got, want)
1279	}
1280}
1281
1282func TestIamSignJwtError(t *testing.T) {
1283	errCode := codes.PermissionDenied
1284	mockIam.err = gstatus.Error(errCode, "test error")
1285
1286	var name string = "name3373707"
1287	var payload string = "payload-786701938"
1288	var request = &adminpb.SignJwtRequest{
1289		Name:    name,
1290		Payload: payload,
1291	}
1292
1293	c, err := NewIamClient(context.Background(), clientOpt)
1294	if err != nil {
1295		t.Fatal(err)
1296	}
1297
1298	resp, err := c.SignJwt(context.Background(), request)
1299
1300	if st, ok := gstatus.FromError(err); !ok {
1301		t.Errorf("got error %v, expected grpc error", err)
1302	} else if c := st.Code(); c != errCode {
1303		t.Errorf("got error code %q, want %q", c, errCode)
1304	}
1305	_ = resp
1306}
1307func TestIamListRoles(t *testing.T) {
1308	var nextPageToken string = "nextPageToken-1530815211"
1309	var expectedResponse = &adminpb.ListRolesResponse{
1310		NextPageToken: nextPageToken,
1311	}
1312
1313	mockIam.err = nil
1314	mockIam.reqs = nil
1315
1316	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1317
1318	var request *adminpb.ListRolesRequest = &adminpb.ListRolesRequest{}
1319
1320	c, err := NewIamClient(context.Background(), clientOpt)
1321	if err != nil {
1322		t.Fatal(err)
1323	}
1324
1325	resp, err := c.ListRoles(context.Background(), request)
1326
1327	if err != nil {
1328		t.Fatal(err)
1329	}
1330
1331	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1332		t.Errorf("wrong request %q, want %q", got, want)
1333	}
1334
1335	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1336		t.Errorf("wrong response %q, want %q)", got, want)
1337	}
1338}
1339
1340func TestIamListRolesError(t *testing.T) {
1341	errCode := codes.PermissionDenied
1342	mockIam.err = gstatus.Error(errCode, "test error")
1343
1344	var request *adminpb.ListRolesRequest = &adminpb.ListRolesRequest{}
1345
1346	c, err := NewIamClient(context.Background(), clientOpt)
1347	if err != nil {
1348		t.Fatal(err)
1349	}
1350
1351	resp, err := c.ListRoles(context.Background(), request)
1352
1353	if st, ok := gstatus.FromError(err); !ok {
1354		t.Errorf("got error %v, expected grpc error", err)
1355	} else if c := st.Code(); c != errCode {
1356		t.Errorf("got error code %q, want %q", c, errCode)
1357	}
1358	_ = resp
1359}
1360func TestIamGetRole(t *testing.T) {
1361	var name string = "name3373707"
1362	var title string = "title110371416"
1363	var description string = "description-1724546052"
1364	var etag []byte = []byte("21")
1365	var deleted bool = false
1366	var expectedResponse = &adminpb.Role{
1367		Name:        name,
1368		Title:       title,
1369		Description: description,
1370		Etag:        etag,
1371		Deleted:     deleted,
1372	}
1373
1374	mockIam.err = nil
1375	mockIam.reqs = nil
1376
1377	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1378
1379	var request *adminpb.GetRoleRequest = &adminpb.GetRoleRequest{}
1380
1381	c, err := NewIamClient(context.Background(), clientOpt)
1382	if err != nil {
1383		t.Fatal(err)
1384	}
1385
1386	resp, err := c.GetRole(context.Background(), request)
1387
1388	if err != nil {
1389		t.Fatal(err)
1390	}
1391
1392	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1393		t.Errorf("wrong request %q, want %q", got, want)
1394	}
1395
1396	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1397		t.Errorf("wrong response %q, want %q)", got, want)
1398	}
1399}
1400
1401func TestIamGetRoleError(t *testing.T) {
1402	errCode := codes.PermissionDenied
1403	mockIam.err = gstatus.Error(errCode, "test error")
1404
1405	var request *adminpb.GetRoleRequest = &adminpb.GetRoleRequest{}
1406
1407	c, err := NewIamClient(context.Background(), clientOpt)
1408	if err != nil {
1409		t.Fatal(err)
1410	}
1411
1412	resp, err := c.GetRole(context.Background(), request)
1413
1414	if st, ok := gstatus.FromError(err); !ok {
1415		t.Errorf("got error %v, expected grpc error", err)
1416	} else if c := st.Code(); c != errCode {
1417		t.Errorf("got error code %q, want %q", c, errCode)
1418	}
1419	_ = resp
1420}
1421func TestIamCreateRole(t *testing.T) {
1422	var name string = "name3373707"
1423	var title string = "title110371416"
1424	var description string = "description-1724546052"
1425	var etag []byte = []byte("21")
1426	var deleted bool = false
1427	var expectedResponse = &adminpb.Role{
1428		Name:        name,
1429		Title:       title,
1430		Description: description,
1431		Etag:        etag,
1432		Deleted:     deleted,
1433	}
1434
1435	mockIam.err = nil
1436	mockIam.reqs = nil
1437
1438	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1439
1440	var request *adminpb.CreateRoleRequest = &adminpb.CreateRoleRequest{}
1441
1442	c, err := NewIamClient(context.Background(), clientOpt)
1443	if err != nil {
1444		t.Fatal(err)
1445	}
1446
1447	resp, err := c.CreateRole(context.Background(), request)
1448
1449	if err != nil {
1450		t.Fatal(err)
1451	}
1452
1453	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1454		t.Errorf("wrong request %q, want %q", got, want)
1455	}
1456
1457	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1458		t.Errorf("wrong response %q, want %q)", got, want)
1459	}
1460}
1461
1462func TestIamCreateRoleError(t *testing.T) {
1463	errCode := codes.PermissionDenied
1464	mockIam.err = gstatus.Error(errCode, "test error")
1465
1466	var request *adminpb.CreateRoleRequest = &adminpb.CreateRoleRequest{}
1467
1468	c, err := NewIamClient(context.Background(), clientOpt)
1469	if err != nil {
1470		t.Fatal(err)
1471	}
1472
1473	resp, err := c.CreateRole(context.Background(), request)
1474
1475	if st, ok := gstatus.FromError(err); !ok {
1476		t.Errorf("got error %v, expected grpc error", err)
1477	} else if c := st.Code(); c != errCode {
1478		t.Errorf("got error code %q, want %q", c, errCode)
1479	}
1480	_ = resp
1481}
1482func TestIamUpdateRole(t *testing.T) {
1483	var name string = "name3373707"
1484	var title string = "title110371416"
1485	var description string = "description-1724546052"
1486	var etag []byte = []byte("21")
1487	var deleted bool = false
1488	var expectedResponse = &adminpb.Role{
1489		Name:        name,
1490		Title:       title,
1491		Description: description,
1492		Etag:        etag,
1493		Deleted:     deleted,
1494	}
1495
1496	mockIam.err = nil
1497	mockIam.reqs = nil
1498
1499	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1500
1501	var request *adminpb.UpdateRoleRequest = &adminpb.UpdateRoleRequest{}
1502
1503	c, err := NewIamClient(context.Background(), clientOpt)
1504	if err != nil {
1505		t.Fatal(err)
1506	}
1507
1508	resp, err := c.UpdateRole(context.Background(), request)
1509
1510	if err != nil {
1511		t.Fatal(err)
1512	}
1513
1514	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1515		t.Errorf("wrong request %q, want %q", got, want)
1516	}
1517
1518	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1519		t.Errorf("wrong response %q, want %q)", got, want)
1520	}
1521}
1522
1523func TestIamUpdateRoleError(t *testing.T) {
1524	errCode := codes.PermissionDenied
1525	mockIam.err = gstatus.Error(errCode, "test error")
1526
1527	var request *adminpb.UpdateRoleRequest = &adminpb.UpdateRoleRequest{}
1528
1529	c, err := NewIamClient(context.Background(), clientOpt)
1530	if err != nil {
1531		t.Fatal(err)
1532	}
1533
1534	resp, err := c.UpdateRole(context.Background(), request)
1535
1536	if st, ok := gstatus.FromError(err); !ok {
1537		t.Errorf("got error %v, expected grpc error", err)
1538	} else if c := st.Code(); c != errCode {
1539		t.Errorf("got error code %q, want %q", c, errCode)
1540	}
1541	_ = resp
1542}
1543func TestIamDeleteRole(t *testing.T) {
1544	var name string = "name3373707"
1545	var title string = "title110371416"
1546	var description string = "description-1724546052"
1547	var etag []byte = []byte("21")
1548	var deleted bool = false
1549	var expectedResponse = &adminpb.Role{
1550		Name:        name,
1551		Title:       title,
1552		Description: description,
1553		Etag:        etag,
1554		Deleted:     deleted,
1555	}
1556
1557	mockIam.err = nil
1558	mockIam.reqs = nil
1559
1560	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1561
1562	var request *adminpb.DeleteRoleRequest = &adminpb.DeleteRoleRequest{}
1563
1564	c, err := NewIamClient(context.Background(), clientOpt)
1565	if err != nil {
1566		t.Fatal(err)
1567	}
1568
1569	resp, err := c.DeleteRole(context.Background(), request)
1570
1571	if err != nil {
1572		t.Fatal(err)
1573	}
1574
1575	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1576		t.Errorf("wrong request %q, want %q", got, want)
1577	}
1578
1579	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1580		t.Errorf("wrong response %q, want %q)", got, want)
1581	}
1582}
1583
1584func TestIamDeleteRoleError(t *testing.T) {
1585	errCode := codes.PermissionDenied
1586	mockIam.err = gstatus.Error(errCode, "test error")
1587
1588	var request *adminpb.DeleteRoleRequest = &adminpb.DeleteRoleRequest{}
1589
1590	c, err := NewIamClient(context.Background(), clientOpt)
1591	if err != nil {
1592		t.Fatal(err)
1593	}
1594
1595	resp, err := c.DeleteRole(context.Background(), request)
1596
1597	if st, ok := gstatus.FromError(err); !ok {
1598		t.Errorf("got error %v, expected grpc error", err)
1599	} else if c := st.Code(); c != errCode {
1600		t.Errorf("got error code %q, want %q", c, errCode)
1601	}
1602	_ = resp
1603}
1604func TestIamUndeleteRole(t *testing.T) {
1605	var name string = "name3373707"
1606	var title string = "title110371416"
1607	var description string = "description-1724546052"
1608	var etag []byte = []byte("21")
1609	var deleted bool = false
1610	var expectedResponse = &adminpb.Role{
1611		Name:        name,
1612		Title:       title,
1613		Description: description,
1614		Etag:        etag,
1615		Deleted:     deleted,
1616	}
1617
1618	mockIam.err = nil
1619	mockIam.reqs = nil
1620
1621	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1622
1623	var request *adminpb.UndeleteRoleRequest = &adminpb.UndeleteRoleRequest{}
1624
1625	c, err := NewIamClient(context.Background(), clientOpt)
1626	if err != nil {
1627		t.Fatal(err)
1628	}
1629
1630	resp, err := c.UndeleteRole(context.Background(), request)
1631
1632	if err != nil {
1633		t.Fatal(err)
1634	}
1635
1636	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1637		t.Errorf("wrong request %q, want %q", got, want)
1638	}
1639
1640	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1641		t.Errorf("wrong response %q, want %q)", got, want)
1642	}
1643}
1644
1645func TestIamUndeleteRoleError(t *testing.T) {
1646	errCode := codes.PermissionDenied
1647	mockIam.err = gstatus.Error(errCode, "test error")
1648
1649	var request *adminpb.UndeleteRoleRequest = &adminpb.UndeleteRoleRequest{}
1650
1651	c, err := NewIamClient(context.Background(), clientOpt)
1652	if err != nil {
1653		t.Fatal(err)
1654	}
1655
1656	resp, err := c.UndeleteRole(context.Background(), request)
1657
1658	if st, ok := gstatus.FromError(err); !ok {
1659		t.Errorf("got error %v, expected grpc error", err)
1660	} else if c := st.Code(); c != errCode {
1661		t.Errorf("got error code %q, want %q", c, errCode)
1662	}
1663	_ = resp
1664}
1665func TestIamQueryTestablePermissions(t *testing.T) {
1666	var nextPageToken string = "nextPageToken-1530815211"
1667	var expectedResponse = &adminpb.QueryTestablePermissionsResponse{
1668		NextPageToken: nextPageToken,
1669	}
1670
1671	mockIam.err = nil
1672	mockIam.reqs = nil
1673
1674	mockIam.resps = append(mockIam.resps[:0], expectedResponse)
1675
1676	var request *adminpb.QueryTestablePermissionsRequest = &adminpb.QueryTestablePermissionsRequest{}
1677
1678	c, err := NewIamClient(context.Background(), clientOpt)
1679	if err != nil {
1680		t.Fatal(err)
1681	}
1682
1683	resp, err := c.QueryTestablePermissions(context.Background(), request)
1684
1685	if err != nil {
1686		t.Fatal(err)
1687	}
1688
1689	if want, got := request, mockIam.reqs[0]; !proto.Equal(want, got) {
1690		t.Errorf("wrong request %q, want %q", got, want)
1691	}
1692
1693	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
1694		t.Errorf("wrong response %q, want %q)", got, want)
1695	}
1696}
1697
1698func TestIamQueryTestablePermissionsError(t *testing.T) {
1699	errCode := codes.PermissionDenied
1700	mockIam.err = gstatus.Error(errCode, "test error")
1701
1702	var request *adminpb.QueryTestablePermissionsRequest = &adminpb.QueryTestablePermissionsRequest{}
1703
1704	c, err := NewIamClient(context.Background(), clientOpt)
1705	if err != nil {
1706		t.Fatal(err)
1707	}
1708
1709	resp, err := c.QueryTestablePermissions(context.Background(), request)
1710
1711	if st, ok := gstatus.FromError(err); !ok {
1712		t.Errorf("got error %v, expected grpc error", err)
1713	} else if c := st.Code(); c != errCode {
1714		t.Errorf("got error code %q, want %q", c, errCode)
1715	}
1716	_ = resp
1717}
1718