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 longrunning 18 19import ( 20 emptypb "github.com/golang/protobuf/ptypes/empty" 21 longrunningpb "google.golang.org/genproto/googleapis/longrunning" 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 mockOperationsServer struct { 50 // Embed for forward compatibility. 51 // Tests will keep working if more methods are added 52 // in the future. 53 longrunningpb.OperationsServer 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 *mockOperationsServer) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest) (*longrunningpb.ListOperationsResponse, 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].(*longrunningpb.ListOperationsResponse), nil 74} 75 76func (s *mockOperationsServer) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest) (*longrunningpb.Operation, 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].(*longrunningpb.Operation), nil 86} 87 88func (s *mockOperationsServer) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest) (*emptypb.Empty, 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].(*emptypb.Empty), nil 98} 99 100func (s *mockOperationsServer) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest) (*emptypb.Empty, 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].(*emptypb.Empty), nil 110} 111 112// clientOpt is the option tests should use to connect to the test server. 113// It is initialized by TestMain. 114var clientOpt option.ClientOption 115 116var ( 117 mockOperations mockOperationsServer 118) 119 120func TestMain(m *testing.M) { 121 flag.Parse() 122 123 serv := grpc.NewServer() 124 longrunningpb.RegisterOperationsServer(serv, &mockOperations) 125 126 lis, err := net.Listen("tcp", "localhost:0") 127 if err != nil { 128 log.Fatal(err) 129 } 130 go serv.Serve(lis) 131 132 conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure()) 133 if err != nil { 134 log.Fatal(err) 135 } 136 clientOpt = option.WithGRPCConn(conn) 137 138 os.Exit(m.Run()) 139} 140 141func TestOperationsGetOperation(t *testing.T) { 142 var name2 string = "name2-1052831874" 143 var done bool = true 144 var expectedResponse = &longrunningpb.Operation{ 145 Name: name2, 146 Done: done, 147 } 148 149 mockOperations.err = nil 150 mockOperations.reqs = nil 151 152 mockOperations.resps = append(mockOperations.resps[:0], expectedResponse) 153 154 var name string = "name3373707" 155 var request = &longrunningpb.GetOperationRequest{ 156 Name: name, 157 } 158 159 c, err := NewOperationsClient(context.Background(), clientOpt) 160 if err != nil { 161 t.Fatal(err) 162 } 163 164 resp, err := c.GetOperation(context.Background(), request) 165 166 if err != nil { 167 t.Fatal(err) 168 } 169 170 if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) { 171 t.Errorf("wrong request %q, want %q", got, want) 172 } 173 174 if want, got := expectedResponse, resp; !proto.Equal(want, got) { 175 t.Errorf("wrong response %q, want %q)", got, want) 176 } 177} 178 179func TestOperationsGetOperationError(t *testing.T) { 180 errCode := codes.PermissionDenied 181 mockOperations.err = gstatus.Error(errCode, "test error") 182 183 var name string = "name3373707" 184 var request = &longrunningpb.GetOperationRequest{ 185 Name: name, 186 } 187 188 c, err := NewOperationsClient(context.Background(), clientOpt) 189 if err != nil { 190 t.Fatal(err) 191 } 192 193 resp, err := c.GetOperation(context.Background(), request) 194 195 if st, ok := gstatus.FromError(err); !ok { 196 t.Errorf("got error %v, expected grpc error", err) 197 } else if c := st.Code(); c != errCode { 198 t.Errorf("got error code %q, want %q", c, errCode) 199 } 200 _ = resp 201} 202func TestOperationsListOperations(t *testing.T) { 203 var nextPageToken string = "" 204 var operationsElement *longrunningpb.Operation = &longrunningpb.Operation{} 205 var operations = []*longrunningpb.Operation{operationsElement} 206 var expectedResponse = &longrunningpb.ListOperationsResponse{ 207 NextPageToken: nextPageToken, 208 Operations: operations, 209 } 210 211 mockOperations.err = nil 212 mockOperations.reqs = nil 213 214 mockOperations.resps = append(mockOperations.resps[:0], expectedResponse) 215 216 var name string = "name3373707" 217 var filter string = "filter-1274492040" 218 var request = &longrunningpb.ListOperationsRequest{ 219 Name: name, 220 Filter: filter, 221 } 222 223 c, err := NewOperationsClient(context.Background(), clientOpt) 224 if err != nil { 225 t.Fatal(err) 226 } 227 228 resp, err := c.ListOperations(context.Background(), request).Next() 229 230 if err != nil { 231 t.Fatal(err) 232 } 233 234 if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) { 235 t.Errorf("wrong request %q, want %q", got, want) 236 } 237 238 want := (interface{})(expectedResponse.Operations[0]) 239 got := (interface{})(resp) 240 var ok bool 241 242 switch want := (want).(type) { 243 case proto.Message: 244 ok = proto.Equal(want, got.(proto.Message)) 245 default: 246 ok = want == got 247 } 248 if !ok { 249 t.Errorf("wrong response %q, want %q)", got, want) 250 } 251} 252 253func TestOperationsListOperationsError(t *testing.T) { 254 errCode := codes.PermissionDenied 255 mockOperations.err = gstatus.Error(errCode, "test error") 256 257 var name string = "name3373707" 258 var filter string = "filter-1274492040" 259 var request = &longrunningpb.ListOperationsRequest{ 260 Name: name, 261 Filter: filter, 262 } 263 264 c, err := NewOperationsClient(context.Background(), clientOpt) 265 if err != nil { 266 t.Fatal(err) 267 } 268 269 resp, err := c.ListOperations(context.Background(), request).Next() 270 271 if st, ok := gstatus.FromError(err); !ok { 272 t.Errorf("got error %v, expected grpc error", err) 273 } else if c := st.Code(); c != errCode { 274 t.Errorf("got error code %q, want %q", c, errCode) 275 } 276 _ = resp 277} 278func TestOperationsCancelOperation(t *testing.T) { 279 var expectedResponse *emptypb.Empty = &emptypb.Empty{} 280 281 mockOperations.err = nil 282 mockOperations.reqs = nil 283 284 mockOperations.resps = append(mockOperations.resps[:0], expectedResponse) 285 286 var name string = "name3373707" 287 var request = &longrunningpb.CancelOperationRequest{ 288 Name: name, 289 } 290 291 c, err := NewOperationsClient(context.Background(), clientOpt) 292 if err != nil { 293 t.Fatal(err) 294 } 295 296 err = c.CancelOperation(context.Background(), request) 297 298 if err != nil { 299 t.Fatal(err) 300 } 301 302 if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) { 303 t.Errorf("wrong request %q, want %q", got, want) 304 } 305 306} 307 308func TestOperationsCancelOperationError(t *testing.T) { 309 errCode := codes.PermissionDenied 310 mockOperations.err = gstatus.Error(errCode, "test error") 311 312 var name string = "name3373707" 313 var request = &longrunningpb.CancelOperationRequest{ 314 Name: name, 315 } 316 317 c, err := NewOperationsClient(context.Background(), clientOpt) 318 if err != nil { 319 t.Fatal(err) 320 } 321 322 err = c.CancelOperation(context.Background(), request) 323 324 if st, ok := gstatus.FromError(err); !ok { 325 t.Errorf("got error %v, expected grpc error", err) 326 } else if c := st.Code(); c != errCode { 327 t.Errorf("got error code %q, want %q", c, errCode) 328 } 329} 330func TestOperationsDeleteOperation(t *testing.T) { 331 var expectedResponse *emptypb.Empty = &emptypb.Empty{} 332 333 mockOperations.err = nil 334 mockOperations.reqs = nil 335 336 mockOperations.resps = append(mockOperations.resps[:0], expectedResponse) 337 338 var name string = "name3373707" 339 var request = &longrunningpb.DeleteOperationRequest{ 340 Name: name, 341 } 342 343 c, err := NewOperationsClient(context.Background(), clientOpt) 344 if err != nil { 345 t.Fatal(err) 346 } 347 348 err = c.DeleteOperation(context.Background(), request) 349 350 if err != nil { 351 t.Fatal(err) 352 } 353 354 if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) { 355 t.Errorf("wrong request %q, want %q", got, want) 356 } 357 358} 359 360func TestOperationsDeleteOperationError(t *testing.T) { 361 errCode := codes.PermissionDenied 362 mockOperations.err = gstatus.Error(errCode, "test error") 363 364 var name string = "name3373707" 365 var request = &longrunningpb.DeleteOperationRequest{ 366 Name: name, 367 } 368 369 c, err := NewOperationsClient(context.Background(), clientOpt) 370 if err != nil { 371 t.Fatal(err) 372 } 373 374 err = c.DeleteOperation(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} 382