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 debugger
18
19import (
20	emptypb "github.com/golang/protobuf/ptypes/empty"
21	clouddebuggerpb "google.golang.org/genproto/googleapis/devtools/clouddebugger/v2"
22)
23
24import (
25	"context"
26	"flag"
27	"fmt"
28	"io"
29	"log"
30	"net"
31	"os"
32	"strings"
33	"testing"
34
35	"github.com/golang/protobuf/proto"
36	"github.com/golang/protobuf/ptypes"
37	"google.golang.org/api/option"
38	status "google.golang.org/genproto/googleapis/rpc/status"
39	"google.golang.org/grpc"
40	"google.golang.org/grpc/codes"
41	"google.golang.org/grpc/metadata"
42	gstatus "google.golang.org/grpc/status"
43)
44
45var _ = io.EOF
46var _ = ptypes.MarshalAny
47var _ status.Status
48
49type mockController2Server struct {
50	// Embed for forward compatibility.
51	// Tests will keep working if more methods are added
52	// in the future.
53	clouddebuggerpb.Controller2Server
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 *mockController2Server) RegisterDebuggee(ctx context.Context, req *clouddebuggerpb.RegisterDebuggeeRequest) (*clouddebuggerpb.RegisterDebuggeeResponse, 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].(*clouddebuggerpb.RegisterDebuggeeResponse), nil
74}
75
76func (s *mockController2Server) ListActiveBreakpoints(ctx context.Context, req *clouddebuggerpb.ListActiveBreakpointsRequest) (*clouddebuggerpb.ListActiveBreakpointsResponse, 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].(*clouddebuggerpb.ListActiveBreakpointsResponse), nil
86}
87
88func (s *mockController2Server) UpdateActiveBreakpoint(ctx context.Context, req *clouddebuggerpb.UpdateActiveBreakpointRequest) (*clouddebuggerpb.UpdateActiveBreakpointResponse, 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].(*clouddebuggerpb.UpdateActiveBreakpointResponse), nil
98}
99
100type mockDebugger2Server struct {
101	// Embed for forward compatibility.
102	// Tests will keep working if more methods are added
103	// in the future.
104	clouddebuggerpb.Debugger2Server
105
106	reqs []proto.Message
107
108	// If set, all calls return this error.
109	err error
110
111	// responses to return if err == nil
112	resps []proto.Message
113}
114
115func (s *mockDebugger2Server) SetBreakpoint(ctx context.Context, req *clouddebuggerpb.SetBreakpointRequest) (*clouddebuggerpb.SetBreakpointResponse, error) {
116	md, _ := metadata.FromIncomingContext(ctx)
117	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
118		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
119	}
120	s.reqs = append(s.reqs, req)
121	if s.err != nil {
122		return nil, s.err
123	}
124	return s.resps[0].(*clouddebuggerpb.SetBreakpointResponse), nil
125}
126
127func (s *mockDebugger2Server) GetBreakpoint(ctx context.Context, req *clouddebuggerpb.GetBreakpointRequest) (*clouddebuggerpb.GetBreakpointResponse, error) {
128	md, _ := metadata.FromIncomingContext(ctx)
129	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
130		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
131	}
132	s.reqs = append(s.reqs, req)
133	if s.err != nil {
134		return nil, s.err
135	}
136	return s.resps[0].(*clouddebuggerpb.GetBreakpointResponse), nil
137}
138
139func (s *mockDebugger2Server) DeleteBreakpoint(ctx context.Context, req *clouddebuggerpb.DeleteBreakpointRequest) (*emptypb.Empty, error) {
140	md, _ := metadata.FromIncomingContext(ctx)
141	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
142		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
143	}
144	s.reqs = append(s.reqs, req)
145	if s.err != nil {
146		return nil, s.err
147	}
148	return s.resps[0].(*emptypb.Empty), nil
149}
150
151func (s *mockDebugger2Server) ListBreakpoints(ctx context.Context, req *clouddebuggerpb.ListBreakpointsRequest) (*clouddebuggerpb.ListBreakpointsResponse, error) {
152	md, _ := metadata.FromIncomingContext(ctx)
153	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
154		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
155	}
156	s.reqs = append(s.reqs, req)
157	if s.err != nil {
158		return nil, s.err
159	}
160	return s.resps[0].(*clouddebuggerpb.ListBreakpointsResponse), nil
161}
162
163func (s *mockDebugger2Server) ListDebuggees(ctx context.Context, req *clouddebuggerpb.ListDebuggeesRequest) (*clouddebuggerpb.ListDebuggeesResponse, error) {
164	md, _ := metadata.FromIncomingContext(ctx)
165	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
166		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
167	}
168	s.reqs = append(s.reqs, req)
169	if s.err != nil {
170		return nil, s.err
171	}
172	return s.resps[0].(*clouddebuggerpb.ListDebuggeesResponse), nil
173}
174
175// clientOpt is the option tests should use to connect to the test server.
176// It is initialized by TestMain.
177var clientOpt option.ClientOption
178
179var (
180	mockController2 mockController2Server
181	mockDebugger2   mockDebugger2Server
182)
183
184func TestMain(m *testing.M) {
185	flag.Parse()
186
187	serv := grpc.NewServer()
188	clouddebuggerpb.RegisterController2Server(serv, &mockController2)
189	clouddebuggerpb.RegisterDebugger2Server(serv, &mockDebugger2)
190
191	lis, err := net.Listen("tcp", "localhost:0")
192	if err != nil {
193		log.Fatal(err)
194	}
195	go serv.Serve(lis)
196
197	conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
198	if err != nil {
199		log.Fatal(err)
200	}
201	clientOpt = option.WithGRPCConn(conn)
202
203	os.Exit(m.Run())
204}
205
206func TestController2RegisterDebuggee(t *testing.T) {
207	var expectedResponse *clouddebuggerpb.RegisterDebuggeeResponse = &clouddebuggerpb.RegisterDebuggeeResponse{}
208
209	mockController2.err = nil
210	mockController2.reqs = nil
211
212	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
213
214	var debuggee *clouddebuggerpb.Debuggee = &clouddebuggerpb.Debuggee{}
215	var request = &clouddebuggerpb.RegisterDebuggeeRequest{
216		Debuggee: debuggee,
217	}
218
219	c, err := NewController2Client(context.Background(), clientOpt)
220	if err != nil {
221		t.Fatal(err)
222	}
223
224	resp, err := c.RegisterDebuggee(context.Background(), request)
225
226	if err != nil {
227		t.Fatal(err)
228	}
229
230	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
231		t.Errorf("wrong request %q, want %q", got, want)
232	}
233
234	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
235		t.Errorf("wrong response %q, want %q)", got, want)
236	}
237}
238
239func TestController2RegisterDebuggeeError(t *testing.T) {
240	errCode := codes.PermissionDenied
241	mockController2.err = gstatus.Error(errCode, "test error")
242
243	var debuggee *clouddebuggerpb.Debuggee = &clouddebuggerpb.Debuggee{}
244	var request = &clouddebuggerpb.RegisterDebuggeeRequest{
245		Debuggee: debuggee,
246	}
247
248	c, err := NewController2Client(context.Background(), clientOpt)
249	if err != nil {
250		t.Fatal(err)
251	}
252
253	resp, err := c.RegisterDebuggee(context.Background(), request)
254
255	if st, ok := gstatus.FromError(err); !ok {
256		t.Errorf("got error %v, expected grpc error", err)
257	} else if c := st.Code(); c != errCode {
258		t.Errorf("got error code %q, want %q", c, errCode)
259	}
260	_ = resp
261}
262func TestController2ListActiveBreakpoints(t *testing.T) {
263	var nextWaitToken string = "nextWaitToken1006864251"
264	var waitExpired bool = false
265	var expectedResponse = &clouddebuggerpb.ListActiveBreakpointsResponse{
266		NextWaitToken: nextWaitToken,
267		WaitExpired:   waitExpired,
268	}
269
270	mockController2.err = nil
271	mockController2.reqs = nil
272
273	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
274
275	var debuggeeId string = "debuggeeId-997255898"
276	var request = &clouddebuggerpb.ListActiveBreakpointsRequest{
277		DebuggeeId: debuggeeId,
278	}
279
280	c, err := NewController2Client(context.Background(), clientOpt)
281	if err != nil {
282		t.Fatal(err)
283	}
284
285	resp, err := c.ListActiveBreakpoints(context.Background(), request)
286
287	if err != nil {
288		t.Fatal(err)
289	}
290
291	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
292		t.Errorf("wrong request %q, want %q", got, want)
293	}
294
295	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
296		t.Errorf("wrong response %q, want %q)", got, want)
297	}
298}
299
300func TestController2ListActiveBreakpointsError(t *testing.T) {
301	errCode := codes.PermissionDenied
302	mockController2.err = gstatus.Error(errCode, "test error")
303
304	var debuggeeId string = "debuggeeId-997255898"
305	var request = &clouddebuggerpb.ListActiveBreakpointsRequest{
306		DebuggeeId: debuggeeId,
307	}
308
309	c, err := NewController2Client(context.Background(), clientOpt)
310	if err != nil {
311		t.Fatal(err)
312	}
313
314	resp, err := c.ListActiveBreakpoints(context.Background(), request)
315
316	if st, ok := gstatus.FromError(err); !ok {
317		t.Errorf("got error %v, expected grpc error", err)
318	} else if c := st.Code(); c != errCode {
319		t.Errorf("got error code %q, want %q", c, errCode)
320	}
321	_ = resp
322}
323func TestController2UpdateActiveBreakpoint(t *testing.T) {
324	var expectedResponse *clouddebuggerpb.UpdateActiveBreakpointResponse = &clouddebuggerpb.UpdateActiveBreakpointResponse{}
325
326	mockController2.err = nil
327	mockController2.reqs = nil
328
329	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
330
331	var debuggeeId string = "debuggeeId-997255898"
332	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
333	var request = &clouddebuggerpb.UpdateActiveBreakpointRequest{
334		DebuggeeId: debuggeeId,
335		Breakpoint: breakpoint,
336	}
337
338	c, err := NewController2Client(context.Background(), clientOpt)
339	if err != nil {
340		t.Fatal(err)
341	}
342
343	resp, err := c.UpdateActiveBreakpoint(context.Background(), request)
344
345	if err != nil {
346		t.Fatal(err)
347	}
348
349	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
350		t.Errorf("wrong request %q, want %q", got, want)
351	}
352
353	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
354		t.Errorf("wrong response %q, want %q)", got, want)
355	}
356}
357
358func TestController2UpdateActiveBreakpointError(t *testing.T) {
359	errCode := codes.PermissionDenied
360	mockController2.err = gstatus.Error(errCode, "test error")
361
362	var debuggeeId string = "debuggeeId-997255898"
363	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
364	var request = &clouddebuggerpb.UpdateActiveBreakpointRequest{
365		DebuggeeId: debuggeeId,
366		Breakpoint: breakpoint,
367	}
368
369	c, err := NewController2Client(context.Background(), clientOpt)
370	if err != nil {
371		t.Fatal(err)
372	}
373
374	resp, err := c.UpdateActiveBreakpoint(context.Background(), request)
375
376	if st, ok := gstatus.FromError(err); !ok {
377		t.Errorf("got error %v, expected grpc error", err)
378	} else if c := st.Code(); c != errCode {
379		t.Errorf("got error code %q, want %q", c, errCode)
380	}
381	_ = resp
382}
383func TestDebugger2SetBreakpoint(t *testing.T) {
384	var expectedResponse *clouddebuggerpb.SetBreakpointResponse = &clouddebuggerpb.SetBreakpointResponse{}
385
386	mockDebugger2.err = nil
387	mockDebugger2.reqs = nil
388
389	mockDebugger2.resps = append(mockDebugger2.resps[:0], expectedResponse)
390
391	var debuggeeId string = "debuggeeId-997255898"
392	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
393	var clientVersion string = "clientVersion-1506231196"
394	var request = &clouddebuggerpb.SetBreakpointRequest{
395		DebuggeeId:    debuggeeId,
396		Breakpoint:    breakpoint,
397		ClientVersion: clientVersion,
398	}
399
400	c, err := NewDebugger2Client(context.Background(), clientOpt)
401	if err != nil {
402		t.Fatal(err)
403	}
404
405	resp, err := c.SetBreakpoint(context.Background(), request)
406
407	if err != nil {
408		t.Fatal(err)
409	}
410
411	if want, got := request, mockDebugger2.reqs[0]; !proto.Equal(want, got) {
412		t.Errorf("wrong request %q, want %q", got, want)
413	}
414
415	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
416		t.Errorf("wrong response %q, want %q)", got, want)
417	}
418}
419
420func TestDebugger2SetBreakpointError(t *testing.T) {
421	errCode := codes.PermissionDenied
422	mockDebugger2.err = gstatus.Error(errCode, "test error")
423
424	var debuggeeId string = "debuggeeId-997255898"
425	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
426	var clientVersion string = "clientVersion-1506231196"
427	var request = &clouddebuggerpb.SetBreakpointRequest{
428		DebuggeeId:    debuggeeId,
429		Breakpoint:    breakpoint,
430		ClientVersion: clientVersion,
431	}
432
433	c, err := NewDebugger2Client(context.Background(), clientOpt)
434	if err != nil {
435		t.Fatal(err)
436	}
437
438	resp, err := c.SetBreakpoint(context.Background(), request)
439
440	if st, ok := gstatus.FromError(err); !ok {
441		t.Errorf("got error %v, expected grpc error", err)
442	} else if c := st.Code(); c != errCode {
443		t.Errorf("got error code %q, want %q", c, errCode)
444	}
445	_ = resp
446}
447func TestDebugger2GetBreakpoint(t *testing.T) {
448	var expectedResponse *clouddebuggerpb.GetBreakpointResponse = &clouddebuggerpb.GetBreakpointResponse{}
449
450	mockDebugger2.err = nil
451	mockDebugger2.reqs = nil
452
453	mockDebugger2.resps = append(mockDebugger2.resps[:0], expectedResponse)
454
455	var debuggeeId string = "debuggeeId-997255898"
456	var breakpointId string = "breakpointId498424873"
457	var clientVersion string = "clientVersion-1506231196"
458	var request = &clouddebuggerpb.GetBreakpointRequest{
459		DebuggeeId:    debuggeeId,
460		BreakpointId:  breakpointId,
461		ClientVersion: clientVersion,
462	}
463
464	c, err := NewDebugger2Client(context.Background(), clientOpt)
465	if err != nil {
466		t.Fatal(err)
467	}
468
469	resp, err := c.GetBreakpoint(context.Background(), request)
470
471	if err != nil {
472		t.Fatal(err)
473	}
474
475	if want, got := request, mockDebugger2.reqs[0]; !proto.Equal(want, got) {
476		t.Errorf("wrong request %q, want %q", got, want)
477	}
478
479	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
480		t.Errorf("wrong response %q, want %q)", got, want)
481	}
482}
483
484func TestDebugger2GetBreakpointError(t *testing.T) {
485	errCode := codes.PermissionDenied
486	mockDebugger2.err = gstatus.Error(errCode, "test error")
487
488	var debuggeeId string = "debuggeeId-997255898"
489	var breakpointId string = "breakpointId498424873"
490	var clientVersion string = "clientVersion-1506231196"
491	var request = &clouddebuggerpb.GetBreakpointRequest{
492		DebuggeeId:    debuggeeId,
493		BreakpointId:  breakpointId,
494		ClientVersion: clientVersion,
495	}
496
497	c, err := NewDebugger2Client(context.Background(), clientOpt)
498	if err != nil {
499		t.Fatal(err)
500	}
501
502	resp, err := c.GetBreakpoint(context.Background(), request)
503
504	if st, ok := gstatus.FromError(err); !ok {
505		t.Errorf("got error %v, expected grpc error", err)
506	} else if c := st.Code(); c != errCode {
507		t.Errorf("got error code %q, want %q", c, errCode)
508	}
509	_ = resp
510}
511func TestDebugger2DeleteBreakpoint(t *testing.T) {
512	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
513
514	mockDebugger2.err = nil
515	mockDebugger2.reqs = nil
516
517	mockDebugger2.resps = append(mockDebugger2.resps[:0], expectedResponse)
518
519	var debuggeeId string = "debuggeeId-997255898"
520	var breakpointId string = "breakpointId498424873"
521	var clientVersion string = "clientVersion-1506231196"
522	var request = &clouddebuggerpb.DeleteBreakpointRequest{
523		DebuggeeId:    debuggeeId,
524		BreakpointId:  breakpointId,
525		ClientVersion: clientVersion,
526	}
527
528	c, err := NewDebugger2Client(context.Background(), clientOpt)
529	if err != nil {
530		t.Fatal(err)
531	}
532
533	err = c.DeleteBreakpoint(context.Background(), request)
534
535	if err != nil {
536		t.Fatal(err)
537	}
538
539	if want, got := request, mockDebugger2.reqs[0]; !proto.Equal(want, got) {
540		t.Errorf("wrong request %q, want %q", got, want)
541	}
542
543}
544
545func TestDebugger2DeleteBreakpointError(t *testing.T) {
546	errCode := codes.PermissionDenied
547	mockDebugger2.err = gstatus.Error(errCode, "test error")
548
549	var debuggeeId string = "debuggeeId-997255898"
550	var breakpointId string = "breakpointId498424873"
551	var clientVersion string = "clientVersion-1506231196"
552	var request = &clouddebuggerpb.DeleteBreakpointRequest{
553		DebuggeeId:    debuggeeId,
554		BreakpointId:  breakpointId,
555		ClientVersion: clientVersion,
556	}
557
558	c, err := NewDebugger2Client(context.Background(), clientOpt)
559	if err != nil {
560		t.Fatal(err)
561	}
562
563	err = c.DeleteBreakpoint(context.Background(), request)
564
565	if st, ok := gstatus.FromError(err); !ok {
566		t.Errorf("got error %v, expected grpc error", err)
567	} else if c := st.Code(); c != errCode {
568		t.Errorf("got error code %q, want %q", c, errCode)
569	}
570}
571func TestDebugger2ListBreakpoints(t *testing.T) {
572	var nextWaitToken string = "nextWaitToken1006864251"
573	var expectedResponse = &clouddebuggerpb.ListBreakpointsResponse{
574		NextWaitToken: nextWaitToken,
575	}
576
577	mockDebugger2.err = nil
578	mockDebugger2.reqs = nil
579
580	mockDebugger2.resps = append(mockDebugger2.resps[:0], expectedResponse)
581
582	var debuggeeId string = "debuggeeId-997255898"
583	var clientVersion string = "clientVersion-1506231196"
584	var request = &clouddebuggerpb.ListBreakpointsRequest{
585		DebuggeeId:    debuggeeId,
586		ClientVersion: clientVersion,
587	}
588
589	c, err := NewDebugger2Client(context.Background(), clientOpt)
590	if err != nil {
591		t.Fatal(err)
592	}
593
594	resp, err := c.ListBreakpoints(context.Background(), request)
595
596	if err != nil {
597		t.Fatal(err)
598	}
599
600	if want, got := request, mockDebugger2.reqs[0]; !proto.Equal(want, got) {
601		t.Errorf("wrong request %q, want %q", got, want)
602	}
603
604	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
605		t.Errorf("wrong response %q, want %q)", got, want)
606	}
607}
608
609func TestDebugger2ListBreakpointsError(t *testing.T) {
610	errCode := codes.PermissionDenied
611	mockDebugger2.err = gstatus.Error(errCode, "test error")
612
613	var debuggeeId string = "debuggeeId-997255898"
614	var clientVersion string = "clientVersion-1506231196"
615	var request = &clouddebuggerpb.ListBreakpointsRequest{
616		DebuggeeId:    debuggeeId,
617		ClientVersion: clientVersion,
618	}
619
620	c, err := NewDebugger2Client(context.Background(), clientOpt)
621	if err != nil {
622		t.Fatal(err)
623	}
624
625	resp, err := c.ListBreakpoints(context.Background(), request)
626
627	if st, ok := gstatus.FromError(err); !ok {
628		t.Errorf("got error %v, expected grpc error", err)
629	} else if c := st.Code(); c != errCode {
630		t.Errorf("got error code %q, want %q", c, errCode)
631	}
632	_ = resp
633}
634func TestDebugger2ListDebuggees(t *testing.T) {
635	var expectedResponse *clouddebuggerpb.ListDebuggeesResponse = &clouddebuggerpb.ListDebuggeesResponse{}
636
637	mockDebugger2.err = nil
638	mockDebugger2.reqs = nil
639
640	mockDebugger2.resps = append(mockDebugger2.resps[:0], expectedResponse)
641
642	var project string = "project-309310695"
643	var clientVersion string = "clientVersion-1506231196"
644	var request = &clouddebuggerpb.ListDebuggeesRequest{
645		Project:       project,
646		ClientVersion: clientVersion,
647	}
648
649	c, err := NewDebugger2Client(context.Background(), clientOpt)
650	if err != nil {
651		t.Fatal(err)
652	}
653
654	resp, err := c.ListDebuggees(context.Background(), request)
655
656	if err != nil {
657		t.Fatal(err)
658	}
659
660	if want, got := request, mockDebugger2.reqs[0]; !proto.Equal(want, got) {
661		t.Errorf("wrong request %q, want %q", got, want)
662	}
663
664	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
665		t.Errorf("wrong response %q, want %q)", got, want)
666	}
667}
668
669func TestDebugger2ListDebuggeesError(t *testing.T) {
670	errCode := codes.PermissionDenied
671	mockDebugger2.err = gstatus.Error(errCode, "test error")
672
673	var project string = "project-309310695"
674	var clientVersion string = "clientVersion-1506231196"
675	var request = &clouddebuggerpb.ListDebuggeesRequest{
676		Project:       project,
677		ClientVersion: clientVersion,
678	}
679
680	c, err := NewDebugger2Client(context.Background(), clientOpt)
681	if err != nil {
682		t.Fatal(err)
683	}
684
685	resp, err := c.ListDebuggees(context.Background(), request)
686
687	if st, ok := gstatus.FromError(err); !ok {
688		t.Errorf("got error %v, expected grpc error", err)
689	} else if c := st.Code(); c != errCode {
690		t.Errorf("got error code %q, want %q", c, errCode)
691	}
692	_ = resp
693}
694