azure 0.6.0 → 0.6.1

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 (283) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -11
  3. data/.travis.yml +11 -33
  4. data/ChangeLog.txt +20 -5
  5. data/Gemfile +15 -15
  6. data/README.md +541 -537
  7. data/Rakefile +129 -127
  8. data/azure.gemspec +43 -42
  9. data/lib/azure.rb +52 -51
  10. data/lib/azure/base_management/affinity_group.rb +32 -32
  11. data/lib/azure/base_management/base_management_service.rb +234 -234
  12. data/lib/azure/base_management/location.rb +27 -27
  13. data/lib/azure/base_management/management_http_request.rb +171 -148
  14. data/lib/azure/base_management/serialization.rb +129 -129
  15. data/lib/azure/base_management/sql_management_http_request.rb +45 -0
  16. data/lib/azure/blob/blob.rb +31 -31
  17. data/lib/azure/blob/blob_service.rb +1423 -1423
  18. data/lib/azure/blob/block.rb +30 -30
  19. data/lib/azure/blob/container.rb +31 -31
  20. data/lib/azure/blob/serialization.rb +284 -284
  21. data/lib/azure/cloud_service_management/cloud_service.rb +38 -31
  22. data/lib/azure/cloud_service_management/cloud_service_management_service.rb +134 -125
  23. data/lib/azure/cloud_service_management/serialization.rb +101 -63
  24. data/lib/azure/core.rb +39 -36
  25. data/lib/azure/core/auth/authorizer.rb +36 -36
  26. data/lib/azure/core/auth/shared_key.rb +110 -110
  27. data/lib/azure/core/auth/shared_key_lite.rb +48 -48
  28. data/lib/azure/core/auth/signer.rb +48 -48
  29. data/lib/azure/core/configuration.rb +211 -184
  30. data/lib/azure/core/error.rb +22 -22
  31. data/lib/azure/core/filtered_service.rb +43 -43
  32. data/lib/azure/core/http/debug_filter.rb +35 -35
  33. data/lib/azure/core/http/http_error.rb +88 -88
  34. data/lib/azure/core/http/http_filter.rb +52 -52
  35. data/lib/azure/core/http/http_request.rb +157 -157
  36. data/lib/azure/core/http/http_response.rb +140 -140
  37. data/lib/azure/core/http/retry_policy.rb +73 -73
  38. data/lib/azure/core/http/signer_filter.rb +33 -33
  39. data/lib/azure/core/service.rb +62 -62
  40. data/lib/azure/core/signed_service.rb +42 -42
  41. data/lib/azure/core/utility.rb +190 -190
  42. data/lib/azure/queue/message.rb +29 -29
  43. data/lib/azure/queue/queue.rb +28 -28
  44. data/lib/azure/queue/queue_service.rb +567 -567
  45. data/lib/azure/queue/serialization.rb +106 -106
  46. data/lib/azure/service/access_policy.rb +25 -25
  47. data/lib/azure/service/enumeration_results.rb +20 -20
  48. data/lib/azure/service/logging.rb +31 -31
  49. data/lib/azure/service/metrics.rb +30 -30
  50. data/lib/azure/service/retention_policy.rb +24 -24
  51. data/lib/azure/service/serialization.rb +239 -239
  52. data/lib/azure/service/signed_identifier.rb +29 -29
  53. data/lib/azure/service/storage_service.rb +78 -78
  54. data/lib/azure/service/storage_service_properties.rb +31 -31
  55. data/lib/azure/service_bus/action.rb +21 -21
  56. data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
  57. data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
  58. data/lib/azure/service_bus/brokered_message.rb +123 -123
  59. data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
  60. data/lib/azure/service_bus/correlation_filter.rb +45 -45
  61. data/lib/azure/service_bus/empty_rule_action.rb +29 -29
  62. data/lib/azure/service_bus/false_filter.rb +38 -38
  63. data/lib/azure/service_bus/filter.rb +21 -21
  64. data/lib/azure/service_bus/interval.rb +103 -103
  65. data/lib/azure/service_bus/queue.rb +229 -229
  66. data/lib/azure/service_bus/resource.rb +108 -108
  67. data/lib/azure/service_bus/rule.rb +97 -97
  68. data/lib/azure/service_bus/rule_aspect.rb +34 -34
  69. data/lib/azure/service_bus/serialization.rb +160 -160
  70. data/lib/azure/service_bus/service_bus_service.rb +828 -828
  71. data/lib/azure/service_bus/sql_filter.rb +50 -50
  72. data/lib/azure/service_bus/sql_rule_action.rb +50 -50
  73. data/lib/azure/service_bus/subscription.rb +183 -183
  74. data/lib/azure/service_bus/topic.rb +186 -186
  75. data/lib/azure/service_bus/true_filter.rb +38 -38
  76. data/lib/azure/sql_database_management/serialization.rb +111 -90
  77. data/lib/azure/sql_database_management/sql_database.rb +31 -31
  78. data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -202
  79. data/lib/azure/storage_management/serialization.rb +190 -50
  80. data/lib/azure/storage_management/storage_account.rb +40 -29
  81. data/lib/azure/storage_management/storage_management_service.rb +166 -99
  82. data/lib/azure/table/auth/shared_key.rb +92 -92
  83. data/lib/azure/table/auth/shared_key_lite.rb +44 -44
  84. data/lib/azure/table/batch.rb +329 -329
  85. data/lib/azure/table/batch_response.rb +118 -118
  86. data/lib/azure/table/edmtype.rb +126 -126
  87. data/lib/azure/table/entity.rb +30 -30
  88. data/lib/azure/table/guid.rb +23 -23
  89. data/lib/azure/table/query.rb +111 -111
  90. data/lib/azure/table/serialization.rb +107 -107
  91. data/lib/azure/table/table_service.rb +559 -559
  92. data/lib/azure/version.rb +30 -30
  93. data/lib/azure/virtual_machine_image_management/serialization.rb +49 -49
  94. data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +27 -27
  95. data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +27 -27
  96. data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +66 -66
  97. data/lib/azure/virtual_machine_management/serialization.rb +257 -247
  98. data/lib/azure/virtual_machine_management/virtual_machine.rb +41 -57
  99. data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +317 -304
  100. data/lib/azure/virtual_network_management/serialization.rb +186 -186
  101. data/lib/azure/virtual_network_management/virtual_network.rb +36 -36
  102. data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
  103. data/test/fixtures/affinity_group.xml +33 -33
  104. data/test/fixtures/all_containers.xml +20 -20
  105. data/test/fixtures/all_tables.xml +22 -22
  106. data/test/fixtures/certificate.pem +21 -21
  107. data/test/fixtures/container_acl.xml +11 -11
  108. data/test/fixtures/create_sql_database_server.xml +1 -1
  109. data/test/fixtures/create_storage_desc_error.xml +5 -0
  110. data/test/fixtures/create_storage_extendedprop_error.xml +8 -0
  111. data/test/fixtures/create_storage_extendedpropname_error.xml +6 -0
  112. data/test/fixtures/create_storage_full_error.xml +6 -0
  113. data/test/fixtures/create_storage_label_error.xml +5 -0
  114. data/test/fixtures/create_storage_location_error.xml +5 -0
  115. data/test/fixtures/create_storage_name_error.xml +6 -0
  116. data/test/fixtures/create_table_response_entry.xml +15 -15
  117. data/test/fixtures/delete_storage_container_error.xml +5 -0
  118. data/test/fixtures/delete_storage_error.xml +5 -0
  119. data/test/fixtures/deployment_error.xml +5 -5
  120. data/test/fixtures/get_storage_account_error.xml +5 -0
  121. data/test/fixtures/get_storage_account_properties.xml +32 -0
  122. data/test/fixtures/get_storage_account_properties_new.xml +32 -0
  123. data/test/fixtures/http_error.xml +5 -5
  124. data/test/fixtures/insert_entity_response_entry.xml +25 -25
  125. data/test/fixtures/list_affinity_groups.xml +22 -22
  126. data/test/fixtures/list_blobs.xml +120 -120
  127. data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
  128. data/test/fixtures/list_blocks_all.xml +22 -22
  129. data/test/fixtures/list_blocks_committed.xml +12 -12
  130. data/test/fixtures/list_cloud_services.xml +38 -28
  131. data/test/fixtures/list_containers.xml +37 -37
  132. data/test/fixtures/list_firewall_management_endpoint.xml +27 -0
  133. data/test/fixtures/list_images.xml +110 -110
  134. data/test/fixtures/list_locations.xml +62 -62
  135. data/test/fixtures/list_page_ranges.xml +10 -10
  136. data/test/fixtures/list_sql_database.xml +36 -36
  137. data/test/fixtures/list_sql_server_firewall.xml +23 -23
  138. data/test/fixtures/list_storage_accounts.xml +45 -45
  139. data/test/fixtures/list_virtual_networks.xml +92 -92
  140. data/test/fixtures/logging.xml +11 -11
  141. data/test/fixtures/management_certificate.pem +55 -55
  142. data/test/fixtures/messages.xml +12 -12
  143. data/test/fixtures/metrics.xml +10 -10
  144. data/test/fixtures/privatekey.key +28 -28
  145. data/test/fixtures/query_entities_empty_response.xml +7 -7
  146. data/test/fixtures/query_entities_response.xml +45 -45
  147. data/test/fixtures/queue_service_properties.xml +22 -22
  148. data/test/fixtures/queue_service_properties_original.xml +19 -19
  149. data/test/fixtures/queues.xml +16 -16
  150. data/test/fixtures/retention_policy.xml +5 -5
  151. data/test/fixtures/sb_default_create_queue_response.xml +23 -23
  152. data/test/fixtures/sb_default_create_topic_response.xml +18 -18
  153. data/test/fixtures/sb_get_access_token_response.txt +1 -1
  154. data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
  155. data/test/fixtures/storage_service_properties.xml +23 -23
  156. data/test/fixtures/update_storage_account.xml +16 -0
  157. data/test/fixtures/update_storage_error.xml +5 -0
  158. data/test/fixtures/updated_storage_accounts.xml +53 -0
  159. data/test/fixtures/virtual_machine.xml +108 -107
  160. data/test/fixtures/windows_virtual_machine.xml +106 -106
  161. data/test/integration/affinity_group/Affinity_test.rb +55 -55
  162. data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
  163. data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
  164. data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
  165. data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
  166. data/test/integration/blob/blob_gb18030_test.rb +199 -199
  167. data/test/integration/blob/blob_metadata_test.rb +75 -75
  168. data/test/integration/blob/blob_pages_test.rb +119 -119
  169. data/test/integration/blob/blob_properties_test.rb +77 -77
  170. data/test/integration/blob/block_blob_test.rb +254 -254
  171. data/test/integration/blob/container/container_acl_test.rb +69 -69
  172. data/test/integration/blob/container/container_metadata_test.rb +50 -50
  173. data/test/integration/blob/container/create_container_test.rb +60 -60
  174. data/test/integration/blob/container/delete_container_test.rb +39 -39
  175. data/test/integration/blob/container/get_container_properties_test.rb +48 -48
  176. data/test/integration/blob/container/list_containers_test.rb +79 -79
  177. data/test/integration/blob/container/root_container_test.rb +53 -53
  178. data/test/integration/blob/copy_blob_test.rb +113 -113
  179. data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
  180. data/test/integration/blob/create_page_blob_test.rb +83 -83
  181. data/test/integration/blob/delete_blob_test.rb +159 -159
  182. data/test/integration/blob/get_blob_test.rb +65 -65
  183. data/test/integration/blob/informative_errors_test.rb +38 -38
  184. data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
  185. data/test/integration/blob/lease/break_lease_test.rb +40 -40
  186. data/test/integration/blob/lease/release_lease_test.rb +40 -40
  187. data/test/integration/blob/lease/renew_lease_test.rb +42 -42
  188. data/test/integration/blob/list_blobs_test.rb +113 -113
  189. data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
  190. data/test/integration/database/create_sql_server_test.rb +53 -57
  191. data/test/integration/database/delete_sql_server_firewall_test.rb +70 -72
  192. data/test/integration/database/delete_sql_server_test.rb +58 -63
  193. data/test/integration/database/list_sql_server_firewall_test.rb +45 -46
  194. data/test/integration/database/list_sql_servers_test.rb +44 -45
  195. data/test/integration/database/reset_password_sql_server_test.rb +55 -56
  196. data/test/integration/location/Location_List_test.rb +39 -39
  197. data/test/integration/queue/clear_messages_test.rb +42 -42
  198. data/test/integration/queue/create_message_test.rb +75 -75
  199. data/test/integration/queue/create_queue_test.rb +50 -50
  200. data/test/integration/queue/delete_message_test.rb +67 -67
  201. data/test/integration/queue/delete_queue_test.rb +45 -45
  202. data/test/integration/queue/informative_errors_test.rb +41 -41
  203. data/test/integration/queue/list_messages_encoded_test.rb +79 -79
  204. data/test/integration/queue/list_messages_test.rb +79 -79
  205. data/test/integration/queue/list_queues_test.rb +44 -44
  206. data/test/integration/queue/peek_messages_test.rb +59 -59
  207. data/test/integration/queue/queue_gb18030_test.rb +131 -131
  208. data/test/integration/queue/queue_metadata_test.rb +40 -40
  209. data/test/integration/queue/update_message_test.rb +74 -74
  210. data/test/integration/service_bus/informative_errors_test.rb +36 -36
  211. data/test/integration/service_bus/queues_scenario_test.rb +200 -200
  212. data/test/integration/service_bus/queues_test.rb +265 -265
  213. data/test/integration/service_bus/rules_test.rb +144 -144
  214. data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
  215. data/test/integration/service_bus/scenario_test.rb +101 -101
  216. data/test/integration/service_bus/subscriptions_test.rb +211 -211
  217. data/test/integration/service_bus/topics_scenario_test.rb +406 -406
  218. data/test/integration/service_bus/topics_test.rb +129 -129
  219. data/test/integration/storage_management/storage_management_test.rb +160 -0
  220. data/test/integration/table/create_table_test.rb +35 -35
  221. data/test/integration/table/delete_entity_batch_test.rb +106 -106
  222. data/test/integration/table/delete_entity_test.rb +93 -93
  223. data/test/integration/table/delete_table_test.rb +39 -39
  224. data/test/integration/table/get_table_test.rb +36 -36
  225. data/test/integration/table/informative_errors_test.rb +38 -38
  226. data/test/integration/table/insert_entity_batch_test.rb +99 -99
  227. data/test/integration/table/insert_entity_test.rb +87 -87
  228. data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
  229. data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
  230. data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
  231. data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
  232. data/test/integration/table/merge_entity_batch_test.rb +127 -127
  233. data/test/integration/table/merge_entity_test.rb +112 -112
  234. data/test/integration/table/query_entities_test.rb +194 -194
  235. data/test/integration/table/query_tables_test.rb +42 -42
  236. data/test/integration/table/query_test.rb +250 -250
  237. data/test/integration/table/table_acl_test.rb +51 -51
  238. data/test/integration/table/table_gb18030_test.rb +355 -355
  239. data/test/integration/table/update_entity_batch_test.rb +148 -148
  240. data/test/integration/table/update_entity_test.rb +130 -130
  241. data/test/integration/test_helper.rb +42 -44
  242. data/test/integration/vm/VM_Create_test.rb +213 -235
  243. data/test/integration/vm/VM_Delete_test.rb +55 -55
  244. data/test/integration/vm/VM_List_test.rb +71 -71
  245. data/test/integration/vm/VM_ShutDown_test.rb +59 -59
  246. data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
  247. data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
  248. data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
  249. data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
  250. data/test/support/env.rb +19 -19
  251. data/test/support/fixtures.rb +36 -36
  252. data/test/support/name_generator.rb +160 -160
  253. data/test/support/stubs.rb +42 -42
  254. data/test/support/virtual_machine_name_generator.rb +117 -127
  255. data/test/support/virtual_network_helper.rb +73 -73
  256. data/test/test_helper.rb +52 -52
  257. data/test/unit/affinity_group/affinity_group_test.rb +192 -192
  258. data/test/unit/affinity_group/serialization_test.rb +88 -88
  259. data/test/unit/base_management/location_test.rb +57 -57
  260. data/test/unit/blob/blob_service_test.rb +1946 -1946
  261. data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
  262. data/test/unit/cloud_service_management/serialization_test.rb +169 -76
  263. data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
  264. data/test/unit/core/auth/shared_key_test.rb +58 -58
  265. data/test/unit/core/auth/signer_test.rb +30 -30
  266. data/test/unit/core/http/http_error_test.rb +57 -57
  267. data/test/unit/core/http/http_request_test.rb +66 -66
  268. data/test/unit/core/http/http_response_test.rb +45 -45
  269. data/test/unit/core/http/retry_policy_test.rb +23 -23
  270. data/test/unit/database/serialization_test.rb +97 -95
  271. data/test/unit/database/sql_database_server_service_test.rb +288 -152
  272. data/test/unit/service/serialization_test.rb +501 -501
  273. data/test/unit/service/storage_service_test.rb +290 -290
  274. data/test/unit/storage_management/serialization_test.rb +232 -65
  275. data/test/unit/storage_management/storage_management_service_test.rb +233 -94
  276. data/test/unit/table/edmtype_test.rb +107 -107
  277. data/test/unit/virtual_machine_image_management/serialization_test.rb +34 -34
  278. data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +60 -60
  279. data/test/unit/virtual_machine_management/serialization_test.rb +119 -116
  280. data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +383 -386
  281. data/test/unit/vnet/serialization_test.rb +187 -187
  282. data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
  283. metadata +55 -23
@@ -1,145 +1,145 @@
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 Rules" do
18
- subject { Azure::ServiceBus::ServiceBusService.new }
19
- after { ServiceBusTopicNameHelper.clean }
20
- let(:topic){ ServiceBusTopicNameHelper.name }
21
- let(:subscription){ "mySubscription" }
22
- let(:rule){ "myRule" }
23
-
24
- before {
25
- subject.create_topic topic
26
- subject.create_subscription topic, subscription
27
- }
28
-
29
- it "should be able to create a new rule" do
30
- result = subject.create_rule topic, subscription, rule
31
- result.must_be :kind_of?, Azure::ServiceBus::Rule
32
- result.filter.must_be_kind_of Azure::ServiceBus::TrueFilter
33
- result.filter.sql_expression.must_equal "1=1"
34
- result.filter.compatibility_level.must_equal 20
35
- end
36
-
37
- it "should be able to create a new rule object" do
38
- ruleObject = Azure::ServiceBus::Rule.new "my_other_rule"
39
- ruleObject.subscription = subscription
40
- ruleObject.topic = topic
41
-
42
- result = subject.create_rule ruleObject
43
- result.must_be :kind_of?, Azure::ServiceBus::Rule
44
- result.filter.must_be_kind_of Azure::ServiceBus::TrueFilter
45
- result.filter.sql_expression.must_equal "1=1"
46
- result.filter.compatibility_level.must_equal 20
47
-
48
- subject.delete_rule result
49
- end
50
-
51
- it "should be able to create a new rule with an action" do
52
- ruleObject = Azure::ServiceBus::Rule.new "my_other_rule"
53
- ruleObject.subscription = subscription
54
- ruleObject.topic = topic
55
- ruleObject.filter = Azure::ServiceBus::SqlFilter.new({ :sql_expression => "MyProperty='XYZ'" })
56
- ruleObject.action = Azure::ServiceBus::SqlRuleAction.new({ :sql_expression => "set MyProperty2 = 'ABC'" })
57
-
58
- result = subject.create_rule ruleObject
59
- result.must_be :kind_of?, Azure::ServiceBus::Rule
60
- result.filter.must_be_kind_of Azure::ServiceBus::SqlFilter
61
- result.filter.sql_expression.must_equal "MyProperty='XYZ'"
62
- result.filter.compatibility_level.must_equal 20
63
-
64
- result.action.must_be_kind_of Azure::ServiceBus::SqlRuleAction
65
- result.action.sql_expression.must_equal "set MyProperty2 = 'ABC'"
66
- result.action.compatibility_level.must_equal 20
67
-
68
- subject.delete_rule result
69
- end
70
-
71
- it "should be able to create a new rule with a correlation filter" do
72
- ruleObject = Azure::ServiceBus::Rule.new "my_other_rule"
73
- ruleObject.subscription = subscription
74
- ruleObject.topic = topic
75
- ruleObject.filter = Azure::ServiceBus::CorrelationFilter.new({ :correlation_id => "identifier" })
76
- ruleObject.action = Azure::ServiceBus::SqlRuleAction.new({ :sql_expression => "set MyProperty2 = 'ABC'" })
77
-
78
- result = subject.create_rule ruleObject
79
- result.must_be :kind_of?, Azure::ServiceBus::Rule
80
- result.filter.must_be_kind_of Azure::ServiceBus::CorrelationFilter
81
- result.filter.correlation_id.must_equal "identifier"
82
-
83
- result.action.must_be_kind_of Azure::ServiceBus::SqlRuleAction
84
- result.action.sql_expression.must_equal "set MyProperty2 = 'ABC'"
85
- result.action.compatibility_level.must_equal 20
86
-
87
- subject.delete_rule result
88
- end
89
-
90
- describe "when a rule exists" do
91
- before { subject.create_rule topic, subscription, rule }
92
-
93
- it "should be able to delete rules" do
94
- subject.delete_rule topic, subscription, rule
95
- end
96
-
97
- it "should be able to get rules" do
98
- result = subject.get_rule topic, subscription, rule
99
- result.must_be :kind_of?, Azure::ServiceBus::Rule
100
- result.filter.must_be_kind_of Azure::ServiceBus::TrueFilter
101
- result.filter.sql_expression.must_equal "1=1"
102
- result.filter.compatibility_level.must_equal 20
103
- end
104
-
105
- it "should be able to list rules" do
106
- result = subject.list_rules topic, subscription
107
- rule_found = false
108
- result.each { |r|
109
- rule_found = true if r.name == rule
110
- }
111
- assert rule_found, "list_rules didn't include the expected rule"
112
- end
113
-
114
- describe 'when multiple rules exist' do
115
- let(:rule1) { "myRule1" }
116
- let(:rule2) { "myRule2" }
117
- before {
118
- subject.create_rule topic, subscription, rule1
119
- subject.create_rule topic, subscription, rule2
120
- }
121
-
122
- it "should be able to use $skip token" do
123
- result = subject.list_rules topic, subscription
124
- result2 = subject.list_rules topic, subscription, { :skip => 1 }
125
- result2.length.must_equal result.length - 1
126
- result2[0].id.must_equal result[1].id
127
- end
128
-
129
- it "should be able to use $top token" do
130
- result = subject.list_rules topic, subscription
131
- result.length.wont_equal 1
132
-
133
- result2 = subject.list_rules topic, subscription, { :top => 1 }
134
- result2.length.must_equal 1
135
- end
136
-
137
- it "should be able to use $skip and $top token together" do
138
- result = subject.list_rules topic, subscription
139
- result2 = subject.list_rules topic, subscription, { :skip => 1, :top => 1 }
140
- result2.length.must_equal 1
141
- result2[0].id.must_equal result[1].id
142
- end
143
- end
144
- end
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 Rules" do
18
+ subject { Azure::ServiceBus::ServiceBusService.new }
19
+ after { ServiceBusTopicNameHelper.clean }
20
+ let(:topic){ ServiceBusTopicNameHelper.name }
21
+ let(:subscription){ "mySubscription" }
22
+ let(:rule){ "myRule" }
23
+
24
+ before {
25
+ subject.create_topic topic
26
+ subject.create_subscription topic, subscription
27
+ }
28
+
29
+ it "should be able to create a new rule" do
30
+ result = subject.create_rule topic, subscription, rule
31
+ result.must_be :kind_of?, Azure::ServiceBus::Rule
32
+ result.filter.must_be_kind_of Azure::ServiceBus::TrueFilter
33
+ result.filter.sql_expression.must_equal "1=1"
34
+ result.filter.compatibility_level.must_equal 20
35
+ end
36
+
37
+ it "should be able to create a new rule object" do
38
+ ruleObject = Azure::ServiceBus::Rule.new "my_other_rule"
39
+ ruleObject.subscription = subscription
40
+ ruleObject.topic = topic
41
+
42
+ result = subject.create_rule ruleObject
43
+ result.must_be :kind_of?, Azure::ServiceBus::Rule
44
+ result.filter.must_be_kind_of Azure::ServiceBus::TrueFilter
45
+ result.filter.sql_expression.must_equal "1=1"
46
+ result.filter.compatibility_level.must_equal 20
47
+
48
+ subject.delete_rule result
49
+ end
50
+
51
+ it "should be able to create a new rule with an action" do
52
+ ruleObject = Azure::ServiceBus::Rule.new "my_other_rule"
53
+ ruleObject.subscription = subscription
54
+ ruleObject.topic = topic
55
+ ruleObject.filter = Azure::ServiceBus::SqlFilter.new({ :sql_expression => "MyProperty='XYZ'" })
56
+ ruleObject.action = Azure::ServiceBus::SqlRuleAction.new({ :sql_expression => "set MyProperty2 = 'ABC'" })
57
+
58
+ result = subject.create_rule ruleObject
59
+ result.must_be :kind_of?, Azure::ServiceBus::Rule
60
+ result.filter.must_be_kind_of Azure::ServiceBus::SqlFilter
61
+ result.filter.sql_expression.must_equal "MyProperty='XYZ'"
62
+ result.filter.compatibility_level.must_equal 20
63
+
64
+ result.action.must_be_kind_of Azure::ServiceBus::SqlRuleAction
65
+ result.action.sql_expression.must_equal "set MyProperty2 = 'ABC'"
66
+ result.action.compatibility_level.must_equal 20
67
+
68
+ subject.delete_rule result
69
+ end
70
+
71
+ it "should be able to create a new rule with a correlation filter" do
72
+ ruleObject = Azure::ServiceBus::Rule.new "my_other_rule"
73
+ ruleObject.subscription = subscription
74
+ ruleObject.topic = topic
75
+ ruleObject.filter = Azure::ServiceBus::CorrelationFilter.new({ :correlation_id => "identifier" })
76
+ ruleObject.action = Azure::ServiceBus::SqlRuleAction.new({ :sql_expression => "set MyProperty2 = 'ABC'" })
77
+
78
+ result = subject.create_rule ruleObject
79
+ result.must_be :kind_of?, Azure::ServiceBus::Rule
80
+ result.filter.must_be_kind_of Azure::ServiceBus::CorrelationFilter
81
+ result.filter.correlation_id.must_equal "identifier"
82
+
83
+ result.action.must_be_kind_of Azure::ServiceBus::SqlRuleAction
84
+ result.action.sql_expression.must_equal "set MyProperty2 = 'ABC'"
85
+ result.action.compatibility_level.must_equal 20
86
+
87
+ subject.delete_rule result
88
+ end
89
+
90
+ describe "when a rule exists" do
91
+ before { subject.create_rule topic, subscription, rule }
92
+
93
+ it "should be able to delete rules" do
94
+ subject.delete_rule topic, subscription, rule
95
+ end
96
+
97
+ it "should be able to get rules" do
98
+ result = subject.get_rule topic, subscription, rule
99
+ result.must_be :kind_of?, Azure::ServiceBus::Rule
100
+ result.filter.must_be_kind_of Azure::ServiceBus::TrueFilter
101
+ result.filter.sql_expression.must_equal "1=1"
102
+ result.filter.compatibility_level.must_equal 20
103
+ end
104
+
105
+ it "should be able to list rules" do
106
+ result = subject.list_rules topic, subscription
107
+ rule_found = false
108
+ result.each { |r|
109
+ rule_found = true if r.name == rule
110
+ }
111
+ assert rule_found, "list_rules didn't include the expected rule"
112
+ end
113
+
114
+ describe 'when multiple rules exist' do
115
+ let(:rule1) { "myRule1" }
116
+ let(:rule2) { "myRule2" }
117
+ before {
118
+ subject.create_rule topic, subscription, rule1
119
+ subject.create_rule topic, subscription, rule2
120
+ }
121
+
122
+ it "should be able to use $skip token" do
123
+ result = subject.list_rules topic, subscription
124
+ result2 = subject.list_rules topic, subscription, { :skip => 1 }
125
+ result2.length.must_equal result.length - 1
126
+ result2[0].id.must_equal result[1].id
127
+ end
128
+
129
+ it "should be able to use $top token" do
130
+ result = subject.list_rules topic, subscription
131
+ result.length.wont_equal 1
132
+
133
+ result2 = subject.list_rules topic, subscription, { :top => 1 }
134
+ result2.length.must_equal 1
135
+ end
136
+
137
+ it "should be able to use $skip and $top token together" do
138
+ result = subject.list_rules topic, subscription
139
+ result2 = subject.list_rules topic, subscription, { :skip => 1, :top => 1 }
140
+ result2.length.must_equal 1
141
+ result2[0].id.must_equal result[1].id
142
+ end
143
+ end
144
+ end
145
145
  end
@@ -1,182 +1,182 @@
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
+ #-------------------------------------------------------------------------
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