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