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.
Files changed (212) hide show
  1. data/Gemfile +3 -0
  2. data/Gemfile.lock +36 -0
  3. data/README.md +3 -0
  4. data/Rakefile +81 -0
  5. data/azure.gemspec +20 -9
  6. data/lib/azure.rb +4 -0
  7. data/lib/azure/atom.rb +170 -0
  8. data/lib/azure/auth.rb +29 -0
  9. data/lib/azure/blobs.rb +620 -0
  10. data/lib/azure/blobs/blob.rb +360 -0
  11. data/lib/azure/blobs/container.rb +209 -0
  12. data/lib/azure/blobs/service.rb +396 -0
  13. data/lib/azure/blobs/shared_access_signature.rb +84 -0
  14. data/lib/azure/blobs/uri.rb +60 -0
  15. data/lib/azure/configuration.rb +121 -0
  16. data/lib/azure/core/auth/shared_key.rb +95 -0
  17. data/lib/azure/core/auth/shared_key_lite.rb +34 -0
  18. data/lib/azure/core/collection.rb +118 -0
  19. data/lib/azure/core/service.rb +43 -0
  20. data/lib/azure/core/signer.rb +32 -0
  21. data/lib/azure/core/utils/interval.rb +97 -0
  22. data/lib/azure/core/utils/queryable.rb +74 -0
  23. data/lib/azure/core/utils/storage_service_properties.rb +83 -0
  24. data/lib/azure/core/utils/string.rb +59 -0
  25. data/lib/azure/error.rb +72 -0
  26. data/lib/azure/queues.rb +272 -0
  27. data/lib/azure/queues/message.rb +174 -0
  28. data/lib/azure/queues/queue.rb +187 -0
  29. data/lib/azure/queues/service.rb +263 -0
  30. data/lib/azure/queues/service_properties.rb +152 -0
  31. data/lib/azure/queues/uri.rb +78 -0
  32. data/lib/azure/request.rb +102 -0
  33. data/lib/azure/response.rb +93 -0
  34. data/lib/azure/service_bus.rb +4 -0
  35. data/lib/azure/service_bus/auth/authorizer.rb +22 -0
  36. data/lib/azure/service_bus/auth/uri.rb +52 -0
  37. data/lib/azure/service_bus/auth/wrap.rb +37 -0
  38. data/lib/azure/service_bus/auth/wrap_service.rb +76 -0
  39. data/lib/azure/service_bus/auth/wrap_token.rb +45 -0
  40. data/lib/azure/service_bus/auth/wrap_token_manager.rb +46 -0
  41. data/lib/azure/service_bus/brokered_message.rb +139 -0
  42. data/lib/azure/service_bus/brokered_message_serializer.rb +113 -0
  43. data/lib/azure/service_bus/queues.rb +194 -0
  44. data/lib/azure/service_bus/queues/queue.rb +100 -0
  45. data/lib/azure/service_bus/queues/queue_serializer.rb +51 -0
  46. data/lib/azure/service_bus/queues/service.rb +154 -0
  47. data/lib/azure/service_bus/queues/uri.rb +80 -0
  48. data/lib/azure/service_bus/rules.rb +110 -0
  49. data/lib/azure/service_bus/rules/rule.rb +97 -0
  50. data/lib/azure/service_bus/rules/service.rb +122 -0
  51. data/lib/azure/service_bus/rules/uri.rb +39 -0
  52. data/lib/azure/service_bus/service_bus_service.rb +22 -0
  53. data/lib/azure/service_bus/subscriptions.rb +170 -0
  54. data/lib/azure/service_bus/subscriptions/service.rb +133 -0
  55. data/lib/azure/service_bus/subscriptions/subscription.rb +164 -0
  56. data/lib/azure/service_bus/subscriptions/subscription_serializer.rb +74 -0
  57. data/lib/azure/service_bus/subscriptions/uri.rb +71 -0
  58. data/lib/azure/service_bus/topics.rb +120 -0
  59. data/lib/azure/service_bus/topics/service.rb +98 -0
  60. data/lib/azure/service_bus/topics/topic.rb +122 -0
  61. data/lib/azure/service_bus/topics/topic_serializer.rb +44 -0
  62. data/lib/azure/service_bus/topics/uri.rb +58 -0
  63. data/lib/azure/service_runtime/client/goal_state_pipe_monitor.rb +21 -0
  64. data/lib/azure/service_runtime/client/goal_state_protocol.rb +18 -0
  65. data/lib/azure/service_runtime/client/runtime_client.rb +135 -0
  66. data/lib/azure/service_runtime/deployment.rb +24 -0
  67. data/lib/azure/service_runtime/local_resource.rb +15 -0
  68. data/lib/azure/service_runtime/role.rb +17 -0
  69. data/lib/azure/service_runtime/role_environment.rb +206 -0
  70. data/lib/azure/service_runtime/role_environment_change.rb +32 -0
  71. data/lib/azure/service_runtime/role_instance.rb +35 -0
  72. data/lib/azure/service_runtime/role_instance_endpoint.rb +14 -0
  73. data/lib/azure/tables.rb +215 -0
  74. data/lib/azure/tables/auth/shared_key.rb +71 -0
  75. data/lib/azure/tables/auth/shared_key_lite.rb +30 -0
  76. data/lib/azure/tables/entities_collection.rb +66 -0
  77. data/lib/azure/tables/entity.rb +127 -0
  78. data/lib/azure/tables/service.rb +211 -0
  79. data/lib/azure/tables/table.rb +129 -0
  80. data/lib/azure/tables/tables_collection.rb +62 -0
  81. data/lib/azure/tables/types.rb +65 -0
  82. data/lib/azure/tables/uri.rb +62 -0
  83. data/test/fixtures/32px-fulls-black.jpg +0 -0
  84. data/test/fixtures/all_containers.xml +20 -0
  85. data/test/fixtures/all_tables.xml +22 -0
  86. data/test/fixtures/create_table_response_entry.xml +15 -0
  87. data/test/fixtures/error.xml +5 -0
  88. data/test/fixtures/insert_entity_response_entry.xml +25 -0
  89. data/test/fixtures/messages.xml +12 -0
  90. data/test/fixtures/query_entities_empty_response.xml +7 -0
  91. data/test/fixtures/query_entities_response.xml +45 -0
  92. data/test/fixtures/queue_service_properties.xml +22 -0
  93. data/test/fixtures/queue_service_properties_original.xml +19 -0
  94. data/test/fixtures/queues.xml +16 -0
  95. data/test/fixtures/sb_default_create_queue_response.xml +23 -0
  96. data/test/fixtures/sb_default_create_topic_response.xml +18 -0
  97. data/test/fixtures/sb_get_access_token_response.txt +1 -0
  98. data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -0
  99. data/test/integration/blobs/auth_test.rb +19 -0
  100. data/test/integration/blobs/blob_test.rb +61 -0
  101. data/test/integration/blobs/clear_page_range_test.rb +19 -0
  102. data/test/integration/blobs/copy_test.rb +33 -0
  103. data/test/integration/blobs/create_blobs_test.rb +51 -0
  104. data/test/integration/blobs/create_container_test.rb +13 -0
  105. data/test/integration/blobs/create_snapshot_test.rb +17 -0
  106. data/test/integration/blobs/delete_blob_snapshots_test.rb +19 -0
  107. data/test/integration/blobs/delete_blobs_test.rb +25 -0
  108. data/test/integration/blobs/delete_container_test.rb +24 -0
  109. data/test/integration/blobs/delete_snapshot_test.rb +17 -0
  110. data/test/integration/blobs/get_blob_snapshot_test.rb +18 -0
  111. data/test/integration/blobs/get_blobs_test.rb +31 -0
  112. data/test/integration/blobs/get_page_range_test.rb +19 -0
  113. data/test/integration/blobs/list_blobs_test.rb +39 -0
  114. data/test/integration/blobs/list_containers_test.rb +28 -0
  115. data/test/integration/blobs/manage_blob_leases_test.rb +45 -0
  116. data/test/integration/blobs/manage_blob_metadata_test.rb +51 -0
  117. data/test/integration/blobs/manage_blob_properties_test.rb +25 -0
  118. data/test/integration/blobs/manage_blob_service_properties_test.rb +38 -0
  119. data/test/integration/blobs/manage_container_metadata_test.rb +46 -0
  120. data/test/integration/blobs/manage_container_permissions_test.rb +17 -0
  121. data/test/integration/blobs/update_page_range_test.rb +20 -0
  122. data/test/integration/queues/clear_messages_test.rb +22 -0
  123. data/test/integration/queues/create_queue_test.rb +13 -0
  124. data/test/integration/queues/delete_message_test.rb +42 -0
  125. data/test/integration/queues/delete_queue_test.rb +24 -0
  126. data/test/integration/queues/get_messages_test.rb +39 -0
  127. data/test/integration/queues/list_queues_test.rb +43 -0
  128. data/test/integration/queues/manage_queue_metadata_test.rb +45 -0
  129. data/test/integration/queues/manage_queue_service_properties_test.rb +27 -0
  130. data/test/integration/queues/peek_messages_test.rb +55 -0
  131. data/test/integration/queues/put_message_test.rb +31 -0
  132. data/test/integration/queues/update_message_test.rb +46 -0
  133. data/test/integration/service_bus/auth_test.rb +18 -0
  134. data/test/integration/service_bus/queues/create_queue_test.rb +25 -0
  135. data/test/integration/service_bus/queues/delete_message_from_queue_test.rb +29 -0
  136. data/test/integration/service_bus/queues/delete_queue_test.rb +25 -0
  137. data/test/integration/service_bus/queues/get_queue_test.rb +23 -0
  138. data/test/integration/service_bus/queues/list_queues_test.rb +39 -0
  139. data/test/integration/service_bus/queues/peek_message_from_queue_test.rb +34 -0
  140. data/test/integration/service_bus/queues/read_and_delete_message_from_queue_test.rb +31 -0
  141. data/test/integration/service_bus/queues/send_message_to_queue_test.rb +22 -0
  142. data/test/integration/service_bus/queues/unlock_message_from_queue_test.rb +36 -0
  143. data/test/integration/service_bus/rules/create_rule_test.rb +19 -0
  144. data/test/integration/service_bus/rules/delete_rule_test.rb +17 -0
  145. data/test/integration/service_bus/rules/get_rule_test.rb +21 -0
  146. data/test/integration/service_bus/rules/list_rules_test.rb +24 -0
  147. data/test/integration/service_bus/rules/rule_test.rb +16 -0
  148. data/test/integration/service_bus/subscriptions/create_subscription_test.rb +25 -0
  149. data/test/integration/service_bus/subscriptions/delete_message_from_subscription_test.rb +31 -0
  150. data/test/integration/service_bus/subscriptions/delete_subscription_test.rb +30 -0
  151. data/test/integration/service_bus/subscriptions/fetch_subscription_test.rb +28 -0
  152. data/test/integration/service_bus/subscriptions/list_subscriptions_test.rb +23 -0
  153. data/test/integration/service_bus/subscriptions/peek_lock_message_from_subscription_test.rb +42 -0
  154. data/test/integration/service_bus/subscriptions/read_delete_message_from_subscription_test.rb +36 -0
  155. data/test/integration/service_bus/subscriptions/subscription_test.rb +31 -0
  156. data/test/integration/service_bus/subscriptions/unlock_message_from_subscription_test.rb +43 -0
  157. data/test/integration/service_bus/topics/create_topic_test.rb +25 -0
  158. data/test/integration/service_bus/topics/delete_topic_test.rb +25 -0
  159. data/test/integration/service_bus/topics/get_topic_test.rb +23 -0
  160. data/test/integration/service_bus/topics/list_topics_test.rb +39 -0
  161. data/test/integration/service_bus/topics/send_message_to_topic_test.rb +23 -0
  162. data/test/integration/tables/auth_test.rb +29 -0
  163. data/test/integration/tables/creating_tables_test.rb +16 -0
  164. data/test/integration/tables/delete_entity_test.rb +39 -0
  165. data/test/integration/tables/deleting_table_test.rb +22 -0
  166. data/test/integration/tables/insert_entity_test.rb +23 -0
  167. data/test/integration/tables/merge_entity_test.rb +28 -0
  168. data/test/integration/tables/query_entities_test.rb +131 -0
  169. data/test/integration/tables/query_tables_test.rb +63 -0
  170. data/test/integration/tables/update_entity_test.rb +54 -0
  171. data/test/integration/test_helper.rb +14 -0
  172. data/test/support/blobs.rb +12 -0
  173. data/test/support/env.rb +5 -0
  174. data/test/support/fixtures.rb +22 -0
  175. data/test/support/stubs.rb +28 -0
  176. data/test/support/table_names.rb +44 -0
  177. data/test/test_helper.rb +10 -0
  178. data/test/unit/atom_test.rb +58 -0
  179. data/test/unit/auth_test.rb +24 -0
  180. data/test/unit/blobs/blob_test.rb +5 -0
  181. data/test/unit/blobs/container_test.rb +67 -0
  182. data/test/unit/blobs/service_test.rb +17 -0
  183. data/test/unit/blobs/shared_access_signature_test.rb +66 -0
  184. data/test/unit/blobs_test.rb +156 -0
  185. data/test/unit/core/service_test.rb +57 -0
  186. data/test/unit/core/utils/interval_test.rb +70 -0
  187. data/test/unit/core/utils/queryable_test.rb +69 -0
  188. data/test/unit/core/utils/storage_service_properties_test.rb +66 -0
  189. data/test/unit/error_test.rb +39 -0
  190. data/test/unit/queues/message_test.rb +40 -0
  191. data/test/unit/queues/queue_test.rb +64 -0
  192. data/test/unit/queues/service_properties.rb +35 -0
  193. data/test/unit/request_test.rb +38 -0
  194. data/test/unit/response_test.rb +43 -0
  195. data/test/unit/service_bus/auth/authorizer_test.rb +27 -0
  196. data/test/unit/service_bus/auth/wrap_token_test.rb +28 -0
  197. data/test/unit/service_bus/queues/queue_test.rb +38 -0
  198. data/test/unit/service_bus/topics/topic_test.rb +33 -0
  199. data/test/unit/service_runtime/data/goalstate.xml +9 -0
  200. data/test/unit/service_runtime/data/roleenvironmentdata.xml +29 -0
  201. data/test/unit/service_runtime/data/runtime.xml +6 -0
  202. data/test/unit/service_runtime/role_environment_test.rb +144 -0
  203. data/test/unit/tables/auth/shared_key_lite_test.rb +39 -0
  204. data/test/unit/tables/auth/shared_key_test.rb +45 -0
  205. data/test/unit/tables/entities_collection_test.rb +39 -0
  206. data/test/unit/tables/entity_test.rb +72 -0
  207. data/test/unit/tables/table_test.rb +57 -0
  208. data/test/unit/tables_test.rb +302 -0
  209. data/test/unit/types_test.rb +67 -0
  210. metadata +310 -47
  211. data/LICENSE +0 -0
  212. 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