azure 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +3 -0
- data/Gemfile.lock +36 -0
- data/README.md +3 -0
- data/Rakefile +81 -0
- data/azure.gemspec +20 -9
- data/lib/azure.rb +4 -0
- data/lib/azure/atom.rb +170 -0
- data/lib/azure/auth.rb +29 -0
- data/lib/azure/blobs.rb +620 -0
- data/lib/azure/blobs/blob.rb +360 -0
- data/lib/azure/blobs/container.rb +209 -0
- data/lib/azure/blobs/service.rb +396 -0
- data/lib/azure/blobs/shared_access_signature.rb +84 -0
- data/lib/azure/blobs/uri.rb +60 -0
- data/lib/azure/configuration.rb +121 -0
- data/lib/azure/core/auth/shared_key.rb +95 -0
- data/lib/azure/core/auth/shared_key_lite.rb +34 -0
- data/lib/azure/core/collection.rb +118 -0
- data/lib/azure/core/service.rb +43 -0
- data/lib/azure/core/signer.rb +32 -0
- data/lib/azure/core/utils/interval.rb +97 -0
- data/lib/azure/core/utils/queryable.rb +74 -0
- data/lib/azure/core/utils/storage_service_properties.rb +83 -0
- data/lib/azure/core/utils/string.rb +59 -0
- data/lib/azure/error.rb +72 -0
- data/lib/azure/queues.rb +272 -0
- data/lib/azure/queues/message.rb +174 -0
- data/lib/azure/queues/queue.rb +187 -0
- data/lib/azure/queues/service.rb +263 -0
- data/lib/azure/queues/service_properties.rb +152 -0
- data/lib/azure/queues/uri.rb +78 -0
- data/lib/azure/request.rb +102 -0
- data/lib/azure/response.rb +93 -0
- data/lib/azure/service_bus.rb +4 -0
- data/lib/azure/service_bus/auth/authorizer.rb +22 -0
- data/lib/azure/service_bus/auth/uri.rb +52 -0
- data/lib/azure/service_bus/auth/wrap.rb +37 -0
- data/lib/azure/service_bus/auth/wrap_service.rb +76 -0
- data/lib/azure/service_bus/auth/wrap_token.rb +45 -0
- data/lib/azure/service_bus/auth/wrap_token_manager.rb +46 -0
- data/lib/azure/service_bus/brokered_message.rb +139 -0
- data/lib/azure/service_bus/brokered_message_serializer.rb +113 -0
- data/lib/azure/service_bus/queues.rb +194 -0
- data/lib/azure/service_bus/queues/queue.rb +100 -0
- data/lib/azure/service_bus/queues/queue_serializer.rb +51 -0
- data/lib/azure/service_bus/queues/service.rb +154 -0
- data/lib/azure/service_bus/queues/uri.rb +80 -0
- data/lib/azure/service_bus/rules.rb +110 -0
- data/lib/azure/service_bus/rules/rule.rb +97 -0
- data/lib/azure/service_bus/rules/service.rb +122 -0
- data/lib/azure/service_bus/rules/uri.rb +39 -0
- data/lib/azure/service_bus/service_bus_service.rb +22 -0
- data/lib/azure/service_bus/subscriptions.rb +170 -0
- data/lib/azure/service_bus/subscriptions/service.rb +133 -0
- data/lib/azure/service_bus/subscriptions/subscription.rb +164 -0
- data/lib/azure/service_bus/subscriptions/subscription_serializer.rb +74 -0
- data/lib/azure/service_bus/subscriptions/uri.rb +71 -0
- data/lib/azure/service_bus/topics.rb +120 -0
- data/lib/azure/service_bus/topics/service.rb +98 -0
- data/lib/azure/service_bus/topics/topic.rb +122 -0
- data/lib/azure/service_bus/topics/topic_serializer.rb +44 -0
- data/lib/azure/service_bus/topics/uri.rb +58 -0
- data/lib/azure/service_runtime/client/goal_state_pipe_monitor.rb +21 -0
- data/lib/azure/service_runtime/client/goal_state_protocol.rb +18 -0
- data/lib/azure/service_runtime/client/runtime_client.rb +135 -0
- data/lib/azure/service_runtime/deployment.rb +24 -0
- data/lib/azure/service_runtime/local_resource.rb +15 -0
- data/lib/azure/service_runtime/role.rb +17 -0
- data/lib/azure/service_runtime/role_environment.rb +206 -0
- data/lib/azure/service_runtime/role_environment_change.rb +32 -0
- data/lib/azure/service_runtime/role_instance.rb +35 -0
- data/lib/azure/service_runtime/role_instance_endpoint.rb +14 -0
- data/lib/azure/tables.rb +215 -0
- data/lib/azure/tables/auth/shared_key.rb +71 -0
- data/lib/azure/tables/auth/shared_key_lite.rb +30 -0
- data/lib/azure/tables/entities_collection.rb +66 -0
- data/lib/azure/tables/entity.rb +127 -0
- data/lib/azure/tables/service.rb +211 -0
- data/lib/azure/tables/table.rb +129 -0
- data/lib/azure/tables/tables_collection.rb +62 -0
- data/lib/azure/tables/types.rb +65 -0
- data/lib/azure/tables/uri.rb +62 -0
- data/test/fixtures/32px-fulls-black.jpg +0 -0
- data/test/fixtures/all_containers.xml +20 -0
- data/test/fixtures/all_tables.xml +22 -0
- data/test/fixtures/create_table_response_entry.xml +15 -0
- data/test/fixtures/error.xml +5 -0
- data/test/fixtures/insert_entity_response_entry.xml +25 -0
- data/test/fixtures/messages.xml +12 -0
- data/test/fixtures/query_entities_empty_response.xml +7 -0
- data/test/fixtures/query_entities_response.xml +45 -0
- data/test/fixtures/queue_service_properties.xml +22 -0
- data/test/fixtures/queue_service_properties_original.xml +19 -0
- data/test/fixtures/queues.xml +16 -0
- data/test/fixtures/sb_default_create_queue_response.xml +23 -0
- data/test/fixtures/sb_default_create_topic_response.xml +18 -0
- data/test/fixtures/sb_get_access_token_response.txt +1 -0
- data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -0
- data/test/integration/blobs/auth_test.rb +19 -0
- data/test/integration/blobs/blob_test.rb +61 -0
- data/test/integration/blobs/clear_page_range_test.rb +19 -0
- data/test/integration/blobs/copy_test.rb +33 -0
- data/test/integration/blobs/create_blobs_test.rb +51 -0
- data/test/integration/blobs/create_container_test.rb +13 -0
- data/test/integration/blobs/create_snapshot_test.rb +17 -0
- data/test/integration/blobs/delete_blob_snapshots_test.rb +19 -0
- data/test/integration/blobs/delete_blobs_test.rb +25 -0
- data/test/integration/blobs/delete_container_test.rb +24 -0
- data/test/integration/blobs/delete_snapshot_test.rb +17 -0
- data/test/integration/blobs/get_blob_snapshot_test.rb +18 -0
- data/test/integration/blobs/get_blobs_test.rb +31 -0
- data/test/integration/blobs/get_page_range_test.rb +19 -0
- data/test/integration/blobs/list_blobs_test.rb +39 -0
- data/test/integration/blobs/list_containers_test.rb +28 -0
- data/test/integration/blobs/manage_blob_leases_test.rb +45 -0
- data/test/integration/blobs/manage_blob_metadata_test.rb +51 -0
- data/test/integration/blobs/manage_blob_properties_test.rb +25 -0
- data/test/integration/blobs/manage_blob_service_properties_test.rb +38 -0
- data/test/integration/blobs/manage_container_metadata_test.rb +46 -0
- data/test/integration/blobs/manage_container_permissions_test.rb +17 -0
- data/test/integration/blobs/update_page_range_test.rb +20 -0
- data/test/integration/queues/clear_messages_test.rb +22 -0
- data/test/integration/queues/create_queue_test.rb +13 -0
- data/test/integration/queues/delete_message_test.rb +42 -0
- data/test/integration/queues/delete_queue_test.rb +24 -0
- data/test/integration/queues/get_messages_test.rb +39 -0
- data/test/integration/queues/list_queues_test.rb +43 -0
- data/test/integration/queues/manage_queue_metadata_test.rb +45 -0
- data/test/integration/queues/manage_queue_service_properties_test.rb +27 -0
- data/test/integration/queues/peek_messages_test.rb +55 -0
- data/test/integration/queues/put_message_test.rb +31 -0
- data/test/integration/queues/update_message_test.rb +46 -0
- data/test/integration/service_bus/auth_test.rb +18 -0
- data/test/integration/service_bus/queues/create_queue_test.rb +25 -0
- data/test/integration/service_bus/queues/delete_message_from_queue_test.rb +29 -0
- data/test/integration/service_bus/queues/delete_queue_test.rb +25 -0
- data/test/integration/service_bus/queues/get_queue_test.rb +23 -0
- data/test/integration/service_bus/queues/list_queues_test.rb +39 -0
- data/test/integration/service_bus/queues/peek_message_from_queue_test.rb +34 -0
- data/test/integration/service_bus/queues/read_and_delete_message_from_queue_test.rb +31 -0
- data/test/integration/service_bus/queues/send_message_to_queue_test.rb +22 -0
- data/test/integration/service_bus/queues/unlock_message_from_queue_test.rb +36 -0
- data/test/integration/service_bus/rules/create_rule_test.rb +19 -0
- data/test/integration/service_bus/rules/delete_rule_test.rb +17 -0
- data/test/integration/service_bus/rules/get_rule_test.rb +21 -0
- data/test/integration/service_bus/rules/list_rules_test.rb +24 -0
- data/test/integration/service_bus/rules/rule_test.rb +16 -0
- data/test/integration/service_bus/subscriptions/create_subscription_test.rb +25 -0
- data/test/integration/service_bus/subscriptions/delete_message_from_subscription_test.rb +31 -0
- data/test/integration/service_bus/subscriptions/delete_subscription_test.rb +30 -0
- data/test/integration/service_bus/subscriptions/fetch_subscription_test.rb +28 -0
- data/test/integration/service_bus/subscriptions/list_subscriptions_test.rb +23 -0
- data/test/integration/service_bus/subscriptions/peek_lock_message_from_subscription_test.rb +42 -0
- data/test/integration/service_bus/subscriptions/read_delete_message_from_subscription_test.rb +36 -0
- data/test/integration/service_bus/subscriptions/subscription_test.rb +31 -0
- data/test/integration/service_bus/subscriptions/unlock_message_from_subscription_test.rb +43 -0
- data/test/integration/service_bus/topics/create_topic_test.rb +25 -0
- data/test/integration/service_bus/topics/delete_topic_test.rb +25 -0
- data/test/integration/service_bus/topics/get_topic_test.rb +23 -0
- data/test/integration/service_bus/topics/list_topics_test.rb +39 -0
- data/test/integration/service_bus/topics/send_message_to_topic_test.rb +23 -0
- data/test/integration/tables/auth_test.rb +29 -0
- data/test/integration/tables/creating_tables_test.rb +16 -0
- data/test/integration/tables/delete_entity_test.rb +39 -0
- data/test/integration/tables/deleting_table_test.rb +22 -0
- data/test/integration/tables/insert_entity_test.rb +23 -0
- data/test/integration/tables/merge_entity_test.rb +28 -0
- data/test/integration/tables/query_entities_test.rb +131 -0
- data/test/integration/tables/query_tables_test.rb +63 -0
- data/test/integration/tables/update_entity_test.rb +54 -0
- data/test/integration/test_helper.rb +14 -0
- data/test/support/blobs.rb +12 -0
- data/test/support/env.rb +5 -0
- data/test/support/fixtures.rb +22 -0
- data/test/support/stubs.rb +28 -0
- data/test/support/table_names.rb +44 -0
- data/test/test_helper.rb +10 -0
- data/test/unit/atom_test.rb +58 -0
- data/test/unit/auth_test.rb +24 -0
- data/test/unit/blobs/blob_test.rb +5 -0
- data/test/unit/blobs/container_test.rb +67 -0
- data/test/unit/blobs/service_test.rb +17 -0
- data/test/unit/blobs/shared_access_signature_test.rb +66 -0
- data/test/unit/blobs_test.rb +156 -0
- data/test/unit/core/service_test.rb +57 -0
- data/test/unit/core/utils/interval_test.rb +70 -0
- data/test/unit/core/utils/queryable_test.rb +69 -0
- data/test/unit/core/utils/storage_service_properties_test.rb +66 -0
- data/test/unit/error_test.rb +39 -0
- data/test/unit/queues/message_test.rb +40 -0
- data/test/unit/queues/queue_test.rb +64 -0
- data/test/unit/queues/service_properties.rb +35 -0
- data/test/unit/request_test.rb +38 -0
- data/test/unit/response_test.rb +43 -0
- data/test/unit/service_bus/auth/authorizer_test.rb +27 -0
- data/test/unit/service_bus/auth/wrap_token_test.rb +28 -0
- data/test/unit/service_bus/queues/queue_test.rb +38 -0
- data/test/unit/service_bus/topics/topic_test.rb +33 -0
- data/test/unit/service_runtime/data/goalstate.xml +9 -0
- data/test/unit/service_runtime/data/roleenvironmentdata.xml +29 -0
- data/test/unit/service_runtime/data/runtime.xml +6 -0
- data/test/unit/service_runtime/role_environment_test.rb +144 -0
- data/test/unit/tables/auth/shared_key_lite_test.rb +39 -0
- data/test/unit/tables/auth/shared_key_test.rb +45 -0
- data/test/unit/tables/entities_collection_test.rb +39 -0
- data/test/unit/tables/entity_test.rb +72 -0
- data/test/unit/tables/table_test.rb +57 -0
- data/test/unit/tables_test.rb +302 -0
- data/test/unit/types_test.rb +67 -0
- metadata +310 -47
- data/LICENSE +0 -0
- data/README +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Manage queue service properties" do
|
|
4
|
+
it "should be able to get service properties" do
|
|
5
|
+
response = Azure::Queues.get_service_properties
|
|
6
|
+
response.must_be :kind_of?, Azure::Queues::ServiceProperties
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should be able to set properties" do
|
|
10
|
+
properties = Azure::Queues::ServiceProperties.new do |p|
|
|
11
|
+
p.logging.delete = true
|
|
12
|
+
p.logging.write = true
|
|
13
|
+
p.logging.retention_policy.enabled = true
|
|
14
|
+
p.logging.retention_policy.days = 7
|
|
15
|
+
|
|
16
|
+
p.metrics.enabled = true
|
|
17
|
+
p.metrics.retention_policy.enabled = true
|
|
18
|
+
p.metrics.retention_policy.days = 7
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
response = Azure::Queues.set_service_properties(properties)
|
|
22
|
+
response.must_equal true
|
|
23
|
+
|
|
24
|
+
loaded_properties = Azure::Queues.get_service_properties
|
|
25
|
+
loaded_properties.logging.delete.must_equal true
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Peek Messages" do
|
|
4
|
+
after do
|
|
5
|
+
QueueNameHelper.clean
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
@queue = Azure::Queues.create(QueueNameHelper.name)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "doesn't change the visibility of a message when peeking" do
|
|
13
|
+
@queue << "some sample text"
|
|
14
|
+
message = @queue.peek
|
|
15
|
+
|
|
16
|
+
message.time_next_visible.must_equal nil
|
|
17
|
+
message.pop_receipt.must_equal nil
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should peek only one message from the front of the queue" do
|
|
21
|
+
@queue << "message 1"
|
|
22
|
+
@queue << "message 2"
|
|
23
|
+
|
|
24
|
+
message = @queue.peek
|
|
25
|
+
|
|
26
|
+
message.text.must_equal "message 1"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "can't see invisible messages" do
|
|
30
|
+
message = Azure::Queues::Message.new("some sample text") do |msg|
|
|
31
|
+
msg.visibility_timeout = 3600
|
|
32
|
+
end
|
|
33
|
+
@queue << message
|
|
34
|
+
@queue.peek.must_be_nil
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "doesn't change the dequeue_count of a message" do
|
|
38
|
+
@queue << "some sample text"
|
|
39
|
+
|
|
40
|
+
peeked_1 = @queue.peek
|
|
41
|
+
peeked_2 = @queue.peek
|
|
42
|
+
|
|
43
|
+
peeked_1.must_equal peeked_2
|
|
44
|
+
peeked_2.dequeue_count.must_equal 0
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "can peek many messages at once" do
|
|
48
|
+
@queue << "some sample text"
|
|
49
|
+
@queue << "more sample text"
|
|
50
|
+
|
|
51
|
+
messages = @queue.look_at(5)
|
|
52
|
+
messages.must_respond_to :each
|
|
53
|
+
messages.size.must_equal 2
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Create a Message" do
|
|
4
|
+
after do
|
|
5
|
+
QueueNameHelper.clean
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
@queue = Azure::Queues.create(QueueNameHelper.name)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should be able to create a new message out of a string" do
|
|
13
|
+
@queue << "some sample text"
|
|
14
|
+
|
|
15
|
+
message = @queue.pop
|
|
16
|
+
|
|
17
|
+
message.text.must_equal "some sample text"
|
|
18
|
+
assert message.valid?, "must be valid"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should be able to create a new message" do
|
|
22
|
+
@queue << "some sample text"
|
|
23
|
+
|
|
24
|
+
message = @queue.pop
|
|
25
|
+
|
|
26
|
+
message.text.must_equal "some sample text"
|
|
27
|
+
assert message.valid?, "must be valid"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
#TODO: tests for visibilitytimeout and messagesttl
|
|
31
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Update Messages" do
|
|
4
|
+
after do
|
|
5
|
+
QueueNameHelper.clean
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
@queue = Azure::Queues.create(QueueNameHelper.name)
|
|
10
|
+
@queue << "some sample text"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "saves changes to the message text" do
|
|
14
|
+
message = @queue.pop
|
|
15
|
+
message.text = "other text"
|
|
16
|
+
|
|
17
|
+
response = message.update!
|
|
18
|
+
response.must_equal true
|
|
19
|
+
|
|
20
|
+
popped = @queue.pop
|
|
21
|
+
popped.text.must_equal message.text
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should be able to update the message visibilitytimeout" do
|
|
25
|
+
message = @queue.pop
|
|
26
|
+
message.visibility_timeout = 3600
|
|
27
|
+
|
|
28
|
+
response = message.update!
|
|
29
|
+
response.must_equal true
|
|
30
|
+
|
|
31
|
+
popped = @queue.pop
|
|
32
|
+
popped.must_be_nil
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "can't update an invisible message" do
|
|
36
|
+
message = @queue.pop(visibilitytimeout: 1)
|
|
37
|
+
|
|
38
|
+
# Pop the message again, and this time make it invisible for a long period
|
|
39
|
+
sleep 1
|
|
40
|
+
@queue.pop(visibilitytimeout: 100)
|
|
41
|
+
|
|
42
|
+
message.visibility_timeout = 10
|
|
43
|
+
response = message.update!
|
|
44
|
+
response.must_equal false
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Authorizing against the server" do
|
|
4
|
+
let :uri do
|
|
5
|
+
URI(Azure.config.service_bus_host + "/$Resources/Topics")
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "can make a simple request using Wrap" do
|
|
9
|
+
auth = Azure::ServiceBus::Auth::Authorizer.new
|
|
10
|
+
signer = Azure::ServiceBus::Auth::Wrap.new
|
|
11
|
+
|
|
12
|
+
request = Azure::Request.new(:get, uri)
|
|
13
|
+
auth.sign(request, signer)
|
|
14
|
+
response = request.request!
|
|
15
|
+
|
|
16
|
+
response.code.must_equal 200
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Creating a Queue" do
|
|
4
|
+
|
|
5
|
+
after do
|
|
6
|
+
ServiceBusQueueNameHelper.clean
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should be able to create a new queue" do
|
|
10
|
+
properties = {
|
|
11
|
+
'LockDuration' => 'PT30S',
|
|
12
|
+
'DefaultMessageTimeToLive' => 'P10675199DT2H48M5.4775807S',
|
|
13
|
+
'DuplicateDetectionHistoryTimeWindow' => 'PT10M',
|
|
14
|
+
'MaxSizeInMegabytes' => 1,
|
|
15
|
+
'RequiresDuplicateDetection' => true,
|
|
16
|
+
'RequiresSession' => false,
|
|
17
|
+
'DeadLetteringOnMessageExpiration' => false
|
|
18
|
+
}
|
|
19
|
+
properties = {}
|
|
20
|
+
|
|
21
|
+
queue = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name, properties)
|
|
22
|
+
queue.must_be_kind_of Azure::ServiceBus::Queues::Queue
|
|
23
|
+
assert queue.valid?, "must be valid"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
require "azure/service_bus/queues"
|
|
3
|
+
require "azure/service_bus/brokered_message"
|
|
4
|
+
|
|
5
|
+
describe "Delete a Message from a Queue" do
|
|
6
|
+
|
|
7
|
+
after do
|
|
8
|
+
ServiceBusQueueNameHelper.clean
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
before do
|
|
12
|
+
@queue = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should be able to read-delete a message from a queue" do
|
|
16
|
+
message = Azure::ServiceBus::BrokeredMessage.new("some text") {|m| m.to = 'me' }
|
|
17
|
+
Azure::ServiceBus::Queues.send_message_to_queue(@queue, message)
|
|
18
|
+
|
|
19
|
+
retrieved = Azure::ServiceBus::Queues.peek_lock_message_from_queue(@queue)
|
|
20
|
+
|
|
21
|
+
result = Azure::ServiceBus::Queues.delete_message_from_queue(@queue, retrieved)
|
|
22
|
+
result.must_equal true
|
|
23
|
+
|
|
24
|
+
# it should be deleted
|
|
25
|
+
retrieved = Azure::ServiceBus::Queues.peek_lock_message_from_queue(@queue, :timeout => 2)
|
|
26
|
+
refute retrieved.valid?
|
|
27
|
+
retrieved.error.message.must_equal "No messages available within the specified timeout period."
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Deleting a Queue" do
|
|
4
|
+
|
|
5
|
+
after do
|
|
6
|
+
ServiceBusQueueNameHelper.clean
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should return false if the queue cannot be deleted" do
|
|
10
|
+
queue = Azure::ServiceBus::Queues::Queue.new(ServiceBusQueueNameHelper.name)
|
|
11
|
+
response = queue.delete
|
|
12
|
+
|
|
13
|
+
response.must_equal false
|
|
14
|
+
refute queue.valid?
|
|
15
|
+
refute queue.frozen?
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should return true if the queue can be deleted" do
|
|
19
|
+
queue = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
20
|
+
response = queue.delete
|
|
21
|
+
|
|
22
|
+
response.must_equal true
|
|
23
|
+
assert queue.frozen?
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Deleting a Queue" do
|
|
4
|
+
|
|
5
|
+
after do
|
|
6
|
+
ServiceBusQueueNameHelper.clean
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should be able to get a queue by name" do
|
|
10
|
+
queue_name = ServiceBusQueueNameHelper.name
|
|
11
|
+
queue = Azure::ServiceBus::Queues.create(queue_name)
|
|
12
|
+
|
|
13
|
+
result = Azure::ServiceBus::Queues.get(queue_name)
|
|
14
|
+
|
|
15
|
+
result.must_equal queue
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "if the queue doesn't exists I should get a list of links to immediate child nodes" do
|
|
19
|
+
result = Azure::ServiceBus::Queues.get('inexistent')
|
|
20
|
+
|
|
21
|
+
result.must_be_nil
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
|
|
3
|
+
describe "Listing Queues" do
|
|
4
|
+
|
|
5
|
+
after do
|
|
6
|
+
ServiceBusQueueNameHelper.clean
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should be able to get a list of queues" do
|
|
10
|
+
q1 = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
11
|
+
q2 = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
12
|
+
|
|
13
|
+
result = Azure::ServiceBus::Queues.list
|
|
14
|
+
|
|
15
|
+
result.must_be :kind_of?, Array
|
|
16
|
+
result.count.must_equal 2
|
|
17
|
+
result.must_include q1
|
|
18
|
+
result.must_include q2
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should be able to use $skip" do
|
|
22
|
+
q1 = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
23
|
+
q2 = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
24
|
+
q3 = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
25
|
+
|
|
26
|
+
result = Azure::ServiceBus::Queues.list(:skip => 1)
|
|
27
|
+
|
|
28
|
+
result.count.must_equal 2
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should be able to use $top" do
|
|
32
|
+
q1 = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
33
|
+
q2 = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
34
|
+
|
|
35
|
+
result = Azure::ServiceBus::Queues.list(:top => 1)
|
|
36
|
+
|
|
37
|
+
result.count.must_equal 1
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
require "azure/service_bus/queues"
|
|
3
|
+
require "azure/service_bus/brokered_message"
|
|
4
|
+
|
|
5
|
+
describe "Peek-lock a Message from a Queue" do
|
|
6
|
+
|
|
7
|
+
after do
|
|
8
|
+
ServiceBusQueueNameHelper.clean
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
before do
|
|
12
|
+
@queue = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should be able to peek a message from a queue" do
|
|
16
|
+
message = Azure::ServiceBus::BrokeredMessage.new("some text", :prop1 => "val1") do |m|
|
|
17
|
+
m.to = "yo"
|
|
18
|
+
m.label = 'my_label'
|
|
19
|
+
end
|
|
20
|
+
Azure::ServiceBus::Queues.send_message_to_queue(@queue, message)
|
|
21
|
+
|
|
22
|
+
retrieved = Azure::ServiceBus::Queues.peek_lock_message_from_queue(@queue)
|
|
23
|
+
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
|
24
|
+
assert retrieved.valid?
|
|
25
|
+
|
|
26
|
+
retrieved.body.must_equal message.body
|
|
27
|
+
retrieved.to.must_equal message.to
|
|
28
|
+
retrieved.label.must_equal message.label
|
|
29
|
+
retrieved.properties['prop1'].must_equal 'val1'
|
|
30
|
+
|
|
31
|
+
refute retrieved.lock_token.nil?
|
|
32
|
+
refute retrieved.sequence_number.nil?
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
require "azure/service_bus/queues"
|
|
3
|
+
require "azure/service_bus/brokered_message"
|
|
4
|
+
|
|
5
|
+
describe "Read and Delete a Message from a Queue" do
|
|
6
|
+
|
|
7
|
+
after do
|
|
8
|
+
ServiceBusQueueNameHelper.clean
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
before do
|
|
12
|
+
@queue = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should be able to read-delete a message from a queue" do
|
|
16
|
+
message = Azure::ServiceBus::BrokeredMessage.new("some text") {|m| m.to = 'me' }
|
|
17
|
+
Azure::ServiceBus::Queues.send_message_to_queue(@queue, message)
|
|
18
|
+
|
|
19
|
+
retrieved = Azure::ServiceBus::Queues.read_delete_message_from_queue(@queue)
|
|
20
|
+
|
|
21
|
+
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
|
22
|
+
assert retrieved.valid?
|
|
23
|
+
retrieved.body.must_equal message.body
|
|
24
|
+
retrieved.to.must_equal message.to
|
|
25
|
+
|
|
26
|
+
# it should be deleted
|
|
27
|
+
retrieved = Azure::ServiceBus::Queues.read_delete_message_from_queue(@queue, :timeout => 2)
|
|
28
|
+
refute retrieved.valid?
|
|
29
|
+
retrieved.error.message.must_equal "No messages available within the specified timeout period."
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
require "azure/service_bus/queues"
|
|
3
|
+
require "azure/service_bus/brokered_message"
|
|
4
|
+
|
|
5
|
+
describe "Sending a Message to a Queue" do
|
|
6
|
+
|
|
7
|
+
after do
|
|
8
|
+
ServiceBusQueueNameHelper.clean
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
before do
|
|
12
|
+
@queue = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should be able to send a message to a queue" do
|
|
16
|
+
message = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
|
17
|
+
m.to = "yo"
|
|
18
|
+
end
|
|
19
|
+
res = Azure::ServiceBus::Queues.send_message_to_queue(@queue, message)
|
|
20
|
+
res.must_equal true
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require "integration/test_helper"
|
|
2
|
+
require "azure/service_bus/queues"
|
|
3
|
+
require "azure/service_bus/brokered_message"
|
|
4
|
+
|
|
5
|
+
describe "Unlock a Message from a Queue" do
|
|
6
|
+
|
|
7
|
+
after do
|
|
8
|
+
ServiceBusQueueNameHelper.clean
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
before do
|
|
12
|
+
@queue = Azure::ServiceBus::Queues.create(ServiceBusQueueNameHelper.name)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should be able to unlock a message from a queue" do
|
|
16
|
+
message = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
|
17
|
+
m.to = "me"
|
|
18
|
+
end
|
|
19
|
+
Azure::ServiceBus::Queues.send_message_to_queue(@queue, message)
|
|
20
|
+
|
|
21
|
+
retrieved = Azure::ServiceBus::Queues.peek_lock_message_from_queue(@queue)
|
|
22
|
+
|
|
23
|
+
# There shouldn't be an available message in the queue
|
|
24
|
+
retrieved2 = Azure::ServiceBus::Queues.peek_lock_message_from_queue(@queue)
|
|
25
|
+
refute retrieved2.valid?
|
|
26
|
+
retrieved2.error.message.must_equal "No messages available within the specified timeout period."
|
|
27
|
+
|
|
28
|
+
# Unlock the message
|
|
29
|
+
res = Azure::ServiceBus::Queues.unlock_message_from_queue(@queue, retrieved)
|
|
30
|
+
res.must_equal true
|
|
31
|
+
|
|
32
|
+
# The message should be available once again
|
|
33
|
+
retrieved = Azure::ServiceBus::Queues.peek_lock_message_from_queue(@queue)
|
|
34
|
+
retrieved.body.must_equal message.body
|
|
35
|
+
end
|
|
36
|
+
end
|