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.
 
 
 

1879 lines
53 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 pubsub
  16. import (
  17. emptypb "github.com/golang/protobuf/ptypes/empty"
  18. timestamppb "github.com/golang/protobuf/ptypes/timestamp"
  19. iampb "google.golang.org/genproto/googleapis/iam/v1"
  20. pubsubpb "google.golang.org/genproto/googleapis/pubsub/v1"
  21. field_maskpb "google.golang.org/genproto/protobuf/field_mask"
  22. )
  23. import (
  24. "context"
  25. "flag"
  26. "fmt"
  27. "io"
  28. "log"
  29. "net"
  30. "os"
  31. "strings"
  32. "testing"
  33. "github.com/golang/protobuf/proto"
  34. "github.com/golang/protobuf/ptypes"
  35. "google.golang.org/api/option"
  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. gstatus "google.golang.org/grpc/status"
  41. )
  42. var _ = io.EOF
  43. var _ = ptypes.MarshalAny
  44. var _ status.Status
  45. type mockPublisherServer struct {
  46. // Embed for forward compatibility.
  47. // Tests will keep working if more methods are added
  48. // in the future.
  49. pubsubpb.PublisherServer
  50. reqs []proto.Message
  51. // If set, all calls return this error.
  52. err error
  53. // responses to return if err == nil
  54. resps []proto.Message
  55. }
  56. func (s *mockPublisherServer) CreateTopic(ctx context.Context, req *pubsubpb.Topic) (*pubsubpb.Topic, error) {
  57. md, _ := metadata.FromIncomingContext(ctx)
  58. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  59. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  60. }
  61. s.reqs = append(s.reqs, req)
  62. if s.err != nil {
  63. return nil, s.err
  64. }
  65. return s.resps[0].(*pubsubpb.Topic), nil
  66. }
  67. func (s *mockPublisherServer) UpdateTopic(ctx context.Context, req *pubsubpb.UpdateTopicRequest) (*pubsubpb.Topic, error) {
  68. md, _ := metadata.FromIncomingContext(ctx)
  69. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  70. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  71. }
  72. s.reqs = append(s.reqs, req)
  73. if s.err != nil {
  74. return nil, s.err
  75. }
  76. return s.resps[0].(*pubsubpb.Topic), nil
  77. }
  78. func (s *mockPublisherServer) Publish(ctx context.Context, req *pubsubpb.PublishRequest) (*pubsubpb.PublishResponse, error) {
  79. md, _ := metadata.FromIncomingContext(ctx)
  80. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  81. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  82. }
  83. s.reqs = append(s.reqs, req)
  84. if s.err != nil {
  85. return nil, s.err
  86. }
  87. return s.resps[0].(*pubsubpb.PublishResponse), nil
  88. }
  89. func (s *mockPublisherServer) GetTopic(ctx context.Context, req *pubsubpb.GetTopicRequest) (*pubsubpb.Topic, error) {
  90. md, _ := metadata.FromIncomingContext(ctx)
  91. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  92. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  93. }
  94. s.reqs = append(s.reqs, req)
  95. if s.err != nil {
  96. return nil, s.err
  97. }
  98. return s.resps[0].(*pubsubpb.Topic), nil
  99. }
  100. func (s *mockPublisherServer) ListTopics(ctx context.Context, req *pubsubpb.ListTopicsRequest) (*pubsubpb.ListTopicsResponse, 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].(*pubsubpb.ListTopicsResponse), nil
  110. }
  111. func (s *mockPublisherServer) ListTopicSubscriptions(ctx context.Context, req *pubsubpb.ListTopicSubscriptionsRequest) (*pubsubpb.ListTopicSubscriptionsResponse, 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].(*pubsubpb.ListTopicSubscriptionsResponse), nil
  121. }
  122. func (s *mockPublisherServer) DeleteTopic(ctx context.Context, req *pubsubpb.DeleteTopicRequest) (*emptypb.Empty, error) {
  123. md, _ := metadata.FromIncomingContext(ctx)
  124. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  125. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  126. }
  127. s.reqs = append(s.reqs, req)
  128. if s.err != nil {
  129. return nil, s.err
  130. }
  131. return s.resps[0].(*emptypb.Empty), nil
  132. }
  133. type mockIamPolicyServer struct {
  134. // Embed for forward compatibility.
  135. // Tests will keep working if more methods are added
  136. // in the future.
  137. iampb.IAMPolicyServer
  138. reqs []proto.Message
  139. // If set, all calls return this error.
  140. err error
  141. // responses to return if err == nil
  142. resps []proto.Message
  143. }
  144. func (s *mockIamPolicyServer) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest) (*iampb.Policy, error) {
  145. md, _ := metadata.FromIncomingContext(ctx)
  146. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  147. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  148. }
  149. s.reqs = append(s.reqs, req)
  150. if s.err != nil {
  151. return nil, s.err
  152. }
  153. return s.resps[0].(*iampb.Policy), nil
  154. }
  155. func (s *mockIamPolicyServer) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest) (*iampb.Policy, error) {
  156. md, _ := metadata.FromIncomingContext(ctx)
  157. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  158. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  159. }
  160. s.reqs = append(s.reqs, req)
  161. if s.err != nil {
  162. return nil, s.err
  163. }
  164. return s.resps[0].(*iampb.Policy), nil
  165. }
  166. func (s *mockIamPolicyServer) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) {
  167. md, _ := metadata.FromIncomingContext(ctx)
  168. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  169. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  170. }
  171. s.reqs = append(s.reqs, req)
  172. if s.err != nil {
  173. return nil, s.err
  174. }
  175. return s.resps[0].(*iampb.TestIamPermissionsResponse), nil
  176. }
  177. type mockSubscriberServer struct {
  178. // Embed for forward compatibility.
  179. // Tests will keep working if more methods are added
  180. // in the future.
  181. pubsubpb.SubscriberServer
  182. reqs []proto.Message
  183. // If set, all calls return this error.
  184. err error
  185. // responses to return if err == nil
  186. resps []proto.Message
  187. }
  188. func (s *mockSubscriberServer) CreateSubscription(ctx context.Context, req *pubsubpb.Subscription) (*pubsubpb.Subscription, error) {
  189. md, _ := metadata.FromIncomingContext(ctx)
  190. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  191. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  192. }
  193. s.reqs = append(s.reqs, req)
  194. if s.err != nil {
  195. return nil, s.err
  196. }
  197. return s.resps[0].(*pubsubpb.Subscription), nil
  198. }
  199. func (s *mockSubscriberServer) GetSubscription(ctx context.Context, req *pubsubpb.GetSubscriptionRequest) (*pubsubpb.Subscription, error) {
  200. md, _ := metadata.FromIncomingContext(ctx)
  201. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  202. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  203. }
  204. s.reqs = append(s.reqs, req)
  205. if s.err != nil {
  206. return nil, s.err
  207. }
  208. return s.resps[0].(*pubsubpb.Subscription), nil
  209. }
  210. func (s *mockSubscriberServer) UpdateSubscription(ctx context.Context, req *pubsubpb.UpdateSubscriptionRequest) (*pubsubpb.Subscription, error) {
  211. md, _ := metadata.FromIncomingContext(ctx)
  212. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  213. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  214. }
  215. s.reqs = append(s.reqs, req)
  216. if s.err != nil {
  217. return nil, s.err
  218. }
  219. return s.resps[0].(*pubsubpb.Subscription), nil
  220. }
  221. func (s *mockSubscriberServer) ListSubscriptions(ctx context.Context, req *pubsubpb.ListSubscriptionsRequest) (*pubsubpb.ListSubscriptionsResponse, error) {
  222. md, _ := metadata.FromIncomingContext(ctx)
  223. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  224. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  225. }
  226. s.reqs = append(s.reqs, req)
  227. if s.err != nil {
  228. return nil, s.err
  229. }
  230. return s.resps[0].(*pubsubpb.ListSubscriptionsResponse), nil
  231. }
  232. func (s *mockSubscriberServer) DeleteSubscription(ctx context.Context, req *pubsubpb.DeleteSubscriptionRequest) (*emptypb.Empty, 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].(*emptypb.Empty), nil
  242. }
  243. func (s *mockSubscriberServer) ModifyAckDeadline(ctx context.Context, req *pubsubpb.ModifyAckDeadlineRequest) (*emptypb.Empty, error) {
  244. md, _ := metadata.FromIncomingContext(ctx)
  245. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  246. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  247. }
  248. s.reqs = append(s.reqs, req)
  249. if s.err != nil {
  250. return nil, s.err
  251. }
  252. return s.resps[0].(*emptypb.Empty), nil
  253. }
  254. func (s *mockSubscriberServer) Acknowledge(ctx context.Context, req *pubsubpb.AcknowledgeRequest) (*emptypb.Empty, error) {
  255. md, _ := metadata.FromIncomingContext(ctx)
  256. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  257. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  258. }
  259. s.reqs = append(s.reqs, req)
  260. if s.err != nil {
  261. return nil, s.err
  262. }
  263. return s.resps[0].(*emptypb.Empty), nil
  264. }
  265. func (s *mockSubscriberServer) Pull(ctx context.Context, req *pubsubpb.PullRequest) (*pubsubpb.PullResponse, error) {
  266. md, _ := metadata.FromIncomingContext(ctx)
  267. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  268. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  269. }
  270. s.reqs = append(s.reqs, req)
  271. if s.err != nil {
  272. return nil, s.err
  273. }
  274. return s.resps[0].(*pubsubpb.PullResponse), nil
  275. }
  276. func (s *mockSubscriberServer) StreamingPull(stream pubsubpb.Subscriber_StreamingPullServer) error {
  277. md, _ := metadata.FromIncomingContext(stream.Context())
  278. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  279. return fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  280. }
  281. for {
  282. if req, err := stream.Recv(); err == io.EOF {
  283. break
  284. } else if err != nil {
  285. return err
  286. } else {
  287. s.reqs = append(s.reqs, req)
  288. }
  289. }
  290. if s.err != nil {
  291. return s.err
  292. }
  293. for _, v := range s.resps {
  294. if err := stream.Send(v.(*pubsubpb.StreamingPullResponse)); err != nil {
  295. return err
  296. }
  297. }
  298. return nil
  299. }
  300. func (s *mockSubscriberServer) ModifyPushConfig(ctx context.Context, req *pubsubpb.ModifyPushConfigRequest) (*emptypb.Empty, error) {
  301. md, _ := metadata.FromIncomingContext(ctx)
  302. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  303. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  304. }
  305. s.reqs = append(s.reqs, req)
  306. if s.err != nil {
  307. return nil, s.err
  308. }
  309. return s.resps[0].(*emptypb.Empty), nil
  310. }
  311. func (s *mockSubscriberServer) ListSnapshots(ctx context.Context, req *pubsubpb.ListSnapshotsRequest) (*pubsubpb.ListSnapshotsResponse, error) {
  312. md, _ := metadata.FromIncomingContext(ctx)
  313. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  314. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  315. }
  316. s.reqs = append(s.reqs, req)
  317. if s.err != nil {
  318. return nil, s.err
  319. }
  320. return s.resps[0].(*pubsubpb.ListSnapshotsResponse), nil
  321. }
  322. func (s *mockSubscriberServer) CreateSnapshot(ctx context.Context, req *pubsubpb.CreateSnapshotRequest) (*pubsubpb.Snapshot, error) {
  323. md, _ := metadata.FromIncomingContext(ctx)
  324. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  325. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  326. }
  327. s.reqs = append(s.reqs, req)
  328. if s.err != nil {
  329. return nil, s.err
  330. }
  331. return s.resps[0].(*pubsubpb.Snapshot), nil
  332. }
  333. func (s *mockSubscriberServer) UpdateSnapshot(ctx context.Context, req *pubsubpb.UpdateSnapshotRequest) (*pubsubpb.Snapshot, error) {
  334. md, _ := metadata.FromIncomingContext(ctx)
  335. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  336. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  337. }
  338. s.reqs = append(s.reqs, req)
  339. if s.err != nil {
  340. return nil, s.err
  341. }
  342. return s.resps[0].(*pubsubpb.Snapshot), nil
  343. }
  344. func (s *mockSubscriberServer) DeleteSnapshot(ctx context.Context, req *pubsubpb.DeleteSnapshotRequest) (*emptypb.Empty, error) {
  345. md, _ := metadata.FromIncomingContext(ctx)
  346. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  347. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  348. }
  349. s.reqs = append(s.reqs, req)
  350. if s.err != nil {
  351. return nil, s.err
  352. }
  353. return s.resps[0].(*emptypb.Empty), nil
  354. }
  355. func (s *mockSubscriberServer) Seek(ctx context.Context, req *pubsubpb.SeekRequest) (*pubsubpb.SeekResponse, error) {
  356. md, _ := metadata.FromIncomingContext(ctx)
  357. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  358. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  359. }
  360. s.reqs = append(s.reqs, req)
  361. if s.err != nil {
  362. return nil, s.err
  363. }
  364. return s.resps[0].(*pubsubpb.SeekResponse), nil
  365. }
  366. // clientOpt is the option tests should use to connect to the test server.
  367. // It is initialized by TestMain.
  368. var clientOpt option.ClientOption
  369. var (
  370. mockPublisher mockPublisherServer
  371. mockIamPolicy mockIamPolicyServer
  372. mockSubscriber mockSubscriberServer
  373. )
  374. func TestMain(m *testing.M) {
  375. flag.Parse()
  376. serv := grpc.NewServer()
  377. pubsubpb.RegisterPublisherServer(serv, &mockPublisher)
  378. iampb.RegisterIAMPolicyServer(serv, &mockIamPolicy)
  379. pubsubpb.RegisterSubscriberServer(serv, &mockSubscriber)
  380. lis, err := net.Listen("tcp", "localhost:0")
  381. if err != nil {
  382. log.Fatal(err)
  383. }
  384. go serv.Serve(lis)
  385. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  386. if err != nil {
  387. log.Fatal(err)
  388. }
  389. clientOpt = option.WithGRPCConn(conn)
  390. os.Exit(m.Run())
  391. }
  392. func TestPublisherCreateTopic(t *testing.T) {
  393. var name2 string = "name2-1052831874"
  394. var expectedResponse = &pubsubpb.Topic{
  395. Name: name2,
  396. }
  397. mockPublisher.err = nil
  398. mockPublisher.reqs = nil
  399. mockPublisher.resps = append(mockPublisher.resps[:0], expectedResponse)
  400. var formattedName string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  401. var request = &pubsubpb.Topic{
  402. Name: formattedName,
  403. }
  404. c, err := NewPublisherClient(context.Background(), clientOpt)
  405. if err != nil {
  406. t.Fatal(err)
  407. }
  408. resp, err := c.CreateTopic(context.Background(), request)
  409. if err != nil {
  410. t.Fatal(err)
  411. }
  412. if want, got := request, mockPublisher.reqs[0]; !proto.Equal(want, got) {
  413. t.Errorf("wrong request %q, want %q", got, want)
  414. }
  415. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  416. t.Errorf("wrong response %q, want %q)", got, want)
  417. }
  418. }
  419. func TestPublisherCreateTopicError(t *testing.T) {
  420. errCode := codes.PermissionDenied
  421. mockPublisher.err = gstatus.Error(errCode, "test error")
  422. var formattedName string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  423. var request = &pubsubpb.Topic{
  424. Name: formattedName,
  425. }
  426. c, err := NewPublisherClient(context.Background(), clientOpt)
  427. if err != nil {
  428. t.Fatal(err)
  429. }
  430. resp, err := c.CreateTopic(context.Background(), request)
  431. if st, ok := gstatus.FromError(err); !ok {
  432. t.Errorf("got error %v, expected grpc error", err)
  433. } else if c := st.Code(); c != errCode {
  434. t.Errorf("got error code %q, want %q", c, errCode)
  435. }
  436. _ = resp
  437. }
  438. func TestPublisherUpdateTopic(t *testing.T) {
  439. var name string = "name3373707"
  440. var expectedResponse = &pubsubpb.Topic{
  441. Name: name,
  442. }
  443. mockPublisher.err = nil
  444. mockPublisher.reqs = nil
  445. mockPublisher.resps = append(mockPublisher.resps[:0], expectedResponse)
  446. var topic *pubsubpb.Topic = &pubsubpb.Topic{}
  447. var updateMask *field_maskpb.FieldMask = &field_maskpb.FieldMask{}
  448. var request = &pubsubpb.UpdateTopicRequest{
  449. Topic: topic,
  450. UpdateMask: updateMask,
  451. }
  452. c, err := NewPublisherClient(context.Background(), clientOpt)
  453. if err != nil {
  454. t.Fatal(err)
  455. }
  456. resp, err := c.UpdateTopic(context.Background(), request)
  457. if err != nil {
  458. t.Fatal(err)
  459. }
  460. if want, got := request, mockPublisher.reqs[0]; !proto.Equal(want, got) {
  461. t.Errorf("wrong request %q, want %q", got, want)
  462. }
  463. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  464. t.Errorf("wrong response %q, want %q)", got, want)
  465. }
  466. }
  467. func TestPublisherUpdateTopicError(t *testing.T) {
  468. errCode := codes.PermissionDenied
  469. mockPublisher.err = gstatus.Error(errCode, "test error")
  470. var topic *pubsubpb.Topic = &pubsubpb.Topic{}
  471. var updateMask *field_maskpb.FieldMask = &field_maskpb.FieldMask{}
  472. var request = &pubsubpb.UpdateTopicRequest{
  473. Topic: topic,
  474. UpdateMask: updateMask,
  475. }
  476. c, err := NewPublisherClient(context.Background(), clientOpt)
  477. if err != nil {
  478. t.Fatal(err)
  479. }
  480. resp, err := c.UpdateTopic(context.Background(), request)
  481. if st, ok := gstatus.FromError(err); !ok {
  482. t.Errorf("got error %v, expected grpc error", err)
  483. } else if c := st.Code(); c != errCode {
  484. t.Errorf("got error code %q, want %q", c, errCode)
  485. }
  486. _ = resp
  487. }
  488. func TestPublisherPublish(t *testing.T) {
  489. var messageIdsElement string = "messageIdsElement-744837059"
  490. var messageIds = []string{messageIdsElement}
  491. var expectedResponse = &pubsubpb.PublishResponse{
  492. MessageIds: messageIds,
  493. }
  494. mockPublisher.err = nil
  495. mockPublisher.reqs = nil
  496. mockPublisher.resps = append(mockPublisher.resps[:0], expectedResponse)
  497. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  498. var data []byte = []byte("-86")
  499. var messagesElement = &pubsubpb.PubsubMessage{
  500. Data: data,
  501. }
  502. var messages = []*pubsubpb.PubsubMessage{messagesElement}
  503. var request = &pubsubpb.PublishRequest{
  504. Topic: formattedTopic,
  505. Messages: messages,
  506. }
  507. c, err := NewPublisherClient(context.Background(), clientOpt)
  508. if err != nil {
  509. t.Fatal(err)
  510. }
  511. resp, err := c.Publish(context.Background(), request)
  512. if err != nil {
  513. t.Fatal(err)
  514. }
  515. if want, got := request, mockPublisher.reqs[0]; !proto.Equal(want, got) {
  516. t.Errorf("wrong request %q, want %q", got, want)
  517. }
  518. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  519. t.Errorf("wrong response %q, want %q)", got, want)
  520. }
  521. }
  522. func TestPublisherPublishError(t *testing.T) {
  523. errCode := codes.PermissionDenied
  524. mockPublisher.err = gstatus.Error(errCode, "test error")
  525. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  526. var data []byte = []byte("-86")
  527. var messagesElement = &pubsubpb.PubsubMessage{
  528. Data: data,
  529. }
  530. var messages = []*pubsubpb.PubsubMessage{messagesElement}
  531. var request = &pubsubpb.PublishRequest{
  532. Topic: formattedTopic,
  533. Messages: messages,
  534. }
  535. c, err := NewPublisherClient(context.Background(), clientOpt)
  536. if err != nil {
  537. t.Fatal(err)
  538. }
  539. resp, err := c.Publish(context.Background(), request)
  540. if st, ok := gstatus.FromError(err); !ok {
  541. t.Errorf("got error %v, expected grpc error", err)
  542. } else if c := st.Code(); c != errCode {
  543. t.Errorf("got error code %q, want %q", c, errCode)
  544. }
  545. _ = resp
  546. }
  547. func TestPublisherGetTopic(t *testing.T) {
  548. var name string = "name3373707"
  549. var expectedResponse = &pubsubpb.Topic{
  550. Name: name,
  551. }
  552. mockPublisher.err = nil
  553. mockPublisher.reqs = nil
  554. mockPublisher.resps = append(mockPublisher.resps[:0], expectedResponse)
  555. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  556. var request = &pubsubpb.GetTopicRequest{
  557. Topic: formattedTopic,
  558. }
  559. c, err := NewPublisherClient(context.Background(), clientOpt)
  560. if err != nil {
  561. t.Fatal(err)
  562. }
  563. resp, err := c.GetTopic(context.Background(), request)
  564. if err != nil {
  565. t.Fatal(err)
  566. }
  567. if want, got := request, mockPublisher.reqs[0]; !proto.Equal(want, got) {
  568. t.Errorf("wrong request %q, want %q", got, want)
  569. }
  570. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  571. t.Errorf("wrong response %q, want %q)", got, want)
  572. }
  573. }
  574. func TestPublisherGetTopicError(t *testing.T) {
  575. errCode := codes.PermissionDenied
  576. mockPublisher.err = gstatus.Error(errCode, "test error")
  577. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  578. var request = &pubsubpb.GetTopicRequest{
  579. Topic: formattedTopic,
  580. }
  581. c, err := NewPublisherClient(context.Background(), clientOpt)
  582. if err != nil {
  583. t.Fatal(err)
  584. }
  585. resp, err := c.GetTopic(context.Background(), request)
  586. if st, ok := gstatus.FromError(err); !ok {
  587. t.Errorf("got error %v, expected grpc error", err)
  588. } else if c := st.Code(); c != errCode {
  589. t.Errorf("got error code %q, want %q", c, errCode)
  590. }
  591. _ = resp
  592. }
  593. func TestPublisherListTopics(t *testing.T) {
  594. var nextPageToken string = ""
  595. var topicsElement *pubsubpb.Topic = &pubsubpb.Topic{}
  596. var topics = []*pubsubpb.Topic{topicsElement}
  597. var expectedResponse = &pubsubpb.ListTopicsResponse{
  598. NextPageToken: nextPageToken,
  599. Topics: topics,
  600. }
  601. mockPublisher.err = nil
  602. mockPublisher.reqs = nil
  603. mockPublisher.resps = append(mockPublisher.resps[:0], expectedResponse)
  604. var formattedProject string = fmt.Sprintf("projects/%s", "[PROJECT]")
  605. var request = &pubsubpb.ListTopicsRequest{
  606. Project: formattedProject,
  607. }
  608. c, err := NewPublisherClient(context.Background(), clientOpt)
  609. if err != nil {
  610. t.Fatal(err)
  611. }
  612. resp, err := c.ListTopics(context.Background(), request).Next()
  613. if err != nil {
  614. t.Fatal(err)
  615. }
  616. if want, got := request, mockPublisher.reqs[0]; !proto.Equal(want, got) {
  617. t.Errorf("wrong request %q, want %q", got, want)
  618. }
  619. want := (interface{})(expectedResponse.Topics[0])
  620. got := (interface{})(resp)
  621. var ok bool
  622. switch want := (want).(type) {
  623. case proto.Message:
  624. ok = proto.Equal(want, got.(proto.Message))
  625. default:
  626. ok = want == got
  627. }
  628. if !ok {
  629. t.Errorf("wrong response %q, want %q)", got, want)
  630. }
  631. }
  632. func TestPublisherListTopicsError(t *testing.T) {
  633. errCode := codes.PermissionDenied
  634. mockPublisher.err = gstatus.Error(errCode, "test error")
  635. var formattedProject string = fmt.Sprintf("projects/%s", "[PROJECT]")
  636. var request = &pubsubpb.ListTopicsRequest{
  637. Project: formattedProject,
  638. }
  639. c, err := NewPublisherClient(context.Background(), clientOpt)
  640. if err != nil {
  641. t.Fatal(err)
  642. }
  643. resp, err := c.ListTopics(context.Background(), request).Next()
  644. if st, ok := gstatus.FromError(err); !ok {
  645. t.Errorf("got error %v, expected grpc error", err)
  646. } else if c := st.Code(); c != errCode {
  647. t.Errorf("got error code %q, want %q", c, errCode)
  648. }
  649. _ = resp
  650. }
  651. func TestPublisherListTopicSubscriptions(t *testing.T) {
  652. var nextPageToken string = ""
  653. var subscriptionsElement string = "subscriptionsElement1698708147"
  654. var subscriptions = []string{subscriptionsElement}
  655. var expectedResponse = &pubsubpb.ListTopicSubscriptionsResponse{
  656. NextPageToken: nextPageToken,
  657. Subscriptions: subscriptions,
  658. }
  659. mockPublisher.err = nil
  660. mockPublisher.reqs = nil
  661. mockPublisher.resps = append(mockPublisher.resps[:0], expectedResponse)
  662. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  663. var request = &pubsubpb.ListTopicSubscriptionsRequest{
  664. Topic: formattedTopic,
  665. }
  666. c, err := NewPublisherClient(context.Background(), clientOpt)
  667. if err != nil {
  668. t.Fatal(err)
  669. }
  670. resp, err := c.ListTopicSubscriptions(context.Background(), request).Next()
  671. if err != nil {
  672. t.Fatal(err)
  673. }
  674. if want, got := request, mockPublisher.reqs[0]; !proto.Equal(want, got) {
  675. t.Errorf("wrong request %q, want %q", got, want)
  676. }
  677. want := (interface{})(expectedResponse.Subscriptions[0])
  678. got := (interface{})(resp)
  679. var ok bool
  680. switch want := (want).(type) {
  681. case proto.Message:
  682. ok = proto.Equal(want, got.(proto.Message))
  683. default:
  684. ok = want == got
  685. }
  686. if !ok {
  687. t.Errorf("wrong response %q, want %q)", got, want)
  688. }
  689. }
  690. func TestPublisherListTopicSubscriptionsError(t *testing.T) {
  691. errCode := codes.PermissionDenied
  692. mockPublisher.err = gstatus.Error(errCode, "test error")
  693. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  694. var request = &pubsubpb.ListTopicSubscriptionsRequest{
  695. Topic: formattedTopic,
  696. }
  697. c, err := NewPublisherClient(context.Background(), clientOpt)
  698. if err != nil {
  699. t.Fatal(err)
  700. }
  701. resp, err := c.ListTopicSubscriptions(context.Background(), request).Next()
  702. if st, ok := gstatus.FromError(err); !ok {
  703. t.Errorf("got error %v, expected grpc error", err)
  704. } else if c := st.Code(); c != errCode {
  705. t.Errorf("got error code %q, want %q", c, errCode)
  706. }
  707. _ = resp
  708. }
  709. func TestPublisherDeleteTopic(t *testing.T) {
  710. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  711. mockPublisher.err = nil
  712. mockPublisher.reqs = nil
  713. mockPublisher.resps = append(mockPublisher.resps[:0], expectedResponse)
  714. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  715. var request = &pubsubpb.DeleteTopicRequest{
  716. Topic: formattedTopic,
  717. }
  718. c, err := NewPublisherClient(context.Background(), clientOpt)
  719. if err != nil {
  720. t.Fatal(err)
  721. }
  722. err = c.DeleteTopic(context.Background(), request)
  723. if err != nil {
  724. t.Fatal(err)
  725. }
  726. if want, got := request, mockPublisher.reqs[0]; !proto.Equal(want, got) {
  727. t.Errorf("wrong request %q, want %q", got, want)
  728. }
  729. }
  730. func TestPublisherDeleteTopicError(t *testing.T) {
  731. errCode := codes.PermissionDenied
  732. mockPublisher.err = gstatus.Error(errCode, "test error")
  733. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  734. var request = &pubsubpb.DeleteTopicRequest{
  735. Topic: formattedTopic,
  736. }
  737. c, err := NewPublisherClient(context.Background(), clientOpt)
  738. if err != nil {
  739. t.Fatal(err)
  740. }
  741. err = c.DeleteTopic(context.Background(), request)
  742. if st, ok := gstatus.FromError(err); !ok {
  743. t.Errorf("got error %v, expected grpc error", err)
  744. } else if c := st.Code(); c != errCode {
  745. t.Errorf("got error code %q, want %q", c, errCode)
  746. }
  747. }
  748. func TestSubscriberCreateSubscription(t *testing.T) {
  749. var name2 string = "name2-1052831874"
  750. var topic2 string = "topic2-1139259102"
  751. var ackDeadlineSeconds int32 = 2135351438
  752. var retainAckedMessages bool = false
  753. var expectedResponse = &pubsubpb.Subscription{
  754. Name: name2,
  755. Topic: topic2,
  756. AckDeadlineSeconds: ackDeadlineSeconds,
  757. RetainAckedMessages: retainAckedMessages,
  758. }
  759. mockSubscriber.err = nil
  760. mockSubscriber.reqs = nil
  761. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  762. var formattedName string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  763. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  764. var request = &pubsubpb.Subscription{
  765. Name: formattedName,
  766. Topic: formattedTopic,
  767. }
  768. c, err := NewSubscriberClient(context.Background(), clientOpt)
  769. if err != nil {
  770. t.Fatal(err)
  771. }
  772. resp, err := c.CreateSubscription(context.Background(), request)
  773. if err != nil {
  774. t.Fatal(err)
  775. }
  776. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  777. t.Errorf("wrong request %q, want %q", got, want)
  778. }
  779. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  780. t.Errorf("wrong response %q, want %q)", got, want)
  781. }
  782. }
  783. func TestSubscriberCreateSubscriptionError(t *testing.T) {
  784. errCode := codes.PermissionDenied
  785. mockSubscriber.err = gstatus.Error(errCode, "test error")
  786. var formattedName string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  787. var formattedTopic string = fmt.Sprintf("projects/%s/topics/%s", "[PROJECT]", "[TOPIC]")
  788. var request = &pubsubpb.Subscription{
  789. Name: formattedName,
  790. Topic: formattedTopic,
  791. }
  792. c, err := NewSubscriberClient(context.Background(), clientOpt)
  793. if err != nil {
  794. t.Fatal(err)
  795. }
  796. resp, err := c.CreateSubscription(context.Background(), request)
  797. if st, ok := gstatus.FromError(err); !ok {
  798. t.Errorf("got error %v, expected grpc error", err)
  799. } else if c := st.Code(); c != errCode {
  800. t.Errorf("got error code %q, want %q", c, errCode)
  801. }
  802. _ = resp
  803. }
  804. func TestSubscriberGetSubscription(t *testing.T) {
  805. var name string = "name3373707"
  806. var topic string = "topic110546223"
  807. var ackDeadlineSeconds int32 = 2135351438
  808. var retainAckedMessages bool = false
  809. var expectedResponse = &pubsubpb.Subscription{
  810. Name: name,
  811. Topic: topic,
  812. AckDeadlineSeconds: ackDeadlineSeconds,
  813. RetainAckedMessages: retainAckedMessages,
  814. }
  815. mockSubscriber.err = nil
  816. mockSubscriber.reqs = nil
  817. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  818. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  819. var request = &pubsubpb.GetSubscriptionRequest{
  820. Subscription: formattedSubscription,
  821. }
  822. c, err := NewSubscriberClient(context.Background(), clientOpt)
  823. if err != nil {
  824. t.Fatal(err)
  825. }
  826. resp, err := c.GetSubscription(context.Background(), request)
  827. if err != nil {
  828. t.Fatal(err)
  829. }
  830. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  831. t.Errorf("wrong request %q, want %q", got, want)
  832. }
  833. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  834. t.Errorf("wrong response %q, want %q)", got, want)
  835. }
  836. }
  837. func TestSubscriberGetSubscriptionError(t *testing.T) {
  838. errCode := codes.PermissionDenied
  839. mockSubscriber.err = gstatus.Error(errCode, "test error")
  840. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  841. var request = &pubsubpb.GetSubscriptionRequest{
  842. Subscription: formattedSubscription,
  843. }
  844. c, err := NewSubscriberClient(context.Background(), clientOpt)
  845. if err != nil {
  846. t.Fatal(err)
  847. }
  848. resp, err := c.GetSubscription(context.Background(), request)
  849. if st, ok := gstatus.FromError(err); !ok {
  850. t.Errorf("got error %v, expected grpc error", err)
  851. } else if c := st.Code(); c != errCode {
  852. t.Errorf("got error code %q, want %q", c, errCode)
  853. }
  854. _ = resp
  855. }
  856. func TestSubscriberUpdateSubscription(t *testing.T) {
  857. var name string = "name3373707"
  858. var topic string = "topic110546223"
  859. var ackDeadlineSeconds2 int32 = 921632575
  860. var retainAckedMessages bool = false
  861. var expectedResponse = &pubsubpb.Subscription{
  862. Name: name,
  863. Topic: topic,
  864. AckDeadlineSeconds: ackDeadlineSeconds2,
  865. RetainAckedMessages: retainAckedMessages,
  866. }
  867. mockSubscriber.err = nil
  868. mockSubscriber.reqs = nil
  869. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  870. var ackDeadlineSeconds int32 = 42
  871. var subscription = &pubsubpb.Subscription{
  872. AckDeadlineSeconds: ackDeadlineSeconds,
  873. }
  874. var pathsElement string = "ack_deadline_seconds"
  875. var paths = []string{pathsElement}
  876. var updateMask = &field_maskpb.FieldMask{
  877. Paths: paths,
  878. }
  879. var request = &pubsubpb.UpdateSubscriptionRequest{
  880. Subscription: subscription,
  881. UpdateMask: updateMask,
  882. }
  883. c, err := NewSubscriberClient(context.Background(), clientOpt)
  884. if err != nil {
  885. t.Fatal(err)
  886. }
  887. resp, err := c.UpdateSubscription(context.Background(), request)
  888. if err != nil {
  889. t.Fatal(err)
  890. }
  891. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  892. t.Errorf("wrong request %q, want %q", got, want)
  893. }
  894. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  895. t.Errorf("wrong response %q, want %q)", got, want)
  896. }
  897. }
  898. func TestSubscriberUpdateSubscriptionError(t *testing.T) {
  899. errCode := codes.PermissionDenied
  900. mockSubscriber.err = gstatus.Error(errCode, "test error")
  901. var ackDeadlineSeconds int32 = 42
  902. var subscription = &pubsubpb.Subscription{
  903. AckDeadlineSeconds: ackDeadlineSeconds,
  904. }
  905. var pathsElement string = "ack_deadline_seconds"
  906. var paths = []string{pathsElement}
  907. var updateMask = &field_maskpb.FieldMask{
  908. Paths: paths,
  909. }
  910. var request = &pubsubpb.UpdateSubscriptionRequest{
  911. Subscription: subscription,
  912. UpdateMask: updateMask,
  913. }
  914. c, err := NewSubscriberClient(context.Background(), clientOpt)
  915. if err != nil {
  916. t.Fatal(err)
  917. }
  918. resp, err := c.UpdateSubscription(context.Background(), request)
  919. if st, ok := gstatus.FromError(err); !ok {
  920. t.Errorf("got error %v, expected grpc error", err)
  921. } else if c := st.Code(); c != errCode {
  922. t.Errorf("got error code %q, want %q", c, errCode)
  923. }
  924. _ = resp
  925. }
  926. func TestSubscriberListSubscriptions(t *testing.T) {
  927. var nextPageToken string = ""
  928. var subscriptionsElement *pubsubpb.Subscription = &pubsubpb.Subscription{}
  929. var subscriptions = []*pubsubpb.Subscription{subscriptionsElement}
  930. var expectedResponse = &pubsubpb.ListSubscriptionsResponse{
  931. NextPageToken: nextPageToken,
  932. Subscriptions: subscriptions,
  933. }
  934. mockSubscriber.err = nil
  935. mockSubscriber.reqs = nil
  936. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  937. var formattedProject string = fmt.Sprintf("projects/%s", "[PROJECT]")
  938. var request = &pubsubpb.ListSubscriptionsRequest{
  939. Project: formattedProject,
  940. }
  941. c, err := NewSubscriberClient(context.Background(), clientOpt)
  942. if err != nil {
  943. t.Fatal(err)
  944. }
  945. resp, err := c.ListSubscriptions(context.Background(), request).Next()
  946. if err != nil {
  947. t.Fatal(err)
  948. }
  949. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  950. t.Errorf("wrong request %q, want %q", got, want)
  951. }
  952. want := (interface{})(expectedResponse.Subscriptions[0])
  953. got := (interface{})(resp)
  954. var ok bool
  955. switch want := (want).(type) {
  956. case proto.Message:
  957. ok = proto.Equal(want, got.(proto.Message))
  958. default:
  959. ok = want == got
  960. }
  961. if !ok {
  962. t.Errorf("wrong response %q, want %q)", got, want)
  963. }
  964. }
  965. func TestSubscriberListSubscriptionsError(t *testing.T) {
  966. errCode := codes.PermissionDenied
  967. mockSubscriber.err = gstatus.Error(errCode, "test error")
  968. var formattedProject string = fmt.Sprintf("projects/%s", "[PROJECT]")
  969. var request = &pubsubpb.ListSubscriptionsRequest{
  970. Project: formattedProject,
  971. }
  972. c, err := NewSubscriberClient(context.Background(), clientOpt)
  973. if err != nil {
  974. t.Fatal(err)
  975. }
  976. resp, err := c.ListSubscriptions(context.Background(), request).Next()
  977. if st, ok := gstatus.FromError(err); !ok {
  978. t.Errorf("got error %v, expected grpc error", err)
  979. } else if c := st.Code(); c != errCode {
  980. t.Errorf("got error code %q, want %q", c, errCode)
  981. }
  982. _ = resp
  983. }
  984. func TestSubscriberDeleteSubscription(t *testing.T) {
  985. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  986. mockSubscriber.err = nil
  987. mockSubscriber.reqs = nil
  988. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  989. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  990. var request = &pubsubpb.DeleteSubscriptionRequest{
  991. Subscription: formattedSubscription,
  992. }
  993. c, err := NewSubscriberClient(context.Background(), clientOpt)
  994. if err != nil {
  995. t.Fatal(err)
  996. }
  997. err = c.DeleteSubscription(context.Background(), request)
  998. if err != nil {
  999. t.Fatal(err)
  1000. }
  1001. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1002. t.Errorf("wrong request %q, want %q", got, want)
  1003. }
  1004. }
  1005. func TestSubscriberDeleteSubscriptionError(t *testing.T) {
  1006. errCode := codes.PermissionDenied
  1007. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1008. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1009. var request = &pubsubpb.DeleteSubscriptionRequest{
  1010. Subscription: formattedSubscription,
  1011. }
  1012. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1013. if err != nil {
  1014. t.Fatal(err)
  1015. }
  1016. err = c.DeleteSubscription(context.Background(), request)
  1017. if st, ok := gstatus.FromError(err); !ok {
  1018. t.Errorf("got error %v, expected grpc error", err)
  1019. } else if c := st.Code(); c != errCode {
  1020. t.Errorf("got error code %q, want %q", c, errCode)
  1021. }
  1022. }
  1023. func TestSubscriberModifyAckDeadline(t *testing.T) {
  1024. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  1025. mockSubscriber.err = nil
  1026. mockSubscriber.reqs = nil
  1027. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1028. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1029. var ackIds []string = nil
  1030. var ackDeadlineSeconds int32 = 2135351438
  1031. var request = &pubsubpb.ModifyAckDeadlineRequest{
  1032. Subscription: formattedSubscription,
  1033. AckIds: ackIds,
  1034. AckDeadlineSeconds: ackDeadlineSeconds,
  1035. }
  1036. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1037. if err != nil {
  1038. t.Fatal(err)
  1039. }
  1040. err = c.ModifyAckDeadline(context.Background(), request)
  1041. if err != nil {
  1042. t.Fatal(err)
  1043. }
  1044. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1045. t.Errorf("wrong request %q, want %q", got, want)
  1046. }
  1047. }
  1048. func TestSubscriberModifyAckDeadlineError(t *testing.T) {
  1049. errCode := codes.PermissionDenied
  1050. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1051. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1052. var ackIds []string = nil
  1053. var ackDeadlineSeconds int32 = 2135351438
  1054. var request = &pubsubpb.ModifyAckDeadlineRequest{
  1055. Subscription: formattedSubscription,
  1056. AckIds: ackIds,
  1057. AckDeadlineSeconds: ackDeadlineSeconds,
  1058. }
  1059. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1060. if err != nil {
  1061. t.Fatal(err)
  1062. }
  1063. err = c.ModifyAckDeadline(context.Background(), request)
  1064. if st, ok := gstatus.FromError(err); !ok {
  1065. t.Errorf("got error %v, expected grpc error", err)
  1066. } else if c := st.Code(); c != errCode {
  1067. t.Errorf("got error code %q, want %q", c, errCode)
  1068. }
  1069. }
  1070. func TestSubscriberAcknowledge(t *testing.T) {
  1071. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  1072. mockSubscriber.err = nil
  1073. mockSubscriber.reqs = nil
  1074. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1075. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1076. var ackIds []string = nil
  1077. var request = &pubsubpb.AcknowledgeRequest{
  1078. Subscription: formattedSubscription,
  1079. AckIds: ackIds,
  1080. }
  1081. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1082. if err != nil {
  1083. t.Fatal(err)
  1084. }
  1085. err = c.Acknowledge(context.Background(), request)
  1086. if err != nil {
  1087. t.Fatal(err)
  1088. }
  1089. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1090. t.Errorf("wrong request %q, want %q", got, want)
  1091. }
  1092. }
  1093. func TestSubscriberAcknowledgeError(t *testing.T) {
  1094. errCode := codes.PermissionDenied
  1095. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1096. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1097. var ackIds []string = nil
  1098. var request = &pubsubpb.AcknowledgeRequest{
  1099. Subscription: formattedSubscription,
  1100. AckIds: ackIds,
  1101. }
  1102. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1103. if err != nil {
  1104. t.Fatal(err)
  1105. }
  1106. err = c.Acknowledge(context.Background(), request)
  1107. if st, ok := gstatus.FromError(err); !ok {
  1108. t.Errorf("got error %v, expected grpc error", err)
  1109. } else if c := st.Code(); c != errCode {
  1110. t.Errorf("got error code %q, want %q", c, errCode)
  1111. }
  1112. }
  1113. func TestSubscriberPull(t *testing.T) {
  1114. var expectedResponse *pubsubpb.PullResponse = &pubsubpb.PullResponse{}
  1115. mockSubscriber.err = nil
  1116. mockSubscriber.reqs = nil
  1117. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1118. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1119. var maxMessages int32 = 496131527
  1120. var request = &pubsubpb.PullRequest{
  1121. Subscription: formattedSubscription,
  1122. MaxMessages: maxMessages,
  1123. }
  1124. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1125. if err != nil {
  1126. t.Fatal(err)
  1127. }
  1128. resp, err := c.Pull(context.Background(), request)
  1129. if err != nil {
  1130. t.Fatal(err)
  1131. }
  1132. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1133. t.Errorf("wrong request %q, want %q", got, want)
  1134. }
  1135. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1136. t.Errorf("wrong response %q, want %q)", got, want)
  1137. }
  1138. }
  1139. func TestSubscriberPullError(t *testing.T) {
  1140. errCode := codes.PermissionDenied
  1141. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1142. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1143. var maxMessages int32 = 496131527
  1144. var request = &pubsubpb.PullRequest{
  1145. Subscription: formattedSubscription,
  1146. MaxMessages: maxMessages,
  1147. }
  1148. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1149. if err != nil {
  1150. t.Fatal(err)
  1151. }
  1152. resp, err := c.Pull(context.Background(), request)
  1153. if st, ok := gstatus.FromError(err); !ok {
  1154. t.Errorf("got error %v, expected grpc error", err)
  1155. } else if c := st.Code(); c != errCode {
  1156. t.Errorf("got error code %q, want %q", c, errCode)
  1157. }
  1158. _ = resp
  1159. }
  1160. func TestSubscriberStreamingPull(t *testing.T) {
  1161. var receivedMessagesElement *pubsubpb.ReceivedMessage = &pubsubpb.ReceivedMessage{}
  1162. var receivedMessages = []*pubsubpb.ReceivedMessage{receivedMessagesElement}
  1163. var expectedResponse = &pubsubpb.StreamingPullResponse{
  1164. ReceivedMessages: receivedMessages,
  1165. }
  1166. mockSubscriber.err = nil
  1167. mockSubscriber.reqs = nil
  1168. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1169. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1170. var streamAckDeadlineSeconds int32 = 1875467245
  1171. var request = &pubsubpb.StreamingPullRequest{
  1172. Subscription: formattedSubscription,
  1173. StreamAckDeadlineSeconds: streamAckDeadlineSeconds,
  1174. }
  1175. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1176. if err != nil {
  1177. t.Fatal(err)
  1178. }
  1179. stream, err := c.StreamingPull(context.Background())
  1180. if err != nil {
  1181. t.Fatal(err)
  1182. }
  1183. if err := stream.Send(request); err != nil {
  1184. t.Fatal(err)
  1185. }
  1186. if err := stream.CloseSend(); err != nil {
  1187. t.Fatal(err)
  1188. }
  1189. resp, err := stream.Recv()
  1190. if err != nil {
  1191. t.Fatal(err)
  1192. }
  1193. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1194. t.Errorf("wrong request %q, want %q", got, want)
  1195. }
  1196. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1197. t.Errorf("wrong response %q, want %q)", got, want)
  1198. }
  1199. }
  1200. func TestSubscriberStreamingPullError(t *testing.T) {
  1201. errCode := codes.PermissionDenied
  1202. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1203. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1204. var streamAckDeadlineSeconds int32 = 1875467245
  1205. var request = &pubsubpb.StreamingPullRequest{
  1206. Subscription: formattedSubscription,
  1207. StreamAckDeadlineSeconds: streamAckDeadlineSeconds,
  1208. }
  1209. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1210. if err != nil {
  1211. t.Fatal(err)
  1212. }
  1213. stream, err := c.StreamingPull(context.Background())
  1214. if err != nil {
  1215. t.Fatal(err)
  1216. }
  1217. if err := stream.Send(request); err != nil {
  1218. t.Fatal(err)
  1219. }
  1220. if err := stream.CloseSend(); err != nil {
  1221. t.Fatal(err)
  1222. }
  1223. resp, err := stream.Recv()
  1224. if st, ok := gstatus.FromError(err); !ok {
  1225. t.Errorf("got error %v, expected grpc error", err)
  1226. } else if c := st.Code(); c != errCode {
  1227. t.Errorf("got error code %q, want %q", c, errCode)
  1228. }
  1229. _ = resp
  1230. }
  1231. func TestSubscriberModifyPushConfig(t *testing.T) {
  1232. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  1233. mockSubscriber.err = nil
  1234. mockSubscriber.reqs = nil
  1235. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1236. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1237. var pushConfig *pubsubpb.PushConfig = &pubsubpb.PushConfig{}
  1238. var request = &pubsubpb.ModifyPushConfigRequest{
  1239. Subscription: formattedSubscription,
  1240. PushConfig: pushConfig,
  1241. }
  1242. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1243. if err != nil {
  1244. t.Fatal(err)
  1245. }
  1246. err = c.ModifyPushConfig(context.Background(), request)
  1247. if err != nil {
  1248. t.Fatal(err)
  1249. }
  1250. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1251. t.Errorf("wrong request %q, want %q", got, want)
  1252. }
  1253. }
  1254. func TestSubscriberModifyPushConfigError(t *testing.T) {
  1255. errCode := codes.PermissionDenied
  1256. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1257. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1258. var pushConfig *pubsubpb.PushConfig = &pubsubpb.PushConfig{}
  1259. var request = &pubsubpb.ModifyPushConfigRequest{
  1260. Subscription: formattedSubscription,
  1261. PushConfig: pushConfig,
  1262. }
  1263. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1264. if err != nil {
  1265. t.Fatal(err)
  1266. }
  1267. err = c.ModifyPushConfig(context.Background(), request)
  1268. if st, ok := gstatus.FromError(err); !ok {
  1269. t.Errorf("got error %v, expected grpc error", err)
  1270. } else if c := st.Code(); c != errCode {
  1271. t.Errorf("got error code %q, want %q", c, errCode)
  1272. }
  1273. }
  1274. func TestSubscriberListSnapshots(t *testing.T) {
  1275. var nextPageToken string = ""
  1276. var snapshotsElement *pubsubpb.Snapshot = &pubsubpb.Snapshot{}
  1277. var snapshots = []*pubsubpb.Snapshot{snapshotsElement}
  1278. var expectedResponse = &pubsubpb.ListSnapshotsResponse{
  1279. NextPageToken: nextPageToken,
  1280. Snapshots: snapshots,
  1281. }
  1282. mockSubscriber.err = nil
  1283. mockSubscriber.reqs = nil
  1284. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1285. var formattedProject string = fmt.Sprintf("projects/%s", "[PROJECT]")
  1286. var request = &pubsubpb.ListSnapshotsRequest{
  1287. Project: formattedProject,
  1288. }
  1289. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1290. if err != nil {
  1291. t.Fatal(err)
  1292. }
  1293. resp, err := c.ListSnapshots(context.Background(), request).Next()
  1294. if err != nil {
  1295. t.Fatal(err)
  1296. }
  1297. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1298. t.Errorf("wrong request %q, want %q", got, want)
  1299. }
  1300. want := (interface{})(expectedResponse.Snapshots[0])
  1301. got := (interface{})(resp)
  1302. var ok bool
  1303. switch want := (want).(type) {
  1304. case proto.Message:
  1305. ok = proto.Equal(want, got.(proto.Message))
  1306. default:
  1307. ok = want == got
  1308. }
  1309. if !ok {
  1310. t.Errorf("wrong response %q, want %q)", got, want)
  1311. }
  1312. }
  1313. func TestSubscriberListSnapshotsError(t *testing.T) {
  1314. errCode := codes.PermissionDenied
  1315. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1316. var formattedProject string = fmt.Sprintf("projects/%s", "[PROJECT]")
  1317. var request = &pubsubpb.ListSnapshotsRequest{
  1318. Project: formattedProject,
  1319. }
  1320. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1321. if err != nil {
  1322. t.Fatal(err)
  1323. }
  1324. resp, err := c.ListSnapshots(context.Background(), request).Next()
  1325. if st, ok := gstatus.FromError(err); !ok {
  1326. t.Errorf("got error %v, expected grpc error", err)
  1327. } else if c := st.Code(); c != errCode {
  1328. t.Errorf("got error code %q, want %q", c, errCode)
  1329. }
  1330. _ = resp
  1331. }
  1332. func TestSubscriberCreateSnapshot(t *testing.T) {
  1333. var name2 string = "name2-1052831874"
  1334. var topic string = "topic110546223"
  1335. var expectedResponse = &pubsubpb.Snapshot{
  1336. Name: name2,
  1337. Topic: topic,
  1338. }
  1339. mockSubscriber.err = nil
  1340. mockSubscriber.reqs = nil
  1341. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1342. var formattedName string = fmt.Sprintf("projects/%s/snapshots/%s", "[PROJECT]", "[SNAPSHOT]")
  1343. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1344. var request = &pubsubpb.CreateSnapshotRequest{
  1345. Name: formattedName,
  1346. Subscription: formattedSubscription,
  1347. }
  1348. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1349. if err != nil {
  1350. t.Fatal(err)
  1351. }
  1352. resp, err := c.CreateSnapshot(context.Background(), request)
  1353. if err != nil {
  1354. t.Fatal(err)
  1355. }
  1356. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1357. t.Errorf("wrong request %q, want %q", got, want)
  1358. }
  1359. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1360. t.Errorf("wrong response %q, want %q)", got, want)
  1361. }
  1362. }
  1363. func TestSubscriberCreateSnapshotError(t *testing.T) {
  1364. errCode := codes.PermissionDenied
  1365. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1366. var formattedName string = fmt.Sprintf("projects/%s/snapshots/%s", "[PROJECT]", "[SNAPSHOT]")
  1367. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1368. var request = &pubsubpb.CreateSnapshotRequest{
  1369. Name: formattedName,
  1370. Subscription: formattedSubscription,
  1371. }
  1372. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1373. if err != nil {
  1374. t.Fatal(err)
  1375. }
  1376. resp, err := c.CreateSnapshot(context.Background(), request)
  1377. if st, ok := gstatus.FromError(err); !ok {
  1378. t.Errorf("got error %v, expected grpc error", err)
  1379. } else if c := st.Code(); c != errCode {
  1380. t.Errorf("got error code %q, want %q", c, errCode)
  1381. }
  1382. _ = resp
  1383. }
  1384. func TestSubscriberUpdateSnapshot(t *testing.T) {
  1385. var name string = "name3373707"
  1386. var topic string = "topic110546223"
  1387. var expectedResponse = &pubsubpb.Snapshot{
  1388. Name: name,
  1389. Topic: topic,
  1390. }
  1391. mockSubscriber.err = nil
  1392. mockSubscriber.reqs = nil
  1393. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1394. var seconds int64 = 123456
  1395. var expireTime = &timestamppb.Timestamp{
  1396. Seconds: seconds,
  1397. }
  1398. var snapshot = &pubsubpb.Snapshot{
  1399. ExpireTime: expireTime,
  1400. }
  1401. var pathsElement string = "expire_time"
  1402. var paths = []string{pathsElement}
  1403. var updateMask = &field_maskpb.FieldMask{
  1404. Paths: paths,
  1405. }
  1406. var request = &pubsubpb.UpdateSnapshotRequest{
  1407. Snapshot: snapshot,
  1408. UpdateMask: updateMask,
  1409. }
  1410. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1411. if err != nil {
  1412. t.Fatal(err)
  1413. }
  1414. resp, err := c.UpdateSnapshot(context.Background(), request)
  1415. if err != nil {
  1416. t.Fatal(err)
  1417. }
  1418. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1419. t.Errorf("wrong request %q, want %q", got, want)
  1420. }
  1421. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1422. t.Errorf("wrong response %q, want %q)", got, want)
  1423. }
  1424. }
  1425. func TestSubscriberUpdateSnapshotError(t *testing.T) {
  1426. errCode := codes.PermissionDenied
  1427. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1428. var seconds int64 = 123456
  1429. var expireTime = &timestamppb.Timestamp{
  1430. Seconds: seconds,
  1431. }
  1432. var snapshot = &pubsubpb.Snapshot{
  1433. ExpireTime: expireTime,
  1434. }
  1435. var pathsElement string = "expire_time"
  1436. var paths = []string{pathsElement}
  1437. var updateMask = &field_maskpb.FieldMask{
  1438. Paths: paths,
  1439. }
  1440. var request = &pubsubpb.UpdateSnapshotRequest{
  1441. Snapshot: snapshot,
  1442. UpdateMask: updateMask,
  1443. }
  1444. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1445. if err != nil {
  1446. t.Fatal(err)
  1447. }
  1448. resp, err := c.UpdateSnapshot(context.Background(), request)
  1449. if st, ok := gstatus.FromError(err); !ok {
  1450. t.Errorf("got error %v, expected grpc error", err)
  1451. } else if c := st.Code(); c != errCode {
  1452. t.Errorf("got error code %q, want %q", c, errCode)
  1453. }
  1454. _ = resp
  1455. }
  1456. func TestSubscriberDeleteSnapshot(t *testing.T) {
  1457. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  1458. mockSubscriber.err = nil
  1459. mockSubscriber.reqs = nil
  1460. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1461. var formattedSnapshot string = fmt.Sprintf("projects/%s/snapshots/%s", "[PROJECT]", "[SNAPSHOT]")
  1462. var request = &pubsubpb.DeleteSnapshotRequest{
  1463. Snapshot: formattedSnapshot,
  1464. }
  1465. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1466. if err != nil {
  1467. t.Fatal(err)
  1468. }
  1469. err = c.DeleteSnapshot(context.Background(), request)
  1470. if err != nil {
  1471. t.Fatal(err)
  1472. }
  1473. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1474. t.Errorf("wrong request %q, want %q", got, want)
  1475. }
  1476. }
  1477. func TestSubscriberDeleteSnapshotError(t *testing.T) {
  1478. errCode := codes.PermissionDenied
  1479. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1480. var formattedSnapshot string = fmt.Sprintf("projects/%s/snapshots/%s", "[PROJECT]", "[SNAPSHOT]")
  1481. var request = &pubsubpb.DeleteSnapshotRequest{
  1482. Snapshot: formattedSnapshot,
  1483. }
  1484. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1485. if err != nil {
  1486. t.Fatal(err)
  1487. }
  1488. err = c.DeleteSnapshot(context.Background(), request)
  1489. if st, ok := gstatus.FromError(err); !ok {
  1490. t.Errorf("got error %v, expected grpc error", err)
  1491. } else if c := st.Code(); c != errCode {
  1492. t.Errorf("got error code %q, want %q", c, errCode)
  1493. }
  1494. }
  1495. func TestSubscriberSeek(t *testing.T) {
  1496. var expectedResponse *pubsubpb.SeekResponse = &pubsubpb.SeekResponse{}
  1497. mockSubscriber.err = nil
  1498. mockSubscriber.reqs = nil
  1499. mockSubscriber.resps = append(mockSubscriber.resps[:0], expectedResponse)
  1500. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1501. var request = &pubsubpb.SeekRequest{
  1502. Subscription: formattedSubscription,
  1503. }
  1504. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1505. if err != nil {
  1506. t.Fatal(err)
  1507. }
  1508. resp, err := c.Seek(context.Background(), request)
  1509. if err != nil {
  1510. t.Fatal(err)
  1511. }
  1512. if want, got := request, mockSubscriber.reqs[0]; !proto.Equal(want, got) {
  1513. t.Errorf("wrong request %q, want %q", got, want)
  1514. }
  1515. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1516. t.Errorf("wrong response %q, want %q)", got, want)
  1517. }
  1518. }
  1519. func TestSubscriberSeekError(t *testing.T) {
  1520. errCode := codes.PermissionDenied
  1521. mockSubscriber.err = gstatus.Error(errCode, "test error")
  1522. var formattedSubscription string = fmt.Sprintf("projects/%s/subscriptions/%s", "[PROJECT]", "[SUBSCRIPTION]")
  1523. var request = &pubsubpb.SeekRequest{
  1524. Subscription: formattedSubscription,
  1525. }
  1526. c, err := NewSubscriberClient(context.Background(), clientOpt)
  1527. if err != nil {
  1528. t.Fatal(err)
  1529. }
  1530. resp, err := c.Seek(context.Background(), request)
  1531. if st, ok := gstatus.FromError(err); !ok {
  1532. t.Errorf("got error %v, expected grpc error", err)
  1533. } else if c := st.Code(); c != errCode {
  1534. t.Errorf("got error code %q, want %q", c, errCode)
  1535. }
  1536. _ = resp
  1537. }