stuartpreston-azure-sdk-for-ruby 0.7.1 → 0.7.2

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 (290) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -11
  3. data/.travis.yml +10 -10
  4. data/ChangeLog.txt +70 -68
  5. data/Gemfile +15 -15
  6. data/README.md +618 -618
  7. data/Rakefile +133 -133
  8. data/azure.gemspec +44 -44
  9. data/lib/azure.rb +52 -52
  10. data/lib/azure/base_management/affinity_group.rb +32 -32
  11. data/lib/azure/base_management/base_management_service.rb +304 -304
  12. data/lib/azure/base_management/location.rb +27 -27
  13. data/lib/azure/base_management/management_http_request.rb +171 -171
  14. data/lib/azure/base_management/serialization.rb +129 -129
  15. data/lib/azure/base_management/sql_management_http_request.rb +45 -45
  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 -38
  22. data/lib/azure/cloud_service_management/cloud_service_management_service.rb +140 -140
  23. data/lib/azure/cloud_service_management/serialization.rb +117 -117
  24. data/lib/azure/core.rb +39 -39
  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 -211
  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/cors.rb +11 -11
  48. data/lib/azure/service/cors_rule.rb +15 -15
  49. data/lib/azure/service/enumeration_results.rb +20 -20
  50. data/lib/azure/service/logging.rb +31 -31
  51. data/lib/azure/service/metrics.rb +30 -30
  52. data/lib/azure/service/retention_policy.rb +24 -24
  53. data/lib/azure/service/serialization.rb +297 -297
  54. data/lib/azure/service/signed_identifier.rb +29 -29
  55. data/lib/azure/service/storage_service.rb +82 -82
  56. data/lib/azure/service/storage_service_properties.rb +37 -37
  57. data/lib/azure/service_bus/action.rb +21 -21
  58. data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
  59. data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
  60. data/lib/azure/service_bus/brokered_message.rb +123 -123
  61. data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
  62. data/lib/azure/service_bus/correlation_filter.rb +45 -45
  63. data/lib/azure/service_bus/empty_rule_action.rb +29 -29
  64. data/lib/azure/service_bus/false_filter.rb +38 -38
  65. data/lib/azure/service_bus/filter.rb +21 -21
  66. data/lib/azure/service_bus/interval.rb +103 -103
  67. data/lib/azure/service_bus/queue.rb +229 -229
  68. data/lib/azure/service_bus/relay.rb +87 -87
  69. data/lib/azure/service_bus/resource.rb +108 -108
  70. data/lib/azure/service_bus/rule.rb +97 -97
  71. data/lib/azure/service_bus/rule_aspect.rb +34 -34
  72. data/lib/azure/service_bus/serialization.rb +161 -161
  73. data/lib/azure/service_bus/service_bus_service.rb +896 -896
  74. data/lib/azure/service_bus/sql_filter.rb +50 -50
  75. data/lib/azure/service_bus/sql_rule_action.rb +50 -50
  76. data/lib/azure/service_bus/subscription.rb +183 -183
  77. data/lib/azure/service_bus/topic.rb +186 -186
  78. data/lib/azure/service_bus/true_filter.rb +38 -38
  79. data/lib/azure/sql_database_management/serialization.rb +111 -111
  80. data/lib/azure/sql_database_management/sql_database.rb +31 -31
  81. data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -200
  82. data/lib/azure/storage_management/serialization.rb +184 -184
  83. data/lib/azure/storage_management/storage_account.rb +40 -40
  84. data/lib/azure/storage_management/storage_management_service.rb +166 -166
  85. data/lib/azure/table/auth/shared_key.rb +92 -92
  86. data/lib/azure/table/auth/shared_key_lite.rb +44 -44
  87. data/lib/azure/table/batch.rb +329 -329
  88. data/lib/azure/table/batch_response.rb +118 -118
  89. data/lib/azure/table/edmtype.rb +126 -126
  90. data/lib/azure/table/entity.rb +30 -30
  91. data/lib/azure/table/guid.rb +23 -23
  92. data/lib/azure/table/query.rb +111 -111
  93. data/lib/azure/table/serialization.rb +107 -107
  94. data/lib/azure/table/table_service.rb +559 -559
  95. data/lib/azure/version.rb +31 -31
  96. data/lib/azure/virtual_machine_image_management/serialization.rb +66 -66
  97. data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +25 -25
  98. data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +25 -25
  99. data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +94 -94
  100. data/lib/azure/virtual_machine_management/serialization.rb +462 -462
  101. data/lib/azure/virtual_machine_management/virtual_machine.rb +45 -45
  102. data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +588 -588
  103. data/lib/azure/virtual_network_management/serialization.rb +190 -190
  104. data/lib/azure/virtual_network_management/virtual_network.rb +37 -37
  105. data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
  106. data/test/fixtures/affinity_group.xml +33 -33
  107. data/test/fixtures/all_containers.xml +20 -20
  108. data/test/fixtures/all_tables.xml +22 -22
  109. data/test/fixtures/certificate.pem +21 -21
  110. data/test/fixtures/container_acl.xml +11 -11
  111. data/test/fixtures/create_sql_database_server.xml +1 -1
  112. data/test/fixtures/create_storage_desc_error.xml +5 -5
  113. data/test/fixtures/create_storage_extendedprop_error.xml +8 -8
  114. data/test/fixtures/create_storage_extendedpropname_error.xml +6 -6
  115. data/test/fixtures/create_storage_full_error.xml +6 -6
  116. data/test/fixtures/create_storage_label_error.xml +5 -5
  117. data/test/fixtures/create_storage_location_error.xml +5 -5
  118. data/test/fixtures/create_storage_name_error.xml +6 -6
  119. data/test/fixtures/create_table_response_entry.xml +15 -15
  120. data/test/fixtures/delete_storage_container_error.xml +5 -5
  121. data/test/fixtures/delete_storage_error.xml +5 -5
  122. data/test/fixtures/deployment_error.xml +5 -5
  123. data/test/fixtures/get_storage_account_error.xml +5 -5
  124. data/test/fixtures/get_storage_account_properties.xml +31 -31
  125. data/test/fixtures/get_storage_account_properties_new.xml +31 -31
  126. data/test/fixtures/http_error.xml +5 -5
  127. data/test/fixtures/insert_entity_response_entry.xml +25 -25
  128. data/test/fixtures/list_affinity_groups.xml +22 -22
  129. data/test/fixtures/list_blobs.xml +120 -120
  130. data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
  131. data/test/fixtures/list_blocks_all.xml +22 -22
  132. data/test/fixtures/list_blocks_committed.xml +12 -12
  133. data/test/fixtures/list_cloud_services.xml +38 -38
  134. data/test/fixtures/list_containers.xml +37 -37
  135. data/test/fixtures/list_firewall_management_endpoint.xml +27 -27
  136. data/test/fixtures/list_images.xml +110 -110
  137. data/test/fixtures/list_locations.xml +62 -62
  138. data/test/fixtures/list_page_ranges.xml +10 -10
  139. data/test/fixtures/list_sql_database.xml +36 -36
  140. data/test/fixtures/list_sql_server_firewall.xml +23 -23
  141. data/test/fixtures/list_storage_account_single.xml +24 -24
  142. data/test/fixtures/list_storage_accounts.xml +45 -45
  143. data/test/fixtures/list_virtual_networks.xml +92 -92
  144. data/test/fixtures/logging.xml +11 -11
  145. data/test/fixtures/management_certificate.pem +55 -55
  146. data/test/fixtures/messages.xml +12 -12
  147. data/test/fixtures/metrics.xml +10 -10
  148. data/test/fixtures/privatekey.key +28 -28
  149. data/test/fixtures/query_entities_empty_response.xml +7 -7
  150. data/test/fixtures/query_entities_response.xml +45 -45
  151. data/test/fixtures/queue_service_properties.xml +22 -22
  152. data/test/fixtures/queue_service_properties_original.xml +19 -19
  153. data/test/fixtures/queues.xml +16 -16
  154. data/test/fixtures/retention_policy.xml +5 -5
  155. data/test/fixtures/sb_default_create_queue_response.xml +23 -23
  156. data/test/fixtures/sb_default_create_relay_response.xml +15 -15
  157. data/test/fixtures/sb_default_create_topic_response.xml +18 -18
  158. data/test/fixtures/sb_get_access_token_response.txt +1 -1
  159. data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
  160. data/test/fixtures/storage_service_properties.xml +54 -54
  161. data/test/fixtures/update_storage_account.xml +16 -16
  162. data/test/fixtures/update_storage_error.xml +4 -4
  163. data/test/fixtures/updated_storage_accounts.xml +52 -52
  164. data/test/fixtures/virtual_machine.xml +113 -113
  165. data/test/fixtures/windows_virtual_machine.xml +106 -106
  166. data/test/integration/affinity_group/Affinity_test.rb +55 -55
  167. data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
  168. data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
  169. data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
  170. data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
  171. data/test/integration/blob/blob_gb18030_test.rb +199 -199
  172. data/test/integration/blob/blob_metadata_test.rb +75 -75
  173. data/test/integration/blob/blob_pages_test.rb +119 -119
  174. data/test/integration/blob/blob_properties_test.rb +77 -77
  175. data/test/integration/blob/block_blob_test.rb +254 -254
  176. data/test/integration/blob/container/container_acl_test.rb +69 -69
  177. data/test/integration/blob/container/container_metadata_test.rb +50 -50
  178. data/test/integration/blob/container/create_container_test.rb +60 -60
  179. data/test/integration/blob/container/delete_container_test.rb +39 -39
  180. data/test/integration/blob/container/get_container_properties_test.rb +48 -48
  181. data/test/integration/blob/container/list_containers_test.rb +79 -79
  182. data/test/integration/blob/container/root_container_test.rb +53 -53
  183. data/test/integration/blob/copy_blob_test.rb +113 -113
  184. data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
  185. data/test/integration/blob/create_page_blob_test.rb +83 -83
  186. data/test/integration/blob/delete_blob_test.rb +159 -159
  187. data/test/integration/blob/get_blob_test.rb +65 -65
  188. data/test/integration/blob/informative_errors_test.rb +38 -38
  189. data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
  190. data/test/integration/blob/lease/break_lease_test.rb +40 -40
  191. data/test/integration/blob/lease/release_lease_test.rb +40 -40
  192. data/test/integration/blob/lease/renew_lease_test.rb +42 -42
  193. data/test/integration/blob/list_blobs_test.rb +113 -113
  194. data/test/integration/cloud_service/Cloud_Create_test.rb +44 -44
  195. data/test/integration/cloud_service/Cloud_Delete_test.rb +44 -44
  196. data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
  197. data/test/integration/database/create_sql_server_test.rb +53 -53
  198. data/test/integration/database/delete_sql_server_firewall_test.rb +70 -70
  199. data/test/integration/database/delete_sql_server_test.rb +58 -58
  200. data/test/integration/database/list_sql_server_firewall_test.rb +45 -45
  201. data/test/integration/database/list_sql_servers_test.rb +44 -44
  202. data/test/integration/database/reset_password_sql_server_test.rb +55 -55
  203. data/test/integration/location/Location_List_test.rb +39 -39
  204. data/test/integration/queue/clear_messages_test.rb +42 -42
  205. data/test/integration/queue/create_message_test.rb +75 -75
  206. data/test/integration/queue/create_queue_test.rb +50 -50
  207. data/test/integration/queue/delete_message_test.rb +67 -67
  208. data/test/integration/queue/delete_queue_test.rb +45 -45
  209. data/test/integration/queue/informative_errors_test.rb +41 -41
  210. data/test/integration/queue/list_messages_encoded_test.rb +79 -79
  211. data/test/integration/queue/list_messages_test.rb +79 -79
  212. data/test/integration/queue/list_queues_test.rb +44 -44
  213. data/test/integration/queue/peek_messages_test.rb +59 -59
  214. data/test/integration/queue/queue_gb18030_test.rb +131 -131
  215. data/test/integration/queue/queue_metadata_test.rb +40 -40
  216. data/test/integration/queue/update_message_test.rb +74 -74
  217. data/test/integration/service_bus/informative_errors_test.rb +36 -36
  218. data/test/integration/service_bus/queues_scenario_test.rb +200 -200
  219. data/test/integration/service_bus/queues_test.rb +265 -265
  220. data/test/integration/service_bus/relay_test.rb +131 -131
  221. data/test/integration/service_bus/rules_test.rb +144 -144
  222. data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
  223. data/test/integration/service_bus/scenario_test.rb +101 -101
  224. data/test/integration/service_bus/subscriptions_test.rb +211 -211
  225. data/test/integration/service_bus/topics_scenario_test.rb +406 -406
  226. data/test/integration/service_bus/topics_test.rb +129 -129
  227. data/test/integration/storage_management/storage_management_test.rb +160 -160
  228. data/test/integration/table/create_table_test.rb +35 -35
  229. data/test/integration/table/delete_entity_batch_test.rb +106 -106
  230. data/test/integration/table/delete_entity_test.rb +93 -93
  231. data/test/integration/table/delete_table_test.rb +39 -39
  232. data/test/integration/table/get_table_test.rb +36 -36
  233. data/test/integration/table/informative_errors_test.rb +38 -38
  234. data/test/integration/table/insert_entity_batch_test.rb +99 -99
  235. data/test/integration/table/insert_entity_test.rb +87 -87
  236. data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
  237. data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
  238. data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
  239. data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
  240. data/test/integration/table/merge_entity_batch_test.rb +127 -127
  241. data/test/integration/table/merge_entity_test.rb +112 -112
  242. data/test/integration/table/query_entities_test.rb +194 -194
  243. data/test/integration/table/query_tables_test.rb +42 -42
  244. data/test/integration/table/query_test.rb +250 -250
  245. data/test/integration/table/table_acl_test.rb +51 -51
  246. data/test/integration/table/table_gb18030_test.rb +355 -355
  247. data/test/integration/table/update_entity_batch_test.rb +148 -148
  248. data/test/integration/table/update_entity_test.rb +130 -130
  249. data/test/integration/test_helper.rb +42 -42
  250. data/test/integration/vm/VM_Create_test.rb +260 -260
  251. data/test/integration/vm/VM_Delete_test.rb +55 -55
  252. data/test/integration/vm/VM_Operations_test.rb +173 -173
  253. data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
  254. data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
  255. data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
  256. data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
  257. data/test/support/env.rb +19 -19
  258. data/test/support/fixtures.rb +36 -36
  259. data/test/support/name_generator.rb +168 -168
  260. data/test/support/stubs.rb +42 -42
  261. data/test/support/virtual_machine_name_generator.rb +102 -102
  262. data/test/support/virtual_network_helper.rb +73 -73
  263. data/test/test_helper.rb +53 -53
  264. data/test/unit/affinity_group/affinity_group_test.rb +192 -192
  265. data/test/unit/affinity_group/serialization_test.rb +88 -88
  266. data/test/unit/base_management/location_test.rb +57 -57
  267. data/test/unit/blob/blob_service_test.rb +1946 -1946
  268. data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
  269. data/test/unit/cloud_service_management/serialization_test.rb +169 -169
  270. data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
  271. data/test/unit/core/auth/shared_key_test.rb +58 -58
  272. data/test/unit/core/auth/signer_test.rb +30 -30
  273. data/test/unit/core/http/http_error_test.rb +57 -57
  274. data/test/unit/core/http/http_request_test.rb +66 -66
  275. data/test/unit/core/http/http_response_test.rb +45 -45
  276. data/test/unit/core/http/retry_policy_test.rb +23 -23
  277. data/test/unit/database/serialization_test.rb +97 -97
  278. data/test/unit/database/sql_database_server_service_test.rb +288 -288
  279. data/test/unit/service/serialization_test.rb +532 -532
  280. data/test/unit/service/storage_service_test.rb +292 -292
  281. data/test/unit/storage_management/serialization_test.rb +232 -232
  282. data/test/unit/storage_management/storage_management_service_test.rb +261 -261
  283. data/test/unit/table/edmtype_test.rb +107 -107
  284. data/test/unit/virtual_machine_image_management/serialization_test.rb +35 -35
  285. data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +65 -65
  286. data/test/unit/virtual_machine_management/serialization_test.rb +258 -258
  287. data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +440 -440
  288. data/test/unit/vnet/serialization_test.rb +187 -187
  289. data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
  290. metadata +34 -27
@@ -1,293 +1,293 @@
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 "test_helper"
16
- require "azure/service/storage_service"
17
- require "azure/core/http/http_request"
18
- require "azure/core/http/signer_filter"
19
- require "azure/service/storage_service_properties"
20
-
21
- describe Azure::Service::StorageService do
22
-
23
- let(:uri){ URI.parse "http://dummy.uri/resource" }
24
- let(:method){ :get }
25
-
26
- subject do
27
- storage_service = Azure::Service::StorageService.new
28
- storage_service.host = "http://dumyhost.uri"
29
- storage_service
30
- end
31
-
32
- describe "#call" do
33
- let(:mock_request){ mock() }
34
- let(:mock_signer_filter){ mock() }
35
-
36
- before do
37
- Azure::Core::Http::HttpRequest.stubs(:new).with(method, uri, nil).returns(mock_request)
38
- Azure::Core::Http::SignerFilter.stubs(:new).returns(mock_signer_filter)
39
-
40
- mock_request.expects(:call)
41
- end
42
-
43
- it "adds a SignerFilter to the HTTP pipeline" do
44
- mock_request.expects(:with_filter).with(mock_signer_filter)
45
- subject.call(method, uri)
46
- end
47
-
48
- describe "when passed the optional headers arguement" do
49
- before do
50
- mock_request.expects(:with_filter).with(mock_signer_filter)
51
- end
52
-
53
- let(:mock_headers) {{
54
- "Other-Header"=>"SomeValue",
55
- "Custom-Header"=>"PreviousValue",
56
- "connection"=>"PreviousValue"
57
- }}
58
-
59
- it "merges the custom headers with the HttpRequest headers" do
60
- mock_request.expects(:headers).returns(mock_headers).at_least(2)
61
- subject.call(method, uri, nil, { "Custom-Header"=>"CustomValue"} )
62
-
63
- mock_headers["Other-Header"].must_equal "SomeValue"
64
- mock_headers["Custom-Header"].must_equal "CustomValue"
65
- mock_headers["connection"].must_equal "keep-alive"
66
- end
67
- end
68
-
69
- describe "when passed the optional body arguement" do
70
- before do
71
- mock_request.expects(:with_filter).with(mock_signer_filter)
72
- end
73
-
74
- it "passes the body to the to HttpRequest" do
75
- Azure::Core::Http::HttpRequest.stubs(:new).with(method, uri, 'body').returns(mock_request)
76
- subject.call(method, uri, "body")
77
- end
78
- end
79
-
80
- describe "when with_filter was called" do
81
- before do
82
- mock_request.expects(:with_filter).with(mock_signer_filter)
83
- end
84
-
85
- it "builds the HTTP pipeline by passing the filters to the HTTPRequest" do
86
- filter = mock()
87
- filter1 = mock()
88
-
89
- subject.with_filter filter
90
- subject.with_filter filter1
91
-
92
- mock_request.expects(:with_filter).with(filter)
93
- mock_request.expects(:with_filter).with(filter1)
94
-
95
- subject.call(method, uri)
96
- end
97
- end
98
- end
99
-
100
- describe "#with_filter" do
101
- it "appends filters to a list of filters that will be used in the #call method" do
102
- initial_length = subject.filters.length
103
- filter = mock()
104
- subject.with_filter filter
105
- subject.filters.length.must_equal initial_length + 1
106
- end
107
-
108
- it "accepts object instances as filters" do
109
- filter = mock()
110
- subject.with_filter filter
111
- subject.filters.last.must_equal filter
112
- end
113
-
114
- it "accepts blocks as filters" do
115
- subject.with_filter do |a,b| end
116
- subject.filters.last.class.must_equal Proc
117
- end
118
-
119
- it "preserves the order of the filters" do
120
- subject.filters = []
121
-
122
- filter = mock()
123
- filter1 = mock()
124
-
125
- subject.with_filter filter
126
- subject.with_filter filter1
127
- subject.with_filter do |a,b| end
128
-
129
- subject.filters.first.must_equal filter
130
- subject.filters[1].must_equal filter1
131
- subject.filters.last.class.must_equal Proc
132
- end
133
- end
134
-
135
- describe "#get_service_properties" do
136
- let(:service_properties_xml) { Fixtures["storage_service_properties"] }
137
- let(:service_properties) { Azure::Service::StorageServiceProperties.new }
138
- let(:response) {
139
- response = mock()
140
- response.stubs(:body).returns(service_properties_xml)
141
- response
142
- }
143
-
144
- let(:service_properties_uri) { URI.parse 'http://dummy.uri/service/properties' }
145
- let(:service_properties_headers) { {"x-ms-version" => "2013-08-15"} }
146
-
147
- before do
148
- Azure::Service::Serialization.stubs(:service_properties_from_xml).with(service_properties_xml).returns(service_properties)
149
- subject.stubs(:service_properties_uri).returns(service_properties_uri)
150
- subject.stubs(:call).with(:get, service_properties_uri, nil, service_properties_headers).returns(response)
151
- end
152
-
153
- it "calls the service_properties_uri method to determine the correct uri" do
154
- subject.expects(:service_properties_uri).returns(service_properties_uri)
155
- subject.get_service_properties
156
- end
157
-
158
- it "gets the response from the HTTP API" do
159
- subject.expects(:call).with(:get, service_properties_uri, nil, service_properties_headers).returns(response)
160
- subject.get_service_properties
161
- end
162
-
163
- it "deserializes the response from xml" do
164
- Azure::Service::Serialization.expects(:service_properties_from_xml).with(service_properties_xml).returns(service_properties)
165
- subject.get_service_properties
166
- end
167
-
168
- it "returns a StorageServiceProperties instance" do
169
- result = subject.get_service_properties
170
- result.must_be_kind_of Azure::Service::StorageServiceProperties
171
- end
172
- end
173
-
174
- describe "#set_service_properties" do
175
- let(:service_properties_xml) { Fixtures["storage_service_properties"] }
176
- let(:service_properties) { Azure::Service::StorageServiceProperties.new }
177
- let(:response) {
178
- response = mock()
179
- response.stubs(:success?).returns(true)
180
- response
181
- }
182
-
183
- let(:service_properties_uri) { URI.parse 'http://dummy.uri/service/properties' }
184
- let(:service_properties_headers) { {"x-ms-version" => "2013-08-15"} }
185
-
186
- before do
187
- Azure::Service::Serialization.stubs(:service_properties_to_xml).with(service_properties).returns(service_properties_xml)
188
- subject.stubs(:service_properties_uri).returns(service_properties_uri)
189
- subject.stubs(:call).with(:put, service_properties_uri, service_properties_xml, service_properties_headers).returns(response)
190
- end
191
-
192
- it "calls the service_properties_uri method to determine the correct uri" do
193
- subject.expects(:service_properties_uri).returns(service_properties_uri)
194
- subject.set_service_properties service_properties
195
- end
196
-
197
- it "posts to the HTTP API" do
198
- subject.expects(:call).with(:put, service_properties_uri, service_properties_xml, service_properties_headers).returns(response)
199
- subject.set_service_properties service_properties
200
- end
201
-
202
- it "serializes the StorageServiceProperties object to xml" do
203
- Azure::Service::Serialization.expects(:service_properties_to_xml).with(service_properties).returns(service_properties_xml)
204
- subject.set_service_properties service_properties
205
- end
206
-
207
- it "returns nil on success" do
208
- result = subject.set_service_properties service_properties
209
- result.must_equal nil
210
- end
211
- end
212
-
213
- describe "service_properties_uri" do
214
- it "returns an instance of URI" do
215
- subject.service_properties_uri.must_be_kind_of URI
216
- end
217
-
218
- it "uses the value of the host property as the base of the url" do
219
- subject.service_properties_uri.to_s.must_include subject.host
220
- subject.host = "http://something.else"
221
- subject.service_properties_uri.to_s.must_include subject.host
222
- end
223
-
224
- it "sets a query string that specifies the storage service properties endpoint" do
225
- subject.service_properties_uri.query.must_include "restype=service&comp=properties"
226
- end
227
- end
228
-
229
- describe "#add_metadata_to_headers" do
230
- it "prefixes header names with x-ms-meta- but does not modify the values" do
231
- headers = {}
232
- subject.add_metadata_to_headers({"Foo"=> "Bar"}, headers)
233
- headers.keys.must_include "x-ms-meta-Foo"
234
- headers["x-ms-meta-Foo"].must_equal "Bar"
235
- end
236
-
237
- it "updates any existing x-ms-meta-* headers with the new values" do
238
- headers = { "x-ms-meta-Foo"=> "Foo"}
239
- subject.add_metadata_to_headers({"Foo"=> "Bar"}, headers)
240
- headers["x-ms-meta-Foo"].must_equal "Bar"
241
- end
242
- end
243
-
244
- describe "#generate_uri" do
245
- it "returns a URI instance" do
246
- subject.generate_uri().must_be_kind_of ::URI
247
- end
248
-
249
- describe "when called with no arguments" do
250
- it "returns the StorageService host URL" do
251
- subject.generate_uri().to_s.must_equal "http://dumyhost.uri/"
252
- end
253
- end
254
-
255
- describe "when passed an optional path" do
256
- it "adds the path to the host url" do
257
- subject.generate_uri("resource/entity/").path.must_equal "/resource/entity/"
258
- end
259
-
260
- it "correctly joins the path if the host url contained a path" do
261
- subject.host = "http://dummy.uri/host/path"
262
- subject.generate_uri("resource/entity/").path.must_equal "/host/path/resource/entity/"
263
- end
264
- end
265
-
266
- describe "when passed an Hash of query parameters" do
267
-
268
- it "encodes the keys" do
269
- subject.generate_uri('',{"key !" => "value"}).query.must_include "key+%21=value"
270
- end
271
-
272
- it "encodes the values" do
273
- subject.generate_uri('',{"key" => "value !"}).query.must_include "key=value+%21"
274
- end
275
-
276
- it "sets the query string to the encoded result" do
277
- subject.generate_uri('',{ "key" => "value !", "key !"=>"value"}).query.must_equal "key=value+%21&key+%21=value"
278
- end
279
-
280
- describe "when the query parameters include a timeout key" do
281
- it "overrides the default timeout" do
282
- subject.generate_uri('', {"timeout" => 45}).query.must_equal "timeout=45"
283
- end
284
- end
285
-
286
- describe "when the query parameters are nil" do
287
- it "does not include any query parameters" do
288
- subject.generate_uri('', nil).query.must_equal nil
289
- end
290
- end
291
- end
292
- 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 "test_helper"
16
+ require "azure/service/storage_service"
17
+ require "azure/core/http/http_request"
18
+ require "azure/core/http/signer_filter"
19
+ require "azure/service/storage_service_properties"
20
+
21
+ describe Azure::Service::StorageService do
22
+
23
+ let(:uri){ URI.parse "http://dummy.uri/resource" }
24
+ let(:method){ :get }
25
+
26
+ subject do
27
+ storage_service = Azure::Service::StorageService.new
28
+ storage_service.host = "http://dumyhost.uri"
29
+ storage_service
30
+ end
31
+
32
+ describe "#call" do
33
+ let(:mock_request){ mock() }
34
+ let(:mock_signer_filter){ mock() }
35
+
36
+ before do
37
+ Azure::Core::Http::HttpRequest.stubs(:new).with(method, uri, nil).returns(mock_request)
38
+ Azure::Core::Http::SignerFilter.stubs(:new).returns(mock_signer_filter)
39
+
40
+ mock_request.expects(:call)
41
+ end
42
+
43
+ it "adds a SignerFilter to the HTTP pipeline" do
44
+ mock_request.expects(:with_filter).with(mock_signer_filter)
45
+ subject.call(method, uri)
46
+ end
47
+
48
+ describe "when passed the optional headers arguement" do
49
+ before do
50
+ mock_request.expects(:with_filter).with(mock_signer_filter)
51
+ end
52
+
53
+ let(:mock_headers) {{
54
+ "Other-Header"=>"SomeValue",
55
+ "Custom-Header"=>"PreviousValue",
56
+ "connection"=>"PreviousValue"
57
+ }}
58
+
59
+ it "merges the custom headers with the HttpRequest headers" do
60
+ mock_request.expects(:headers).returns(mock_headers).at_least(2)
61
+ subject.call(method, uri, nil, { "Custom-Header"=>"CustomValue"} )
62
+
63
+ mock_headers["Other-Header"].must_equal "SomeValue"
64
+ mock_headers["Custom-Header"].must_equal "CustomValue"
65
+ mock_headers["connection"].must_equal "keep-alive"
66
+ end
67
+ end
68
+
69
+ describe "when passed the optional body arguement" do
70
+ before do
71
+ mock_request.expects(:with_filter).with(mock_signer_filter)
72
+ end
73
+
74
+ it "passes the body to the to HttpRequest" do
75
+ Azure::Core::Http::HttpRequest.stubs(:new).with(method, uri, 'body').returns(mock_request)
76
+ subject.call(method, uri, "body")
77
+ end
78
+ end
79
+
80
+ describe "when with_filter was called" do
81
+ before do
82
+ mock_request.expects(:with_filter).with(mock_signer_filter)
83
+ end
84
+
85
+ it "builds the HTTP pipeline by passing the filters to the HTTPRequest" do
86
+ filter = mock()
87
+ filter1 = mock()
88
+
89
+ subject.with_filter filter
90
+ subject.with_filter filter1
91
+
92
+ mock_request.expects(:with_filter).with(filter)
93
+ mock_request.expects(:with_filter).with(filter1)
94
+
95
+ subject.call(method, uri)
96
+ end
97
+ end
98
+ end
99
+
100
+ describe "#with_filter" do
101
+ it "appends filters to a list of filters that will be used in the #call method" do
102
+ initial_length = subject.filters.length
103
+ filter = mock()
104
+ subject.with_filter filter
105
+ subject.filters.length.must_equal initial_length + 1
106
+ end
107
+
108
+ it "accepts object instances as filters" do
109
+ filter = mock()
110
+ subject.with_filter filter
111
+ subject.filters.last.must_equal filter
112
+ end
113
+
114
+ it "accepts blocks as filters" do
115
+ subject.with_filter do |a,b| end
116
+ subject.filters.last.class.must_equal Proc
117
+ end
118
+
119
+ it "preserves the order of the filters" do
120
+ subject.filters = []
121
+
122
+ filter = mock()
123
+ filter1 = mock()
124
+
125
+ subject.with_filter filter
126
+ subject.with_filter filter1
127
+ subject.with_filter do |a,b| end
128
+
129
+ subject.filters.first.must_equal filter
130
+ subject.filters[1].must_equal filter1
131
+ subject.filters.last.class.must_equal Proc
132
+ end
133
+ end
134
+
135
+ describe "#get_service_properties" do
136
+ let(:service_properties_xml) { Fixtures["storage_service_properties"] }
137
+ let(:service_properties) { Azure::Service::StorageServiceProperties.new }
138
+ let(:response) {
139
+ response = mock()
140
+ response.stubs(:body).returns(service_properties_xml)
141
+ response
142
+ }
143
+
144
+ let(:service_properties_uri) { URI.parse 'http://dummy.uri/service/properties' }
145
+ let(:service_properties_headers) { {"x-ms-version" => "2013-08-15"} }
146
+
147
+ before do
148
+ Azure::Service::Serialization.stubs(:service_properties_from_xml).with(service_properties_xml).returns(service_properties)
149
+ subject.stubs(:service_properties_uri).returns(service_properties_uri)
150
+ subject.stubs(:call).with(:get, service_properties_uri, nil, service_properties_headers).returns(response)
151
+ end
152
+
153
+ it "calls the service_properties_uri method to determine the correct uri" do
154
+ subject.expects(:service_properties_uri).returns(service_properties_uri)
155
+ subject.get_service_properties
156
+ end
157
+
158
+ it "gets the response from the HTTP API" do
159
+ subject.expects(:call).with(:get, service_properties_uri, nil, service_properties_headers).returns(response)
160
+ subject.get_service_properties
161
+ end
162
+
163
+ it "deserializes the response from xml" do
164
+ Azure::Service::Serialization.expects(:service_properties_from_xml).with(service_properties_xml).returns(service_properties)
165
+ subject.get_service_properties
166
+ end
167
+
168
+ it "returns a StorageServiceProperties instance" do
169
+ result = subject.get_service_properties
170
+ result.must_be_kind_of Azure::Service::StorageServiceProperties
171
+ end
172
+ end
173
+
174
+ describe "#set_service_properties" do
175
+ let(:service_properties_xml) { Fixtures["storage_service_properties"] }
176
+ let(:service_properties) { Azure::Service::StorageServiceProperties.new }
177
+ let(:response) {
178
+ response = mock()
179
+ response.stubs(:success?).returns(true)
180
+ response
181
+ }
182
+
183
+ let(:service_properties_uri) { URI.parse 'http://dummy.uri/service/properties' }
184
+ let(:service_properties_headers) { {"x-ms-version" => "2013-08-15"} }
185
+
186
+ before do
187
+ Azure::Service::Serialization.stubs(:service_properties_to_xml).with(service_properties).returns(service_properties_xml)
188
+ subject.stubs(:service_properties_uri).returns(service_properties_uri)
189
+ subject.stubs(:call).with(:put, service_properties_uri, service_properties_xml, service_properties_headers).returns(response)
190
+ end
191
+
192
+ it "calls the service_properties_uri method to determine the correct uri" do
193
+ subject.expects(:service_properties_uri).returns(service_properties_uri)
194
+ subject.set_service_properties service_properties
195
+ end
196
+
197
+ it "posts to the HTTP API" do
198
+ subject.expects(:call).with(:put, service_properties_uri, service_properties_xml, service_properties_headers).returns(response)
199
+ subject.set_service_properties service_properties
200
+ end
201
+
202
+ it "serializes the StorageServiceProperties object to xml" do
203
+ Azure::Service::Serialization.expects(:service_properties_to_xml).with(service_properties).returns(service_properties_xml)
204
+ subject.set_service_properties service_properties
205
+ end
206
+
207
+ it "returns nil on success" do
208
+ result = subject.set_service_properties service_properties
209
+ result.must_equal nil
210
+ end
211
+ end
212
+
213
+ describe "service_properties_uri" do
214
+ it "returns an instance of URI" do
215
+ subject.service_properties_uri.must_be_kind_of URI
216
+ end
217
+
218
+ it "uses the value of the host property as the base of the url" do
219
+ subject.service_properties_uri.to_s.must_include subject.host
220
+ subject.host = "http://something.else"
221
+ subject.service_properties_uri.to_s.must_include subject.host
222
+ end
223
+
224
+ it "sets a query string that specifies the storage service properties endpoint" do
225
+ subject.service_properties_uri.query.must_include "restype=service&comp=properties"
226
+ end
227
+ end
228
+
229
+ describe "#add_metadata_to_headers" do
230
+ it "prefixes header names with x-ms-meta- but does not modify the values" do
231
+ headers = {}
232
+ subject.add_metadata_to_headers({"Foo"=> "Bar"}, headers)
233
+ headers.keys.must_include "x-ms-meta-Foo"
234
+ headers["x-ms-meta-Foo"].must_equal "Bar"
235
+ end
236
+
237
+ it "updates any existing x-ms-meta-* headers with the new values" do
238
+ headers = { "x-ms-meta-Foo"=> "Foo"}
239
+ subject.add_metadata_to_headers({"Foo"=> "Bar"}, headers)
240
+ headers["x-ms-meta-Foo"].must_equal "Bar"
241
+ end
242
+ end
243
+
244
+ describe "#generate_uri" do
245
+ it "returns a URI instance" do
246
+ subject.generate_uri().must_be_kind_of ::URI
247
+ end
248
+
249
+ describe "when called with no arguments" do
250
+ it "returns the StorageService host URL" do
251
+ subject.generate_uri().to_s.must_equal "http://dumyhost.uri/"
252
+ end
253
+ end
254
+
255
+ describe "when passed an optional path" do
256
+ it "adds the path to the host url" do
257
+ subject.generate_uri("resource/entity/").path.must_equal "/resource/entity/"
258
+ end
259
+
260
+ it "correctly joins the path if the host url contained a path" do
261
+ subject.host = "http://dummy.uri/host/path"
262
+ subject.generate_uri("resource/entity/").path.must_equal "/host/path/resource/entity/"
263
+ end
264
+ end
265
+
266
+ describe "when passed an Hash of query parameters" do
267
+
268
+ it "encodes the keys" do
269
+ subject.generate_uri('',{"key !" => "value"}).query.must_include "key+%21=value"
270
+ end
271
+
272
+ it "encodes the values" do
273
+ subject.generate_uri('',{"key" => "value !"}).query.must_include "key=value+%21"
274
+ end
275
+
276
+ it "sets the query string to the encoded result" do
277
+ subject.generate_uri('',{ "key" => "value !", "key !"=>"value"}).query.must_equal "key=value+%21&key+%21=value"
278
+ end
279
+
280
+ describe "when the query parameters include a timeout key" do
281
+ it "overrides the default timeout" do
282
+ subject.generate_uri('', {"timeout" => 45}).query.must_equal "timeout=45"
283
+ end
284
+ end
285
+
286
+ describe "when the query parameters are nil" do
287
+ it "does not include any query parameters" do
288
+ subject.generate_uri('', nil).query.must_equal nil
289
+ end
290
+ end
291
+ end
292
+ end
293
293
  end