You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

382 lines
9.9 KiB

  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. // Code generated by gapic-generator. DO NOT EDIT.
  15. package longrunning
  16. import (
  17. emptypb "github.com/golang/protobuf/ptypes/empty"
  18. longrunningpb "google.golang.org/genproto/googleapis/longrunning"
  19. )
  20. import (
  21. "context"
  22. "flag"
  23. "fmt"
  24. "io"
  25. "log"
  26. "net"
  27. "os"
  28. "strings"
  29. "testing"
  30. "github.com/golang/protobuf/proto"
  31. "github.com/golang/protobuf/ptypes"
  32. "google.golang.org/api/option"
  33. status "google.golang.org/genproto/googleapis/rpc/status"
  34. "google.golang.org/grpc"
  35. "google.golang.org/grpc/codes"
  36. "google.golang.org/grpc/metadata"
  37. gstatus "google.golang.org/grpc/status"
  38. )
  39. var _ = io.EOF
  40. var _ = ptypes.MarshalAny
  41. var _ status.Status
  42. type mockOperationsServer struct {
  43. // Embed for forward compatibility.
  44. // Tests will keep working if more methods are added
  45. // in the future.
  46. longrunningpb.OperationsServer
  47. reqs []proto.Message
  48. // If set, all calls return this error.
  49. err error
  50. // responses to return if err == nil
  51. resps []proto.Message
  52. }
  53. func (s *mockOperationsServer) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest) (*longrunningpb.ListOperationsResponse, error) {
  54. md, _ := metadata.FromIncomingContext(ctx)
  55. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  56. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  57. }
  58. s.reqs = append(s.reqs, req)
  59. if s.err != nil {
  60. return nil, s.err
  61. }
  62. return s.resps[0].(*longrunningpb.ListOperationsResponse), nil
  63. }
  64. func (s *mockOperationsServer) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest) (*longrunningpb.Operation, 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.Operation), nil
  74. }
  75. func (s *mockOperationsServer) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest) (*emptypb.Empty, 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].(*emptypb.Empty), nil
  85. }
  86. func (s *mockOperationsServer) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest) (*emptypb.Empty, error) {
  87. md, _ := metadata.FromIncomingContext(ctx)
  88. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  89. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  90. }
  91. s.reqs = append(s.reqs, req)
  92. if s.err != nil {
  93. return nil, s.err
  94. }
  95. return s.resps[0].(*emptypb.Empty), nil
  96. }
  97. // clientOpt is the option tests should use to connect to the test server.
  98. // It is initialized by TestMain.
  99. var clientOpt option.ClientOption
  100. var (
  101. mockOperations mockOperationsServer
  102. )
  103. func TestMain(m *testing.M) {
  104. flag.Parse()
  105. serv := grpc.NewServer()
  106. longrunningpb.RegisterOperationsServer(serv, &mockOperations)
  107. lis, err := net.Listen("tcp", "localhost:0")
  108. if err != nil {
  109. log.Fatal(err)
  110. }
  111. go serv.Serve(lis)
  112. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  113. if err != nil {
  114. log.Fatal(err)
  115. }
  116. clientOpt = option.WithGRPCConn(conn)
  117. os.Exit(m.Run())
  118. }
  119. func TestOperationsGetOperation(t *testing.T) {
  120. var name2 string = "name2-1052831874"
  121. var done bool = true
  122. var expectedResponse = &longrunningpb.Operation{
  123. Name: name2,
  124. Done: done,
  125. }
  126. mockOperations.err = nil
  127. mockOperations.reqs = nil
  128. mockOperations.resps = append(mockOperations.resps[:0], expectedResponse)
  129. var name string = "name3373707"
  130. var request = &longrunningpb.GetOperationRequest{
  131. Name: name,
  132. }
  133. c, err := NewOperationsClient(context.Background(), clientOpt)
  134. if err != nil {
  135. t.Fatal(err)
  136. }
  137. resp, err := c.GetOperation(context.Background(), request)
  138. if err != nil {
  139. t.Fatal(err)
  140. }
  141. if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) {
  142. t.Errorf("wrong request %q, want %q", got, want)
  143. }
  144. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  145. t.Errorf("wrong response %q, want %q)", got, want)
  146. }
  147. }
  148. func TestOperationsGetOperationError(t *testing.T) {
  149. errCode := codes.PermissionDenied
  150. mockOperations.err = gstatus.Error(errCode, "test error")
  151. var name string = "name3373707"
  152. var request = &longrunningpb.GetOperationRequest{
  153. Name: name,
  154. }
  155. c, err := NewOperationsClient(context.Background(), clientOpt)
  156. if err != nil {
  157. t.Fatal(err)
  158. }
  159. resp, err := c.GetOperation(context.Background(), request)
  160. if st, ok := gstatus.FromError(err); !ok {
  161. t.Errorf("got error %v, expected grpc error", err)
  162. } else if c := st.Code(); c != errCode {
  163. t.Errorf("got error code %q, want %q", c, errCode)
  164. }
  165. _ = resp
  166. }
  167. func TestOperationsListOperations(t *testing.T) {
  168. var nextPageToken string = ""
  169. var operationsElement *longrunningpb.Operation = &longrunningpb.Operation{}
  170. var operations = []*longrunningpb.Operation{operationsElement}
  171. var expectedResponse = &longrunningpb.ListOperationsResponse{
  172. NextPageToken: nextPageToken,
  173. Operations: operations,
  174. }
  175. mockOperations.err = nil
  176. mockOperations.reqs = nil
  177. mockOperations.resps = append(mockOperations.resps[:0], expectedResponse)
  178. var name string = "name3373707"
  179. var filter string = "filter-1274492040"
  180. var request = &longrunningpb.ListOperationsRequest{
  181. Name: name,
  182. Filter: filter,
  183. }
  184. c, err := NewOperationsClient(context.Background(), clientOpt)
  185. if err != nil {
  186. t.Fatal(err)
  187. }
  188. resp, err := c.ListOperations(context.Background(), request).Next()
  189. if err != nil {
  190. t.Fatal(err)
  191. }
  192. if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) {
  193. t.Errorf("wrong request %q, want %q", got, want)
  194. }
  195. want := (interface{})(expectedResponse.Operations[0])
  196. got := (interface{})(resp)
  197. var ok bool
  198. switch want := (want).(type) {
  199. case proto.Message:
  200. ok = proto.Equal(want, got.(proto.Message))
  201. default:
  202. ok = want == got
  203. }
  204. if !ok {
  205. t.Errorf("wrong response %q, want %q)", got, want)
  206. }
  207. }
  208. func TestOperationsListOperationsError(t *testing.T) {
  209. errCode := codes.PermissionDenied
  210. mockOperations.err = gstatus.Error(errCode, "test error")
  211. var name string = "name3373707"
  212. var filter string = "filter-1274492040"
  213. var request = &longrunningpb.ListOperationsRequest{
  214. Name: name,
  215. Filter: filter,
  216. }
  217. c, err := NewOperationsClient(context.Background(), clientOpt)
  218. if err != nil {
  219. t.Fatal(err)
  220. }
  221. resp, err := c.ListOperations(context.Background(), request).Next()
  222. if st, ok := gstatus.FromError(err); !ok {
  223. t.Errorf("got error %v, expected grpc error", err)
  224. } else if c := st.Code(); c != errCode {
  225. t.Errorf("got error code %q, want %q", c, errCode)
  226. }
  227. _ = resp
  228. }
  229. func TestOperationsCancelOperation(t *testing.T) {
  230. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  231. mockOperations.err = nil
  232. mockOperations.reqs = nil
  233. mockOperations.resps = append(mockOperations.resps[:0], expectedResponse)
  234. var name string = "name3373707"
  235. var request = &longrunningpb.CancelOperationRequest{
  236. Name: name,
  237. }
  238. c, err := NewOperationsClient(context.Background(), clientOpt)
  239. if err != nil {
  240. t.Fatal(err)
  241. }
  242. err = c.CancelOperation(context.Background(), request)
  243. if err != nil {
  244. t.Fatal(err)
  245. }
  246. if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) {
  247. t.Errorf("wrong request %q, want %q", got, want)
  248. }
  249. }
  250. func TestOperationsCancelOperationError(t *testing.T) {
  251. errCode := codes.PermissionDenied
  252. mockOperations.err = gstatus.Error(errCode, "test error")
  253. var name string = "name3373707"
  254. var request = &longrunningpb.CancelOperationRequest{
  255. Name: name,
  256. }
  257. c, err := NewOperationsClient(context.Background(), clientOpt)
  258. if err != nil {
  259. t.Fatal(err)
  260. }
  261. err = c.CancelOperation(context.Background(), request)
  262. if st, ok := gstatus.FromError(err); !ok {
  263. t.Errorf("got error %v, expected grpc error", err)
  264. } else if c := st.Code(); c != errCode {
  265. t.Errorf("got error code %q, want %q", c, errCode)
  266. }
  267. }
  268. func TestOperationsDeleteOperation(t *testing.T) {
  269. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  270. mockOperations.err = nil
  271. mockOperations.reqs = nil
  272. mockOperations.resps = append(mockOperations.resps[:0], expectedResponse)
  273. var name string = "name3373707"
  274. var request = &longrunningpb.DeleteOperationRequest{
  275. Name: name,
  276. }
  277. c, err := NewOperationsClient(context.Background(), clientOpt)
  278. if err != nil {
  279. t.Fatal(err)
  280. }
  281. err = c.DeleteOperation(context.Background(), request)
  282. if err != nil {
  283. t.Fatal(err)
  284. }
  285. if want, got := request, mockOperations.reqs[0]; !proto.Equal(want, got) {
  286. t.Errorf("wrong request %q, want %q", got, want)
  287. }
  288. }
  289. func TestOperationsDeleteOperationError(t *testing.T) {
  290. errCode := codes.PermissionDenied
  291. mockOperations.err = gstatus.Error(errCode, "test error")
  292. var name string = "name3373707"
  293. var request = &longrunningpb.DeleteOperationRequest{
  294. Name: name,
  295. }
  296. c, err := NewOperationsClient(context.Background(), clientOpt)
  297. if err != nil {
  298. t.Fatal(err)
  299. }
  300. err = c.DeleteOperation(context.Background(), request)
  301. if st, ok := gstatus.FromError(err); !ok {
  302. t.Errorf("got error %v, expected grpc error", err)
  303. } else if c := st.Code(); c != errCode {
  304. t.Errorf("got error code %q, want %q", c, errCode)
  305. }
  306. }