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,152 +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/table/batch"
17
- require "azure/table/table_service"
18
- require "azure/core/http/http_error"
19
-
20
- describe Azure::Table::TableService do
21
- describe "#insert_or_replace_entity_batch" do
22
- subject { Azure::Table::TableService.new }
23
- let(:table_name){ TableNameHelper.name }
24
-
25
- let(:entity_properties) {
26
- {
27
- "PartitionKey" => "testingpartition",
28
- "CustomStringProperty" => "CustomPropertyValue",
29
- "CustomIntegerProperty" => 37,
30
- "CustomBooleanProperty" => true,
31
- "CustomDateProperty" => Time.now
32
- }
33
- }
34
-
35
- before {
36
- subject.create_table table_name
37
- }
38
-
39
- after { TableNameHelper.clean }
40
-
41
- it "creates an entity if it does not already exist" do
42
- entity = entity_properties.dup
43
- entity["RowKey"] = "abcd1234"
44
-
45
- does_not_exist = true
46
- begin
47
- subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
48
- does_not_exist = false
49
- rescue
50
- end
51
-
52
- assert does_not_exist
53
-
54
- batch = Azure::Table::Batch.new table_name, entity["PartitionKey"]
55
- batch.insert_or_replace entity["RowKey"], entity
56
- etags = subject.execute_batch batch
57
-
58
- etags[0].must_be_kind_of String
59
-
60
- result = subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
61
-
62
- result.must_be_kind_of Azure::Table::Entity
63
- result.table.must_equal table_name
64
- result.etag.must_equal etags[0]
65
-
66
- entity.each { |k,v|
67
- unless entity[k].class == Time
68
- result.properties[k].must_equal entity[k]
69
- else
70
- result.properties[k].to_i.must_equal entity[k].to_i
71
- end
72
- }
73
- end
74
-
75
- it "updates an existing entity, removing any properties not included in the update operation" do
76
- entity = entity_properties.dup
77
- entity["RowKey"] = "abcd1234_existing"
78
-
79
- result = subject.insert_entity table_name, entity
80
-
81
- existing_etag = ""
82
-
83
- exists = false
84
- begin
85
- existing = subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
86
- existing_etag = existing.etag
87
- exists = true
88
- rescue
89
- end
90
-
91
- assert exists, "cannot verify existing record"
92
-
93
- batch = Azure::Table::Batch.new table_name, entity["PartitionKey"]
94
- batch.insert_or_replace entity["RowKey"], {
95
- "PartitionKey" => entity["PartitionKey"],
96
- "RowKey" => entity["RowKey"],
97
- "NewCustomProperty" => "NewCustomValue"
98
- }
99
- etags = subject.execute_batch batch
100
-
101
- etags[0].must_be_kind_of String
102
- etags[0].wont_equal existing_etag
103
-
104
- result = subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
105
-
106
- result.must_be_kind_of Azure::Table::Entity
107
- result.table.must_equal table_name
108
-
109
- # removed all existing props
110
- entity.each { |k,v|
111
- result.properties.wont_include k unless k == "PartitionKey" || k == "RowKey"
112
- }
113
-
114
- # and has the new one
115
- result.properties["NewCustomProperty"].must_equal "NewCustomValue"
116
- end
117
-
118
- it "errors on an invalid table name" do
119
- assert_raises(Azure::Core::Http::HTTPError) do
120
- entity = entity_properties.dup
121
- entity["RowKey"] = "row_key"
122
-
123
- batch = Azure::Table::Batch.new "this_table.cannot-exist!", entity["PartitionKey"]
124
- batch.insert_or_replace entity["RowKey"], entity
125
- etags = subject.execute_batch batch
126
- end
127
- end
128
-
129
- it "errors on an invalid partition key" do
130
- assert_raises(Azure::Core::Http::HTTPError) do
131
- entity = entity_properties.dup
132
- entity["PartitionKey"] = "this/partition_key#is?invalid"
133
- entity["RowKey"] = "row_key"
134
-
135
- batch = Azure::Table::Batch.new table_name, entity["PartitionKey"]
136
- batch.insert_or_replace entity["RowKey"], entity
137
- etags = subject.execute_batch batch
138
- end
139
- end
140
-
141
- it "errors on an invalid row key" do
142
- assert_raises(Azure::Core::Http::HTTPError) do
143
- entity = entity_properties.dup
144
- entity["RowKey"] = "this/partition_key#is?invalid"
145
-
146
- batch = Azure::Table::Batch.new table_name, entity["PartitionKey"]
147
- batch.insert_or_replace entity["RowKey"], entity
148
- etags = subject.execute_batch batch
149
- end
150
- end
151
- end
152
- end
@@ -1,137 +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/table/table_service"
17
- require "azure/core/http/http_error"
18
-
19
- describe Azure::Table::TableService do
20
- describe "#insert_or_replace_entity" do
21
- subject { Azure::Table::TableService.new }
22
- let(:table_name){ TableNameHelper.name }
23
-
24
- let(:entity_properties) {
25
- {
26
- "PartitionKey" => "testingpartition",
27
- "CustomStringProperty" => "CustomPropertyValue",
28
- "CustomIntegerProperty" => 37,
29
- "CustomBooleanProperty" => true,
30
- "CustomDateProperty" => Time.now
31
- }
32
- }
33
-
34
- before {
35
- subject.create_table table_name
36
- }
37
-
38
- after { TableNameHelper.clean }
39
-
40
- it "creates an entity if it does not already exist" do
41
- entity = entity_properties.dup
42
- entity["RowKey"] = "abcd1234"
43
-
44
- does_not_exist = true
45
- begin
46
- subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
47
- does_not_exist = false
48
- rescue
49
- end
50
-
51
- assert does_not_exist
52
-
53
- etag = subject.insert_or_replace_entity table_name, entity
54
- etag.must_be_kind_of String
55
-
56
- result = subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
57
-
58
- result.must_be_kind_of Azure::Table::Entity
59
- result.table.must_equal table_name
60
- result.etag.must_equal etag
61
-
62
- entity.each { |k,v|
63
- unless entity[k].class == Time
64
- result.properties[k].must_equal entity[k]
65
- else
66
- result.properties[k].to_i.must_equal entity[k].to_i
67
- end
68
- }
69
- end
70
-
71
- it "updates an existing entity, removing any properties not included in the update operation" do
72
- entity = entity_properties.dup
73
- entity["RowKey"] = "abcd1234_existing"
74
-
75
- result = subject.insert_entity table_name, entity
76
-
77
- existing_etag = ""
78
-
79
- exists = false
80
- begin
81
- existing = subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
82
- existing_etag = existing.etag
83
- exists = true
84
- rescue
85
- end
86
-
87
- assert exists, "cannot verify existing record"
88
-
89
- etag = subject.insert_or_replace_entity table_name, {
90
- "PartitionKey" => entity["PartitionKey"],
91
- "RowKey" => entity["RowKey"],
92
- "NewCustomProperty" => "NewCustomValue"
93
- }
94
-
95
- etag.must_be_kind_of String
96
- etag.wont_equal existing_etag
97
-
98
- result = subject.get_entity table_name, entity["PartitionKey"], entity["RowKey"]
99
-
100
- result.must_be_kind_of Azure::Table::Entity
101
- result.table.must_equal table_name
102
-
103
- # removed all existing props
104
- entity.each { |k,v|
105
- result.properties.wont_include k unless k == "PartitionKey" || k == "RowKey"
106
- }
107
-
108
- # and has the new one
109
- result.properties["NewCustomProperty"].must_equal "NewCustomValue"
110
- end
111
-
112
- it "errors on an invalid table name" do
113
- assert_raises(Azure::Core::Http::HTTPError) do
114
- entity = entity_properties.dup
115
- entity["RowKey"] = "row_key"
116
- subject.insert_or_replace_entity "this_table.cannot-exist!", entity
117
- end
118
- end
119
-
120
- it "errors on an invalid partition key" do
121
- assert_raises(Azure::Core::Http::HTTPError) do
122
- entity = entity_properties.dup
123
- entity["PartitionKey"] = "this/partition_key#is?invalid"
124
- entity["RowKey"] = "row_key"
125
- subject.insert_or_replace_entity table_name, entity
126
- end
127
- end
128
-
129
- it "errors on an invalid row key" do
130
- assert_raises(Azure::Core::Http::HTTPError) do
131
- entity = entity_properties.dup
132
- entity["RowKey"] = "this/partition_key#is?invalid"
133
- subject.insert_or_replace_entity table_name, entity
134
- end
135
- end
136
- end
137
- end
@@ -1,128 +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
-
16
- require "integration/test_helper"
17
- require "azure/table/batch"
18
- require "azure/table/table_service"
19
- require "azure/core/http/http_error"
20
-
21
- describe Azure::Table::TableService do
22
- describe "#merge_entity_batch" do
23
- subject { Azure::Table::TableService.new }
24
- let(:table_name){ TableNameHelper.name }
25
-
26
- let(:entity_properties){
27
- {
28
- "PartitionKey" => "testingpartition",
29
- "RowKey" => "abcd1234_existing",
30
- "CustomStringProperty" => "CustomPropertyValue",
31
- "CustomIntegerProperty" => 37,
32
- "CustomBooleanProperty" => true,
33
- "CustomDateProperty" => Time.now
34
- }
35
- }
36
-
37
- before {
38
- subject.create_table table_name
39
- subject.insert_entity table_name, entity_properties
40
- @existing_etag = ""
41
-
42
- exists = false
43
- begin
44
- existing = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
45
- @existing_etag = existing.etag
46
- exists = true
47
- rescue
48
- end
49
-
50
- assert exists, "cannot verify existing record"
51
- }
52
-
53
- after { TableNameHelper.clean }
54
-
55
- it "updates an existing entity, merging the properties" do
56
- batch = Azure::Table::Batch.new table_name, entity_properties["PartitionKey"]
57
- batch.merge entity_properties["RowKey"], {
58
- "PartitionKey" => entity_properties["PartitionKey"],
59
- "RowKey" => entity_properties["RowKey"],
60
- "NewCustomProperty" => "NewCustomValue"
61
- }
62
- etags = subject.execute_batch batch
63
-
64
- etags[0].must_be_kind_of String
65
- etags[0].wont_equal @existing_etag
66
-
67
- result = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
68
-
69
- result.must_be_kind_of Azure::Table::Entity
70
- result.table.must_equal table_name
71
- result.properties["PartitionKey"].must_equal entity_properties["PartitionKey"]
72
- result.properties["RowKey"].must_equal entity_properties["RowKey"]
73
-
74
- # retained all existing props
75
- entity_properties.each { |k,v|
76
- unless entity_properties[k].class == Time
77
- result.properties[k].must_equal entity_properties[k]
78
- else
79
- result.properties[k].to_i.must_equal entity_properties[k].to_i
80
- end
81
- }
82
-
83
- # and has the new one
84
- result.properties["NewCustomProperty"].must_equal "NewCustomValue"
85
- end
86
-
87
- it "errors on a non-existing row key" do
88
- assert_raises(Azure::Core::Http::HTTPError) do
89
- entity = entity_properties.dup
90
- entity["RowKey"] = "this-row-key-does-not-exist"
91
-
92
- batch = Azure::Table::Batch.new table_name, entity["PartitionKey"]
93
- batch.merge entity["RowKey"], entity
94
- etags = subject.execute_batch batch
95
- end
96
- end
97
-
98
- it "errors on an invalid table name" do
99
- assert_raises(Azure::Core::Http::HTTPError) do
100
- batch = Azure::Table::Batch.new "this_table.cannot-exist!", entity_properties["PartitionKey"]
101
- batch.merge entity_properties["RowKey"], entity_properties
102
- etags = subject.execute_batch batch
103
- end
104
- end
105
-
106
- it "errors on an invalid partition key" do
107
- assert_raises(Azure::Core::Http::HTTPError) do
108
- entity = entity_properties.dup
109
- entity["PartitionKey"] = "this/partition_key#is?invalid"
110
-
111
- batch = Azure::Table::Batch.new table_name, entity["PartitionKey"]
112
- batch.merge entity["RowKey"], entity
113
- etags = subject.execute_batch batch
114
- end
115
- end
116
-
117
- it "errors on an invalid row key" do
118
- assert_raises(Azure::Core::Http::HTTPError) do
119
- entity = entity_properties.dup
120
- entity["RowKey"] = "this/row_key#is?invalid"
121
-
122
- batch = Azure::Table::Batch.new table_name, entity["PartitionKey"]
123
- batch.merge entity["RowKey"], entity
124
- etags = subject.execute_batch batch
125
- end
126
- end
127
- end
128
- end
@@ -1,113 +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
-
16
- require "integration/test_helper"
17
- require "azure/table/table_service"
18
- require "azure/core/http/http_error"
19
-
20
- describe Azure::Table::TableService do
21
- describe "#merge_entity" do
22
- subject { Azure::Table::TableService.new }
23
- let(:table_name){ TableNameHelper.name }
24
-
25
- let(:entity_properties){
26
- {
27
- "PartitionKey" => "testingpartition",
28
- "RowKey" => "abcd1234_existing",
29
- "CustomStringProperty" => "CustomPropertyValue",
30
- "CustomIntegerProperty" => 37,
31
- "CustomBooleanProperty" => true,
32
- "CustomDateProperty" => Time.now
33
- }
34
- }
35
-
36
- before {
37
- subject.create_table table_name
38
- subject.insert_entity table_name, entity_properties
39
- @existing_etag = ""
40
-
41
- exists = false
42
- begin
43
- existing = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
44
- @existing_etag = existing.etag
45
- exists = true
46
- rescue
47
- end
48
-
49
- assert exists, "cannot verify existing record"
50
- }
51
-
52
- after { TableNameHelper.clean }
53
-
54
- it "updates an existing entity, merging the properties" do
55
- etag = subject.merge_entity table_name, {
56
- "PartitionKey" => entity_properties["PartitionKey"],
57
- "RowKey" => entity_properties["RowKey"],
58
- "NewCustomProperty" => "NewCustomValue"
59
- }
60
- etag.must_be_kind_of String
61
- etag.wont_equal @existing_etag
62
-
63
- result = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
64
-
65
- result.must_be_kind_of Azure::Table::Entity
66
- result.table.must_equal table_name
67
- result.properties["PartitionKey"].must_equal entity_properties["PartitionKey"]
68
- result.properties["RowKey"].must_equal entity_properties["RowKey"]
69
-
70
- # retained all existing props
71
- entity_properties.each { |k,v|
72
- unless entity_properties[k].class == Time
73
- result.properties[k].must_equal entity_properties[k]
74
- else
75
- result.properties[k].to_i.must_equal entity_properties[k].to_i
76
- end
77
- }
78
-
79
- # and has the new one
80
- result.properties["NewCustomProperty"].must_equal "NewCustomValue"
81
- end
82
-
83
- it "errors on a non-existing row key" do
84
- assert_raises(Azure::Core::Http::HTTPError) do
85
- entity = entity_properties.dup
86
- entity["RowKey"] = "this-row-key-does-not-exist"
87
- subject.merge_entity table_name, entity
88
- end
89
- end
90
-
91
- it "errors on an invalid table name" do
92
- assert_raises(Azure::Core::Http::HTTPError) do
93
- subject.merge_entity "this_table.cannot-exist!", entity_properties
94
- end
95
- end
96
-
97
- it "errors on an invalid partition key" do
98
- assert_raises(Azure::Core::Http::HTTPError) do
99
- entity = entity_properties.dup
100
- entity["PartitionKey"] = "this/partition_key#is?invalid"
101
- subject.merge_entity table_name, entity
102
- end
103
- end
104
-
105
- it "errors on an invalid row key" do
106
- assert_raises(Azure::Core::Http::HTTPError) do
107
- entity = entity_properties.dup
108
- entity["RowKey"] = "this/row_key#is?invalid"
109
- subject.merge_entity table_name, entity
110
- end
111
- end
112
- end
113
- end