1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
require "helpers/integration_test_helper"
require "integration/pubsub/pubsub_shared"
require "securerandom"
require "base64"
class TestPubsubRequests < PubSubShared
def test_create_topic
name = new_topic_name
result = @client.create_topic(name)
assert_equal(result.name, name)
end
def test_get_topic
result = @client.get_topic(some_topic_name)
assert_equal(result.name, some_topic_name)
end
def test_list_topics
# Force a topic to be created just so we have at least 1 to list
name = new_topic_name
@client.create_topic(name)
Fog.wait_for(5) do
result = @client.list_topics
if result.topics.nil?
false
end
result.topics.any? { |topic| topic.name == name }
end
end
def test_delete_topic
topic_to_delete = new_topic_name
@client.create_topic(topic_to_delete)
@client.delete_topic(topic_to_delete)
end
def test_publish_topic
@client.publish_topic(some_topic_name, [:data => Base64.strict_encode64("some message")])
end
def test_create_subscription
push_config = {}
ack_deadline_seconds = 18
subscription_name = new_subscription_name
result = @client.create_subscription(subscription_name, some_topic_name,
push_config, ack_deadline_seconds)
assert_equal(result.name, subscription_name)
end
def test_get_subscription
subscription_name = some_subscription_name
result = @client.get_subscription(subscription_name)
assert_equal(result.name, subscription_name)
end
def test_list_subscriptions
# Force a subscription to be created just so we have at least 1 to list
subscription_name = new_subscription_name
@client.create_subscription(subscription_name, some_topic_name)
Fog.wait_for(5) do
result = @client.list_subscriptions
if result.subscriptions.nil?
false
end
result.subscriptions.any? { |sub| sub.name == subscription_name }
end
end
def test_delete_subscription
subscription_to_delete = new_subscription_name
@client.create_subscription(subscription_to_delete, some_topic_name)
@client.delete_subscription(subscription_to_delete)
end
def test_pull_subscription
subscription_name = new_subscription_name
message_bytes = Base64.strict_encode64("some message")
@client.create_subscription(subscription_name, some_topic_name)
@client.publish_topic(some_topic_name, [:data => message_bytes])
result = @client.pull_subscription(subscription_name, {:return_immediately => false})
contained = result.received_messages.any? { |received| received.message.data == message_bytes }
assert_equal(true, contained, "sent messsage not contained within pulled responses")
end
def test_acknowledge_subscription
subscription_name = new_subscription_name
@client.create_subscription(subscription_name, some_topic_name)
@client.publish_topic(some_topic_name, [:data => Base64.strict_encode64("some message")])
pull_result = @client.pull_subscription(subscription_name, {:return_immediately => false})
assert_operator(pull_result.received_messages.length, :>, 0)
@client.acknowledge_subscription(subscription_name,
pull_result.received_messages[0].ack_id)
end
end
|