azure 0.7.1 → 0.7.3

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 (216) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +31 -0
  3. data/azure.gemspec +2 -1
  4. data/lib/azure.rb +1 -0
  5. data/lib/azure/base_management/management_http_request.rb +3 -12
  6. data/lib/azure/blob/auth/shared_access_signature.rb +4 -0
  7. data/lib/azure/blob/blob_service.rb +2 -2
  8. data/lib/azure/client_services.rb +13 -13
  9. data/lib/azure/core/http/http_request.rb +3 -14
  10. data/lib/azure/core/service.rb +2 -1
  11. data/lib/azure/http_client.rb +1 -17
  12. data/lib/azure/http_response_helper.rb +38 -0
  13. data/lib/azure/sql_database_management/serialization.rb +4 -0
  14. data/lib/azure/sql_database_management/sql_database_management_service.rb +10 -9
  15. data/lib/azure/version.rb +1 -1
  16. data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +2 -2
  17. data/lib/azure/virtual_machine_management/serialization.rb +21 -12
  18. data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +8 -3
  19. metadata +17 -199
  20. data/test/fixtures/32px-fulls-black.jpg +0 -0
  21. data/test/fixtures/affinity_group.xml +0 -33
  22. data/test/fixtures/all_containers.xml +0 -20
  23. data/test/fixtures/all_tables.xml +0 -22
  24. data/test/fixtures/container_acl.xml +0 -11
  25. data/test/fixtures/create_sql_database_server.xml +0 -2
  26. data/test/fixtures/create_storage_desc_error.xml +0 -5
  27. data/test/fixtures/create_storage_extendedprop_error.xml +0 -8
  28. data/test/fixtures/create_storage_extendedpropname_error.xml +0 -6
  29. data/test/fixtures/create_storage_full_error.xml +0 -6
  30. data/test/fixtures/create_storage_label_error.xml +0 -5
  31. data/test/fixtures/create_storage_location_error.xml +0 -5
  32. data/test/fixtures/create_storage_name_error.xml +0 -6
  33. data/test/fixtures/create_table_response_entry.xml +0 -15
  34. data/test/fixtures/delete_storage_container_error.xml +0 -5
  35. data/test/fixtures/delete_storage_error.xml +0 -5
  36. data/test/fixtures/deployment_error.xml +0 -5
  37. data/test/fixtures/empty_xml_file +0 -0
  38. data/test/fixtures/get_storage_account_error.xml +0 -5
  39. data/test/fixtures/get_storage_account_properties.xml +0 -34
  40. data/test/fixtures/get_storage_account_properties_new.xml +0 -32
  41. data/test/fixtures/http_error.xml +0 -5
  42. data/test/fixtures/insert_entity_response_entry.xml +0 -25
  43. data/test/fixtures/list_affinity_groups.xml +0 -22
  44. data/test/fixtures/list_blobs.xml +0 -121
  45. data/test/fixtures/list_block_all_with_none_committed.xml +0 -22
  46. data/test/fixtures/list_blocks_all.xml +0 -23
  47. data/test/fixtures/list_blocks_committed.xml +0 -13
  48. data/test/fixtures/list_cloud_services.xml +0 -39
  49. data/test/fixtures/list_containers.xml +0 -38
  50. data/test/fixtures/list_firewall_management_endpoint.xml +0 -27
  51. data/test/fixtures/list_locations.xml +0 -212
  52. data/test/fixtures/list_os_images.xml +0 -110
  53. data/test/fixtures/list_page_ranges.xml +0 -11
  54. data/test/fixtures/list_sql_database.xml +0 -24
  55. data/test/fixtures/list_sql_server_firewall.xml +0 -23
  56. data/test/fixtures/list_storage_account_single.xml +0 -25
  57. data/test/fixtures/list_storage_accounts.xml +0 -48
  58. data/test/fixtures/list_virtual_networks.xml +0 -91
  59. data/test/fixtures/list_vm_images.xml +0 -21
  60. data/test/fixtures/logging.xml +0 -11
  61. data/test/fixtures/management_certificate.pem +0 -55
  62. data/test/fixtures/management_certificate.pfx +0 -0
  63. data/test/fixtures/management_certificate.publishsettings +0 -12
  64. data/test/fixtures/messages.xml +0 -12
  65. data/test/fixtures/metrics.xml +0 -10
  66. data/test/fixtures/privatekey.key +0 -28
  67. data/test/fixtures/query_entities_empty_response.xml +0 -7
  68. data/test/fixtures/query_entities_response.xml +0 -45
  69. data/test/fixtures/queue_service_properties.xml +0 -22
  70. data/test/fixtures/queue_service_properties_original.xml +0 -19
  71. data/test/fixtures/queues.xml +0 -16
  72. data/test/fixtures/retention_policy.xml +0 -5
  73. data/test/fixtures/sb_default_create_queue_response.xml +0 -23
  74. data/test/fixtures/sb_default_create_relay_response.xml +0 -15
  75. data/test/fixtures/sb_default_create_topic_response.xml +0 -18
  76. data/test/fixtures/sb_get_access_token_response.txt +0 -1
  77. data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +0 -9
  78. data/test/fixtures/storage_service_keys.xml +0 -8
  79. data/test/fixtures/storage_service_properties.xml +0 -55
  80. data/test/fixtures/update_storage_account.xml +0 -16
  81. data/test/fixtures/update_storage_error.xml +0 -5
  82. data/test/fixtures/updated_storage_accounts.xml +0 -55
  83. data/test/fixtures/virtual_machine.xml +0 -116
  84. data/test/fixtures/windows_virtual_machine.xml +0 -106
  85. data/test/integration/affinity_group/Affinity_test.rb +0 -55
  86. data/test/integration/affinity_group/Create_Affinity_test.rb +0 -64
  87. data/test/integration/affinity_group/Delete_Affinity_test.rb +0 -56
  88. data/test/integration/affinity_group/List_Affinity_test.rb +0 -41
  89. data/test/integration/affinity_group/Update_Affinity_test.rb +0 -87
  90. data/test/integration/blob/blob_gb18030_test.rb +0 -199
  91. data/test/integration/blob/blob_metadata_test.rb +0 -75
  92. data/test/integration/blob/blob_pages_test.rb +0 -119
  93. data/test/integration/blob/blob_properties_test.rb +0 -77
  94. data/test/integration/blob/block_blob_test.rb +0 -303
  95. data/test/integration/blob/container/container_acl_test.rb +0 -69
  96. data/test/integration/blob/container/container_metadata_test.rb +0 -50
  97. data/test/integration/blob/container/create_container_test.rb +0 -60
  98. data/test/integration/blob/container/delete_container_test.rb +0 -39
  99. data/test/integration/blob/container/get_container_properties_test.rb +0 -48
  100. data/test/integration/blob/container/list_containers_test.rb +0 -79
  101. data/test/integration/blob/container/root_container_test.rb +0 -55
  102. data/test/integration/blob/copy_blob_test.rb +0 -113
  103. data/test/integration/blob/create_blob_snapshot_test.rb +0 -80
  104. data/test/integration/blob/create_page_blob_test.rb +0 -83
  105. data/test/integration/blob/delete_blob_test.rb +0 -159
  106. data/test/integration/blob/get_blob_test.rb +0 -65
  107. data/test/integration/blob/informative_errors_test.rb +0 -39
  108. data/test/integration/blob/lease/acquire_lease_test.rb +0 -36
  109. data/test/integration/blob/lease/break_lease_test.rb +0 -40
  110. data/test/integration/blob/lease/release_lease_test.rb +0 -40
  111. data/test/integration/blob/lease/renew_lease_test.rb +0 -42
  112. data/test/integration/blob/list_blobs_test.rb +0 -113
  113. data/test/integration/cloud_service/Cloud_Create_test.rb +0 -45
  114. data/test/integration/cloud_service/Cloud_Delete_test.rb +0 -45
  115. data/test/integration/database/create_sql_server_firewall_test.rb +0 -81
  116. data/test/integration/database/create_sql_server_test.rb +0 -53
  117. data/test/integration/database/delete_sql_server_firewall_test.rb +0 -63
  118. data/test/integration/database/delete_sql_server_test.rb +0 -44
  119. data/test/integration/database/list_sql_server_firewall_test.rb +0 -44
  120. data/test/integration/database/list_sql_servers_test.rb +0 -44
  121. data/test/integration/database/reset_password_sql_server_test.rb +0 -53
  122. data/test/integration/location/Location_List_test.rb +0 -38
  123. data/test/integration/location/RoleSize_List_test.rb +0 -34
  124. data/test/integration/queue/clear_messages_test.rb +0 -42
  125. data/test/integration/queue/create_message_test.rb +0 -75
  126. data/test/integration/queue/create_queue_test.rb +0 -50
  127. data/test/integration/queue/delete_message_test.rb +0 -67
  128. data/test/integration/queue/delete_queue_test.rb +0 -45
  129. data/test/integration/queue/informative_errors_test.rb +0 -42
  130. data/test/integration/queue/list_messages_encoded_test.rb +0 -79
  131. data/test/integration/queue/list_messages_test.rb +0 -79
  132. data/test/integration/queue/list_queues_test.rb +0 -43
  133. data/test/integration/queue/peek_messages_test.rb +0 -59
  134. data/test/integration/queue/queue_gb18030_test.rb +0 -131
  135. data/test/integration/queue/queue_metadata_test.rb +0 -40
  136. data/test/integration/queue/update_message_test.rb +0 -74
  137. data/test/integration/service_bus/informative_errors_test.rb +0 -37
  138. data/test/integration/service_bus/queues_scenario_test.rb +0 -200
  139. data/test/integration/service_bus/queues_test.rb +0 -266
  140. data/test/integration/service_bus/relay_test.rb +0 -132
  141. data/test/integration/service_bus/rules_test.rb +0 -145
  142. data/test/integration/service_bus/sb_queue_gb18030_test.rb +0 -182
  143. data/test/integration/service_bus/scenario_test.rb +0 -101
  144. data/test/integration/service_bus/subscriptions_test.rb +0 -211
  145. data/test/integration/service_bus/topics_scenario_test.rb +0 -406
  146. data/test/integration/service_bus/topics_test.rb +0 -129
  147. data/test/integration/storage_management/storage_management_test.rb +0 -185
  148. data/test/integration/table/create_table_test.rb +0 -36
  149. data/test/integration/table/delete_entity_batch_test.rb +0 -107
  150. data/test/integration/table/delete_entity_test.rb +0 -94
  151. data/test/integration/table/delete_table_test.rb +0 -40
  152. data/test/integration/table/get_table_test.rb +0 -37
  153. data/test/integration/table/informative_errors_test.rb +0 -39
  154. data/test/integration/table/insert_entity_batch_test.rb +0 -100
  155. data/test/integration/table/insert_entity_test.rb +0 -88
  156. data/test/integration/table/insert_or_merge_entity_batch_test.rb +0 -159
  157. data/test/integration/table/insert_or_merge_entity_test.rb +0 -143
  158. data/test/integration/table/insert_or_replace_entity_batch_test.rb +0 -152
  159. data/test/integration/table/insert_or_replace_entity_test.rb +0 -137
  160. data/test/integration/table/merge_entity_batch_test.rb +0 -128
  161. data/test/integration/table/merge_entity_test.rb +0 -113
  162. data/test/integration/table/query_entities_test.rb +0 -196
  163. data/test/integration/table/query_tables_test.rb +0 -43
  164. data/test/integration/table/query_test.rb +0 -251
  165. data/test/integration/table/table_acl_test.rb +0 -52
  166. data/test/integration/table/table_gb18030_test.rb +0 -355
  167. data/test/integration/table/update_entity_batch_test.rb +0 -149
  168. data/test/integration/table/update_entity_test.rb +0 -131
  169. data/test/integration/test_helper.rb +0 -40
  170. data/test/integration/vm/VM_Create_test.rb +0 -262
  171. data/test/integration/vm/VM_Delete_test.rb +0 -53
  172. data/test/integration/vm/VM_Operations_test.rb +0 -172
  173. data/test/integration/vm_image/virtual_machine_disk_test.rb +0 -37
  174. data/test/integration/vm_image/virtual_machine_image_test.rb +0 -37
  175. data/test/integration/vnet/Virtual_Network_Create_test.rb +0 -116
  176. data/test/integration/vnet/Virtual_Network_list_test.rb +0 -48
  177. data/test/support/env.rb +0 -19
  178. data/test/support/fixtures.rb +0 -36
  179. data/test/support/name_generator.rb +0 -168
  180. data/test/support/stubs.rb +0 -42
  181. data/test/support/virtual_machine_name_generator.rb +0 -102
  182. data/test/support/virtual_network_helper.rb +0 -73
  183. data/test/test_helper.rb +0 -47
  184. data/test/unit/affinity_group/affinity_group_test.rb +0 -189
  185. data/test/unit/affinity_group/serialization_test.rb +0 -87
  186. data/test/unit/base_management/base_management_service_test.rb +0 -19
  187. data/test/unit/base_management/location_test.rb +0 -56
  188. data/test/unit/base_management/role_size_test.rb +0 -50
  189. data/test/unit/blob/auth/shared_access_signature_test.rb +0 -71
  190. data/test/unit/blob/blob_service_test.rb +0 -1970
  191. data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +0 -94
  192. data/test/unit/cloud_service_management/serialization_test.rb +0 -169
  193. data/test/unit/config/azure_test.rb +0 -131
  194. data/test/unit/config/client_test.rb +0 -37
  195. data/test/unit/core/auth/shared_key_lite_test.rb +0 -51
  196. data/test/unit/core/auth/shared_key_test.rb +0 -58
  197. data/test/unit/core/auth/signer_test.rb +0 -30
  198. data/test/unit/core/http/http_error_test.rb +0 -61
  199. data/test/unit/core/http/http_request_test.rb +0 -138
  200. data/test/unit/core/http/http_response_test.rb +0 -20
  201. data/test/unit/core/http/retry_policy_test.rb +0 -23
  202. data/test/unit/core/utility_test.rb +0 -122
  203. data/test/unit/database/serialization_test.rb +0 -94
  204. data/test/unit/database/sql_database_server_service_test.rb +0 -341
  205. data/test/unit/http_client_test.rb +0 -74
  206. data/test/unit/service/serialization_test.rb +0 -533
  207. data/test/unit/service/storage_service_test.rb +0 -297
  208. data/test/unit/storage_management/serialization_test.rb +0 -244
  209. data/test/unit/storage_management/storage_management_service_test.rb +0 -247
  210. data/test/unit/table/edmtype_test.rb +0 -108
  211. data/test/unit/virtual_machine_image_management/serialization_test.rb +0 -50
  212. data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +0 -114
  213. data/test/unit/virtual_machine_management/serialization_test.rb +0 -316
  214. data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +0 -480
  215. data/test/unit/vnet/serialization_test.rb +0 -187
  216. data/test/unit/vnet/virtual_network_management_service_test.rb +0 -131
@@ -1,182 +0,0 @@
1
- #-------------------------------------------------------------------------
2
- # # Copyright (c) Microsoft and contributors. All rights reserved.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- # http://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
- #--------------------------------------------------------------------------
15
- require "integration/test_helper"
16
- require "azure/blob/blob_service"
17
-
18
- describe 'Service Bus Queue GB-18030' do
19
- subject { Azure::ServiceBus::ServiceBusService.new }
20
- let(:queue_name) { ServiceBusQueueNameHelper.name }
21
-
22
- before { subject.create_queue queue_name }
23
- after { ServiceBusQueueNameHelper.clean }
24
-
25
- it 'Read/Write SB Queue Name UTF-8' do
26
- # Expected results: Failure, because the Queue
27
- # name can only contain ASCII
28
- # characters, per the Service Bus Queue spec.
29
- GB18030TestStrings.get.each { |k,v|
30
- begin
31
- subject.create_queue queue_name + v.encode("UTF-8")
32
- flunk "No exception"
33
- rescue
34
- # Add validation?
35
- end
36
- }
37
- end
38
-
39
- it 'Read/Write SB Queue Name GB-18030' do
40
- # Expected results: Failure, because the Queue
41
- # name can only contain ASCII
42
- # characters, per the Service Bus Queue spec.
43
- GB18030TestStrings.get.each { |k,v|
44
- begin
45
- subject.create_queue queue_name + v.encode("GB18030")
46
- flunk "No exception"
47
- rescue
48
- # Add validation?
49
- end
50
- }
51
- end
52
-
53
- it 'Read/Write SB Queue Metadata UTF-8' do
54
- GB18030TestStrings.get.each { |k,v|
55
- begin
56
- subject.create_queue queue_name, {
57
- :dead_lettering_on_message_expiration => v.encode("UTF-8"),
58
- }
59
- flunk "No exception"
60
- rescue Azure::Core::Http::HTTPError => error
61
- error.status_code.must_equal 400
62
- end
63
- }
64
- end
65
-
66
- it 'Read/Write SB Queue Metadata GB18030' do
67
- GB18030TestStrings.get.each { |k,v|
68
- begin
69
- subject.create_queue queue_name, {
70
- :dead_lettering_on_message_expiration => v.encode("GB18030"),
71
- }
72
- flunk "No exception"
73
- rescue Azure::Core::Http::HTTPError => error
74
- error.status_code.must_equal 400
75
- end
76
- }
77
- end
78
-
79
- it 'Read/Write SB Queue message UTF-8' do
80
- GB18030TestStrings.get.each { |k,v|
81
- msg = Azure::ServiceBus::BrokeredMessage.new(v.encode("UTF-8"))
82
- subject.send_queue_message queue_name, msg
83
- retrieved = subject.read_delete_queue_message queue_name
84
- retrieved.body.force_encoding("UTF-8").must_equal v.encode("UTF-8")
85
- }
86
- end
87
-
88
- it 'Read/Write SB Queue message GB18030' do
89
- GB18030TestStrings.get.each { |k,v|
90
- msg = Azure::ServiceBus::BrokeredMessage.new(v.encode("GB18030"))
91
- subject.send_queue_message queue_name, msg
92
- retrieved = subject.read_delete_queue_message queue_name
93
- retrieved.body.force_encoding("GB18030").must_equal v.encode("GB18030")
94
- }
95
- end
96
-
97
- # it 'Read/Write SB Queue message Metadata UTF-8' do
98
- # GB18030TestStrings.get.each { |k,v|
99
- # msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
100
- # m.to = v.encode("UTF-8")
101
- # end
102
- # begin
103
- # subject.send_queue_message queue_name, msg
104
- # # Do not flunk here; the service appears to let some
105
- # # "bad" strings go through
106
- # rescue Azure::Core::Http::HTTPError => error
107
- # error.status_code.must_equal 500
108
- # end
109
- # }
110
- # end
111
-
112
- # it 'Read/Write SB Queue message Metadata GB18030' do
113
- # GB18030TestStrings.get.each { |k,v|
114
- # msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
115
- # m.to = v.encode("GB18030")
116
- # end
117
- # begin
118
- # subject.send_queue_message queue_name, msg
119
- # # Do not flunk here; the service appears to let some
120
- # # "bad" strings go through
121
- # rescue Azure::Core::Http::HTTPError => error
122
- # error.status_code.must_equal 500
123
- # end
124
- # }
125
- # end
126
-
127
- it 'Read/Write SB Queue Custom Property Key UTF-8' do
128
- GB18030TestStrings.get.each { |k,v|
129
- msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
130
- ("key" + v).encode("UTF-8") => "CustomStringProperty"
131
- })
132
- begin
133
- subject.send_queue_message queue_name, msg
134
- flunk "No exception"
135
- rescue Azure::Core::Http::HTTPError => error
136
- error.status_code.must_equal 400
137
- end
138
- }
139
- end
140
-
141
- it 'Read/Write SB Queue Custom Property Key GB18030' do
142
- GB18030TestStrings.get.each { |k,v|
143
- msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
144
- ("key" + v).encode("GB18030") => "CustomStringProperty",
145
- })
146
- begin
147
- subject.send_queue_message queue_name, msg
148
- flunk "No exception"
149
- rescue Azure::Core::Http::HTTPError => error
150
- error.status_code.must_equal 400
151
- end
152
- }
153
- end
154
-
155
- # it 'Read/Write SB Queue Custom Property Value UTF-8' do
156
- # GB18030TestStrings.get.each { |k,v|
157
- # msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
158
- # "key" => ("value" + v).encode("UTF-8")
159
- # })
160
-
161
- # begin
162
- # subject.send_queue_message queue_name, msg
163
- # end
164
- # }
165
- # end
166
-
167
- # it 'Read/Write SB Queue Custom Property Value GB18030' do
168
- # GB18030TestStrings.get.each { |k,v|
169
- # msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
170
- # "key" => ("value" + v).encode("GB18030")
171
- # })
172
- # begin
173
- # subject.send_queue_message queue_name, msg
174
- # retrieved = subject.read_delete_queue_message queue_name
175
- # # Do not flunk here; the service appears to let some
176
- # # "bad" strings go through
177
- # rescue Azure::Core::Http::HTTPError => error
178
- # error.status_code.must_equal 500
179
- # end
180
- # }
181
- # end
182
- end
@@ -1,101 +0,0 @@
1
- #-------------------------------------------------------------------------
2
- # # Copyright (c) Microsoft and contributors. All rights reserved.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- # http:#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
- #--------------------------------------------------------------------------
15
- require 'integration/test_helper'
16
-
17
- require 'azure/service_bus/brokered_message'
18
-
19
- class ScenarioHelper
20
- def self.out(s)
21
- print s + "\n" if false
22
- end
23
-
24
- def self.get_custom_properties(i)
25
- custom_properties = {}
26
- custom_properties['i'] = i
27
- custom_properties['test'] = Time.local(2001, i, 1)
28
- custom_properties['name'] = 'Test' + i.to_s
29
- custom_properties['meanname'] = "'\"Me`\\'&*<>!@#%^*)\n" + i.to_s
30
- custom_properties['int'] = 50 + i
31
- custom_properties['float'] = 3.14159 + i
32
- custom_properties['even'] = (i % 2 == 0)
33
- custom_properties
34
- end
35
-
36
- def self.create_issue_message(issue_id, issue_body, label)
37
- message = Azure::ServiceBus::BrokeredMessage.new(issue_body)
38
-
39
- message.correlation_id = 'correlationid' + label
40
- message.delivery_count = 1
41
- message.sequence_number = 12
42
- message.content_type = 'text/xml'
43
- message.label = label
44
- message.to = '1@1.com'
45
- message.message_id = issue_id
46
-
47
- custom_properties = ScenarioHelper.get_custom_properties issue_id.to_i
48
- custom_properties.each do |key, value|
49
- message.properties[key] = value
50
- end
51
-
52
- message
53
- end
54
-
55
- def self.compare_messages(expected,
56
- actual,
57
- custom_properties = nil)
58
- actual.body.must_equal expected.body
59
- actual.content_type.must_equal expected.content_type
60
- actual.correlation_id.must_equal expected.correlation_id
61
- actual.label.must_equal expected.label
62
- actual.message_id.must_equal expected.message_id
63
- actual.reply_to.must_equal expected.reply_to
64
- actual.reply_to_session_id.must_equal expected.reply_to_session_id
65
- actual.scheduled_enqueue_time_utc.must_equal(
66
- expected.scheduled_enqueue_time_utc
67
- )
68
- actual.session_id.must_equal expected.session_id
69
- actual.to.must_equal expected.to
70
-
71
- # Note: The following properties are controlled by the server,
72
- # so we cannot verify as much
73
- actual.delivery_count.must_be_kind_of Integer
74
- actual.sequence_number.must_be_kind_of Integer
75
- actual.enqueued_time_utc.must_be_kind_of Time
76
- actual.lock_token.must_be_kind_of String unless actual.lock_token.nil?
77
-
78
- actual.locked_until_utc.must_be_kind_of Time\
79
- unless actual.locked_until_utc.nil?
80
-
81
- if custom_properties.nil?
82
- expected_properties = expected.properties
83
- index = expected_properties['i']
84
- index = 1 if index.nil?
85
- custom_properties = get_custom_properties(index.to_i)
86
- end
87
-
88
- custom_properties.each do |key, value|
89
- ScenarioHelper.out key + ':' + value.to_s
90
- k_d = actual.properties[key.downcase]
91
- ScenarioHelper.out("#{k_d}:#{k_d.nil? ? '<nil>' : k_d.to_s}")
92
- if value != 'GUID'
93
- if !value.nil? && value.class == Time
94
- value.httpdate.must_equal k_d
95
- else
96
- value.must_equal(k_d)
97
- end
98
- end
99
- end
100
- end
101
- end
@@ -1,211 +0,0 @@
1
- #-------------------------------------------------------------------------
2
- # # Copyright (c) Microsoft and contributors. All rights reserved.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- # http://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
- #--------------------------------------------------------------------------
15
- require 'integration/test_helper'
16
-
17
- describe 'ServiceBus Subscriptions' do
18
- subject { Azure::ServiceBus::ServiceBusService.new }
19
- after { ServiceBusTopicNameHelper.clean }
20
- let(:topic){ ServiceBusTopicNameHelper.name }
21
- let(:subscription) { 'mySubscription' }
22
- let(:subscription_alternative) { 'mySubscription' }
23
- let(:description_alternative) {{
24
- :lock_duration => 'PT30S',
25
- :requires_session => true,
26
- :default_message_time_to_live => 'PT30M',
27
- :dead_lettering_on_message_expiration => true,
28
- :dead_lettering_on_filter_evaluation_exceptions => true,
29
- :max_delivery_count => 20,
30
- :enable_batched_operations => true
31
- }}
32
-
33
- before { subject.create_topic topic }
34
-
35
- it 'should be able to set description values to false' do
36
- s = Azure::ServiceBus::Subscription.new(subscription, {
37
- :requires_session => false
38
- })
39
-
40
- s.requires_session.must_equal false
41
- end
42
-
43
- it 'should be able to create a new subscription' do
44
- result = subject.create_subscription topic, subscription
45
- result.must_be :kind_of?, Azure::ServiceBus::Subscription
46
- result.name.must_equal subscription
47
- end
48
-
49
- it 'should be able to create a new subscription from a string and description Hash' do
50
- result = subject.create_subscription topic, subscription_alternative, description_alternative
51
- result.must_be :kind_of?, Azure::ServiceBus::Subscription
52
- result.name.must_equal subscription_alternative
53
-
54
- result.lock_duration.must_equal 30.0
55
- result.requires_session.must_equal description_alternative[:requires_session]
56
- result.default_message_time_to_live.must_equal 1800.0
57
- result.dead_lettering_on_message_expiration.must_equal description_alternative[:dead_lettering_on_message_expiration]
58
- result.dead_lettering_on_filter_evaluation_exceptions.must_equal description_alternative[:dead_lettering_on_filter_evaluation_exceptions]
59
- result.max_delivery_count.must_equal description_alternative[:max_delivery_count]
60
- result.enable_batched_operations.must_equal description_alternative[:enable_batched_operations]
61
- end
62
-
63
- it 'should be able to create a new subscription with objects' do
64
- subscriptionObject = Azure::ServiceBus::Subscription.new 'my_other_sub'
65
- subscriptionObject.topic = topic
66
- subscriptionObject.max_delivery_count = 3
67
-
68
- result = subject.create_subscription subscriptionObject
69
- result.must_be :kind_of?, Azure::ServiceBus::Subscription
70
- result.name.must_equal subscriptionObject.name
71
- result.max_delivery_count.must_equal subscriptionObject.max_delivery_count
72
-
73
- subject.delete_subscription result
74
- end
75
-
76
- describe 'when a subscription exists' do
77
- before { subject.create_subscription topic, subscription }
78
- it 'should be able to delete the subscription' do
79
- subject.delete_subscription topic, subscription
80
- end
81
-
82
- it 'should be able to get the subscription' do
83
- result = subject.get_subscription topic, subscription
84
- result.must_be :kind_of?, Azure::ServiceBus::Subscription
85
- result.name.must_equal subscription
86
- end
87
-
88
- it 'should be able to list subscriptions' do
89
- result = subject.list_subscriptions topic
90
- subscription_found = false
91
- result.each { |s|
92
- subscription_found = true if s.name == subscription
93
- }
94
- assert subscription_found, "list_subscriptions didn't include the expected subscription"
95
- end
96
-
97
- describe 'when there are messages' do
98
- let(:msg) {
99
- m = Azure::ServiceBus::BrokeredMessage.new('some message body', {:prop1 => 'val1'})
100
- m.to = 'me'
101
- m.label = 'my_label'
102
- m
103
- }
104
- before {
105
- subject.send_topic_message topic, msg
106
- }
107
-
108
- it 'should be able to peek lock a message' do
109
- retrieved = subject.peek_lock_subscription_message topic, subscription
110
-
111
- retrieved.to.must_equal msg.to
112
- retrieved.body.must_equal msg.body
113
- retrieved.label.must_equal msg.label
114
-
115
- retrieved = subject.read_delete_subscription_message topic, subscription, { :timeout => 1 }
116
- retrieved.must_be_nil
117
- end
118
-
119
- it 'should be able to read delete a message' do
120
- retrieved = subject.read_delete_subscription_message topic, subscription
121
-
122
- retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
123
- retrieved.body.must_equal msg.body
124
- retrieved.to.must_equal msg.to
125
-
126
- # it should be deleted
127
- retrieved = subject.read_delete_subscription_message topic, subscription, { :timeout => 1 }
128
- retrieved.must_be_nil
129
- end
130
-
131
- it 'should be able to unlock a message' do
132
- retrieved = subject.peek_lock_subscription_message topic, subscription, { :timeout => 1 }
133
- retrieved.body.must_equal msg.body
134
-
135
- # There shouldn't be an available message in the queue
136
- retrieved2 = subject.peek_lock_subscription_message topic, subscription, { :timeout => 1 }
137
- retrieved2.must_be_nil
138
-
139
- # Unlock the message
140
- res = subject.unlock_subscription_message retrieved
141
- res.must_be_nil
142
-
143
- # The message should be available once again
144
- retrieved = subject.peek_lock_subscription_message topic, subscription, { :timeout => 1 }
145
- retrieved.body.must_equal msg.body
146
- end
147
-
148
- it 'should be able to read a message from a subscription' do
149
- subject.send_topic_message topic, msg
150
- retrieved = subject.receive_subscription_message topic, subscription
151
-
152
- retrieved.to.must_equal msg.to
153
- retrieved.body.must_equal msg.body
154
- retrieved.label.must_equal msg.label
155
- end
156
- end
157
-
158
- describe 'when there are multiple subscriptions' do
159
- let(:subscription1) { ServiceBusTopicNameHelper.name }
160
- let(:subscription2) { ServiceBusTopicNameHelper.name }
161
-
162
- before {
163
- subject.create_subscription topic, subscription1
164
- subject.create_subscription topic, subscription2
165
- }
166
-
167
- it 'should be able to list subscriptions' do
168
- result = subject.list_subscriptions topic
169
-
170
- subscription_found = false
171
- subscription1_found = false
172
- subscription2_found = false
173
-
174
- result.each { |s|
175
- subscription_found = true if s.name == subscription
176
- subscription1_found = true if s.name == subscription1
177
- subscription2_found = true if s.name == subscription2
178
- }
179
-
180
- assert (subscription_found and subscription1_found and subscription2_found), "list_subscriptions didn't include the expected subscriptions"
181
- end
182
-
183
- it 'should be able to use $skip token' do
184
- result = subject.list_subscriptions topic
185
- result2 = subject.list_subscriptions topic, { :skip => 1 }
186
- result2.length.must_equal result.length - 1
187
- result2.continuation_token.must_be_nil
188
- result2[0].id.must_equal result[1].id
189
- end
190
-
191
- it 'should be able to use $top token' do
192
- result = subject.list_subscriptions topic
193
- result.length.wont_equal 1
194
- result.continuation_token.must_be_nil
195
-
196
- result2 = subject.list_subscriptions topic, { :top => 1 }
197
- result2.continuation_token.wont_be_nil
198
- result2.continuation_token[:skip].wont_be_nil
199
- result2.continuation_token[:top].wont_be_nil
200
- result2.length.must_equal 1
201
- end
202
-
203
- it 'should be able to use $skip and $top token together' do
204
- result = subject.list_subscriptions topic
205
- result2 = subject.list_subscriptions topic, { :skip => 1, :top => 1 }
206
- result2.length.must_equal 1
207
- result2[0].id.must_equal result[1].id
208
- end
209
- end
210
- end
211
- end