Skip to content

Commit 14c3722

Browse files
authored
chore: migrate samples to google-cloud-pubsub v3 (#30618)
1 parent 43926b9 commit 14c3722

59 files changed

Lines changed: 641 additions & 435 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

google-cloud-pubsub/samples/acceptance/quickstart_test.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@
1616
require_relative "../quickstart.rb"
1717

1818
describe "quickstart" do
19-
let(:pubsub) { Google::Cloud::Pubsub.new }
19+
let(:pubsub) { Google::Cloud::PubSub.new }
2020
let(:topic_id) { random_topic_id }
21+
let(:topic_admin) { pubsub.topic_admin }
2122

2223
it "supports quickstart_create_topic" do
2324
assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do
2425
quickstart topic_id: topic_id
2526
end
2627

27-
topic = pubsub.topic topic_id
28+
topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id)
2829
assert topic
2930
# cleanup
30-
topic.delete
31+
topic_admin.delete_topic topic: topic.name
3132
end
3233
end

google-cloud-pubsub/samples/acceptance/schemas_test.rb

Lines changed: 115 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,27 @@
2828

2929

3030
describe "schemas" do
31-
let(:pubsub) { Google::Cloud::Pubsub.new }
31+
let(:pubsub) { Google::Cloud::PubSub.new }
3232
let(:schema_id) { random_schema_id }
3333
let(:topic_id) { random_topic_id }
3434
let(:subscription_id) { random_subscription_id }
3535
let(:avsc_file) { File.expand_path "data/us-states.avsc", __dir__ }
36+
let(:topic_admin) { pubsub.topic_admin }
37+
let(:subscription_admin) { pubsub.subscription_admin }
38+
let(:schemas) { pubsub.schemas }
3639

3740
after do
38-
@subscription.delete if @subscription
39-
@topic.delete if @topic
40-
@schema.delete if @schema
41+
subscription_admin.delete_subscription subscription: @subscription.name if @subscription
42+
topic_admin.delete_topic topic: @topic.name if @topic
43+
schemas.delete_schema name: @schema.name if @schema
4144
end
4245

4346
it "supports pubsub_create_schema, pubsub_get_schema, pubsub_list_schemas, pubsub_delete_schema" do
4447
# create_avro_schema
4548
assert_output "Schema projects/#{pubsub.project}/schemas/#{schema_id} created.\n" do
4649
create_avro_schema schema_id: schema_id, avsc_file: avsc_file
4750
end
48-
@schema = pubsub.schema schema_id
51+
@schema = schemas.get_schema name: pubsub.schema_path(schema_id)
4952
assert @schema
5053
assert_equal "projects/#{pubsub.project}/schemas/#{schema_id}", @schema.name
5154

@@ -75,13 +78,19 @@
7578
let(:record) { { "name" => "Alaska", "post_abbr" => "AK" } }
7679

7780
it "supports pubsub_create_topic_with_schema, pubsub_publish_avro_records with binary encoding" do
78-
@schema = pubsub.create_schema schema_id, :avro, avsc_definition
81+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
82+
type: :AVRO,
83+
definition: avsc_definition
84+
@schema = schemas.create_schema parent: pubsub.project_path,
85+
schema: schema,
86+
schema_id: schema_id
87+
7988

8089
# pubsub_create_topic_with_schema
8190
assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do
82-
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :binary
91+
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :BINARY
8392
end
84-
@topic = pubsub.topic topic_id
93+
@topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id)
8594
assert @topic
8695
assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name
8796

@@ -92,13 +101,18 @@
92101
end
93102

94103
it "supports pubsub_create_topic_with_schema, pubsub_publish_avro_records with JSON encoding" do
95-
@schema = pubsub.create_schema schema_id, :avro, avsc_definition
104+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
105+
type: :AVRO,
106+
definition: avsc_definition
107+
@schema = schemas.create_schema parent: pubsub.project_path,
108+
schema: schema,
109+
schema_id: schema_id
96110

97111
# pubsub_create_topic_with_schema
98112
assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do
99-
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :json
113+
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :JSON
100114
end
101-
@topic = pubsub.topic topic_id
115+
@topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id)
102116
assert @topic
103117
assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name
104118

@@ -109,15 +123,28 @@
109123
end
110124

111125
it "supports pubsub_subscribe_avro_records with binary encoding" do
112-
@schema = pubsub.create_schema schema_id, :avro, avsc_definition
113-
@topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :binary
126+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
127+
type: :AVRO,
128+
definition: avsc_definition
129+
@schema = schemas.create_schema parent: pubsub.project_path,
130+
schema: schema,
131+
schema_id: schema_id
132+
133+
schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id),
134+
encoding: :BINARY
135+
136+
137+
@topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id),
138+
schema_settings: schema_settings
114139

115-
@subscription = @topic.subscribe random_subscription_id
140+
@subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id),
141+
topic: @topic.name
116142

117143
writer = Avro::IO::DatumWriter.new avro_schema
118144
buffer = StringIO.new
119145
writer.write record, Avro::IO::BinaryEncoder.new(buffer)
120-
@topic.publish buffer
146+
publisher = pubsub.publisher @topic.name
147+
publisher.publish buffer
121148
sleep 5
122149

123150
# pubsub_subscribe_avro_records
@@ -129,12 +156,24 @@
129156
end
130157

131158
it "supports pubsub_subscribe_avro_records with JSON encoding" do
132-
@schema = pubsub.create_schema schema_id, :avro, avsc_definition
133-
@topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :json
159+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
160+
type: :AVRO,
161+
definition: avsc_definition
162+
@schema = schemas.create_schema parent: pubsub.project_path,
163+
schema: schema,
164+
schema_id: schema_id
165+
schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id),
166+
encoding: :JSON
134167

135-
@subscription = @topic.subscribe random_subscription_id
136168

137-
@topic.publish record.to_json
169+
@topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id),
170+
schema_settings: schema_settings
171+
172+
@subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id),
173+
topic: @topic.name
174+
175+
publisher = pubsub.publisher @topic.name
176+
publisher.publish record.to_json
138177
sleep 5
139178

140179
# pubsub_subscribe_avro_records
@@ -153,13 +192,19 @@
153192
let(:revision_file) { File.expand_path "data/us-states-revision.proto", __dir__ }
154193

155194
it "supports pubsub_create_topic_with_schema, pubsub_publish_proto_messages with binary encoding" do
156-
@schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition
195+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
196+
type: :PROTOCOL_BUFFER,
197+
definition: proto_definition
198+
@schema = schemas.create_schema parent: pubsub.project_path,
199+
schema: schema,
200+
schema_id: schema_id
157201

158202
# pubsub_create_topic_with_schema
159203
assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do
160-
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :binary
204+
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :BINARY
161205
end
162-
@topic = pubsub.topic topic_id
206+
207+
@topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id)
163208
assert @topic
164209
assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name
165210

@@ -170,13 +215,19 @@
170215
end
171216

172217
it "supports pubsub_create_topic_with_schema, pubsub_publish_proto_messages with JSON encoding" do
173-
@schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition
218+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
219+
type: :PROTOCOL_BUFFER,
220+
definition: proto_definition
221+
@schema = schemas.create_schema parent: pubsub.project_path,
222+
schema: schema,
223+
schema_id: schema_id
174224

175225
# pubsub_create_topic_with_schema
176226
assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do
177-
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :json
227+
create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :JSON
178228
end
179-
@topic = pubsub.topic topic_id
229+
230+
@topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id)
180231
assert @topic
181232
assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name
182233

@@ -187,13 +238,25 @@
187238
end
188239

189240
it "supports pubsub_subscribe_proto_messages with binary encoding" do
190-
@schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition
191-
@topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :binary
241+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
242+
type: :PROTOCOL_BUFFER,
243+
definition: proto_definition
244+
@schema = schemas.create_schema parent: pubsub.project_path,
245+
schema: schema,
246+
schema_id: schema_id
247+
248+
schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id),
249+
encoding: :BINARY
250+
251+
@topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id),
252+
schema_settings: schema_settings
192253

193-
@subscription = @topic.subscribe random_subscription_id
254+
@subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id),
255+
topic: @topic.name
194256

195257
state = Utilities::StateProto.new name: "Alaska", post_abbr: "AK"
196-
@topic.publish Utilities::StateProto.encode(state)
258+
publisher = pubsub.publisher @topic.name
259+
publisher.publish Utilities::StateProto.encode(state)
197260
sleep 5
198261

199262
# pubsub_subscribe_proto_messages
@@ -205,13 +268,25 @@
205268
end
206269

207270
it "supports pubsub_subscribe_proto_messages with JSON encoding" do
208-
@schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition
209-
@topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :json
271+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
272+
type: :PROTOCOL_BUFFER,
273+
definition: proto_definition
274+
@schema = schemas.create_schema parent: pubsub.project_path,
275+
schema: schema,
276+
schema_id: schema_id
210277

211-
@subscription = @topic.subscribe random_subscription_id
278+
schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id),
279+
encoding: :JSON
280+
281+
@topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id),
282+
schema_settings: schema_settings
283+
284+
@subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id),
285+
topic: @topic.name
212286

213287
state = Utilities::StateProto.new name: "Alaska", post_abbr: "AK"
214-
@topic.publish Utilities::StateProto.encode_json(state)
288+
publisher = pubsub.publisher @topic.name
289+
publisher.publish Utilities::StateProto.encode_json(state)
215290
sleep 5
216291

217292
# pubsub_subscribe_proto_messages
@@ -223,7 +298,13 @@
223298
end
224299

225300
it "supports pubsub_commit_proto_schema & pubsub_commit_list_schema_revisions" do
226-
@schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition
301+
schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id,
302+
type: :PROTOCOL_BUFFER,
303+
definition: proto_definition
304+
@schema = schemas.create_schema parent: pubsub.project_path,
305+
schema: schema,
306+
schema_id: schema_id
307+
227308
rev_id = @schema.revision_id
228309

229310
# pubsub_commit_proto_schema

0 commit comments

Comments
 (0)