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.
- checksums.yaml +4 -4
- data/.gitignore +11 -11
- data/.travis.yml +10 -10
- data/ChangeLog.txt +70 -68
- data/Gemfile +15 -15
- data/README.md +618 -618
- data/Rakefile +133 -133
- data/azure.gemspec +44 -44
- data/lib/azure.rb +52 -52
- data/lib/azure/base_management/affinity_group.rb +32 -32
- data/lib/azure/base_management/base_management_service.rb +304 -304
- data/lib/azure/base_management/location.rb +27 -27
- data/lib/azure/base_management/management_http_request.rb +171 -171
- data/lib/azure/base_management/serialization.rb +129 -129
- data/lib/azure/base_management/sql_management_http_request.rb +45 -45
- data/lib/azure/blob/blob.rb +31 -31
- data/lib/azure/blob/blob_service.rb +1423 -1423
- data/lib/azure/blob/block.rb +30 -30
- data/lib/azure/blob/container.rb +31 -31
- data/lib/azure/blob/serialization.rb +284 -284
- data/lib/azure/cloud_service_management/cloud_service.rb +38 -38
- data/lib/azure/cloud_service_management/cloud_service_management_service.rb +140 -140
- data/lib/azure/cloud_service_management/serialization.rb +117 -117
- data/lib/azure/core.rb +39 -39
- data/lib/azure/core/auth/authorizer.rb +36 -36
- data/lib/azure/core/auth/shared_key.rb +110 -110
- data/lib/azure/core/auth/shared_key_lite.rb +48 -48
- data/lib/azure/core/auth/signer.rb +48 -48
- data/lib/azure/core/configuration.rb +211 -211
- data/lib/azure/core/error.rb +22 -22
- data/lib/azure/core/filtered_service.rb +43 -43
- data/lib/azure/core/http/debug_filter.rb +35 -35
- data/lib/azure/core/http/http_error.rb +88 -88
- data/lib/azure/core/http/http_filter.rb +52 -52
- data/lib/azure/core/http/http_request.rb +157 -157
- data/lib/azure/core/http/http_response.rb +140 -140
- data/lib/azure/core/http/retry_policy.rb +73 -73
- data/lib/azure/core/http/signer_filter.rb +33 -33
- data/lib/azure/core/service.rb +62 -62
- data/lib/azure/core/signed_service.rb +42 -42
- data/lib/azure/core/utility.rb +190 -190
- data/lib/azure/queue/message.rb +29 -29
- data/lib/azure/queue/queue.rb +28 -28
- data/lib/azure/queue/queue_service.rb +567 -567
- data/lib/azure/queue/serialization.rb +106 -106
- data/lib/azure/service/access_policy.rb +25 -25
- data/lib/azure/service/cors.rb +11 -11
- data/lib/azure/service/cors_rule.rb +15 -15
- data/lib/azure/service/enumeration_results.rb +20 -20
- data/lib/azure/service/logging.rb +31 -31
- data/lib/azure/service/metrics.rb +30 -30
- data/lib/azure/service/retention_policy.rb +24 -24
- data/lib/azure/service/serialization.rb +297 -297
- data/lib/azure/service/signed_identifier.rb +29 -29
- data/lib/azure/service/storage_service.rb +82 -82
- data/lib/azure/service/storage_service_properties.rb +37 -37
- data/lib/azure/service_bus/action.rb +21 -21
- data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
- data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
- data/lib/azure/service_bus/brokered_message.rb +123 -123
- data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
- data/lib/azure/service_bus/correlation_filter.rb +45 -45
- data/lib/azure/service_bus/empty_rule_action.rb +29 -29
- data/lib/azure/service_bus/false_filter.rb +38 -38
- data/lib/azure/service_bus/filter.rb +21 -21
- data/lib/azure/service_bus/interval.rb +103 -103
- data/lib/azure/service_bus/queue.rb +229 -229
- data/lib/azure/service_bus/relay.rb +87 -87
- data/lib/azure/service_bus/resource.rb +108 -108
- data/lib/azure/service_bus/rule.rb +97 -97
- data/lib/azure/service_bus/rule_aspect.rb +34 -34
- data/lib/azure/service_bus/serialization.rb +161 -161
- data/lib/azure/service_bus/service_bus_service.rb +896 -896
- data/lib/azure/service_bus/sql_filter.rb +50 -50
- data/lib/azure/service_bus/sql_rule_action.rb +50 -50
- data/lib/azure/service_bus/subscription.rb +183 -183
- data/lib/azure/service_bus/topic.rb +186 -186
- data/lib/azure/service_bus/true_filter.rb +38 -38
- data/lib/azure/sql_database_management/serialization.rb +111 -111
- data/lib/azure/sql_database_management/sql_database.rb +31 -31
- data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -200
- data/lib/azure/storage_management/serialization.rb +184 -184
- data/lib/azure/storage_management/storage_account.rb +40 -40
- data/lib/azure/storage_management/storage_management_service.rb +166 -166
- data/lib/azure/table/auth/shared_key.rb +92 -92
- data/lib/azure/table/auth/shared_key_lite.rb +44 -44
- data/lib/azure/table/batch.rb +329 -329
- data/lib/azure/table/batch_response.rb +118 -118
- data/lib/azure/table/edmtype.rb +126 -126
- data/lib/azure/table/entity.rb +30 -30
- data/lib/azure/table/guid.rb +23 -23
- data/lib/azure/table/query.rb +111 -111
- data/lib/azure/table/serialization.rb +107 -107
- data/lib/azure/table/table_service.rb +559 -559
- data/lib/azure/version.rb +31 -31
- data/lib/azure/virtual_machine_image_management/serialization.rb +66 -66
- data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +25 -25
- data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +25 -25
- data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +94 -94
- data/lib/azure/virtual_machine_management/serialization.rb +462 -462
- data/lib/azure/virtual_machine_management/virtual_machine.rb +45 -45
- data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +588 -588
- data/lib/azure/virtual_network_management/serialization.rb +190 -190
- data/lib/azure/virtual_network_management/virtual_network.rb +37 -37
- data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
- data/test/fixtures/affinity_group.xml +33 -33
- data/test/fixtures/all_containers.xml +20 -20
- data/test/fixtures/all_tables.xml +22 -22
- data/test/fixtures/certificate.pem +21 -21
- data/test/fixtures/container_acl.xml +11 -11
- data/test/fixtures/create_sql_database_server.xml +1 -1
- data/test/fixtures/create_storage_desc_error.xml +5 -5
- data/test/fixtures/create_storage_extendedprop_error.xml +8 -8
- data/test/fixtures/create_storage_extendedpropname_error.xml +6 -6
- data/test/fixtures/create_storage_full_error.xml +6 -6
- data/test/fixtures/create_storage_label_error.xml +5 -5
- data/test/fixtures/create_storage_location_error.xml +5 -5
- data/test/fixtures/create_storage_name_error.xml +6 -6
- data/test/fixtures/create_table_response_entry.xml +15 -15
- data/test/fixtures/delete_storage_container_error.xml +5 -5
- data/test/fixtures/delete_storage_error.xml +5 -5
- data/test/fixtures/deployment_error.xml +5 -5
- data/test/fixtures/get_storage_account_error.xml +5 -5
- data/test/fixtures/get_storage_account_properties.xml +31 -31
- data/test/fixtures/get_storage_account_properties_new.xml +31 -31
- data/test/fixtures/http_error.xml +5 -5
- data/test/fixtures/insert_entity_response_entry.xml +25 -25
- data/test/fixtures/list_affinity_groups.xml +22 -22
- data/test/fixtures/list_blobs.xml +120 -120
- data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
- data/test/fixtures/list_blocks_all.xml +22 -22
- data/test/fixtures/list_blocks_committed.xml +12 -12
- data/test/fixtures/list_cloud_services.xml +38 -38
- data/test/fixtures/list_containers.xml +37 -37
- data/test/fixtures/list_firewall_management_endpoint.xml +27 -27
- data/test/fixtures/list_images.xml +110 -110
- data/test/fixtures/list_locations.xml +62 -62
- data/test/fixtures/list_page_ranges.xml +10 -10
- data/test/fixtures/list_sql_database.xml +36 -36
- data/test/fixtures/list_sql_server_firewall.xml +23 -23
- data/test/fixtures/list_storage_account_single.xml +24 -24
- data/test/fixtures/list_storage_accounts.xml +45 -45
- data/test/fixtures/list_virtual_networks.xml +92 -92
- data/test/fixtures/logging.xml +11 -11
- data/test/fixtures/management_certificate.pem +55 -55
- data/test/fixtures/messages.xml +12 -12
- data/test/fixtures/metrics.xml +10 -10
- data/test/fixtures/privatekey.key +28 -28
- data/test/fixtures/query_entities_empty_response.xml +7 -7
- data/test/fixtures/query_entities_response.xml +45 -45
- data/test/fixtures/queue_service_properties.xml +22 -22
- data/test/fixtures/queue_service_properties_original.xml +19 -19
- data/test/fixtures/queues.xml +16 -16
- data/test/fixtures/retention_policy.xml +5 -5
- data/test/fixtures/sb_default_create_queue_response.xml +23 -23
- data/test/fixtures/sb_default_create_relay_response.xml +15 -15
- data/test/fixtures/sb_default_create_topic_response.xml +18 -18
- data/test/fixtures/sb_get_access_token_response.txt +1 -1
- data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
- data/test/fixtures/storage_service_properties.xml +54 -54
- data/test/fixtures/update_storage_account.xml +16 -16
- data/test/fixtures/update_storage_error.xml +4 -4
- data/test/fixtures/updated_storage_accounts.xml +52 -52
- data/test/fixtures/virtual_machine.xml +113 -113
- data/test/fixtures/windows_virtual_machine.xml +106 -106
- data/test/integration/affinity_group/Affinity_test.rb +55 -55
- data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
- data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
- data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
- data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
- data/test/integration/blob/blob_gb18030_test.rb +199 -199
- data/test/integration/blob/blob_metadata_test.rb +75 -75
- data/test/integration/blob/blob_pages_test.rb +119 -119
- data/test/integration/blob/blob_properties_test.rb +77 -77
- data/test/integration/blob/block_blob_test.rb +254 -254
- data/test/integration/blob/container/container_acl_test.rb +69 -69
- data/test/integration/blob/container/container_metadata_test.rb +50 -50
- data/test/integration/blob/container/create_container_test.rb +60 -60
- data/test/integration/blob/container/delete_container_test.rb +39 -39
- data/test/integration/blob/container/get_container_properties_test.rb +48 -48
- data/test/integration/blob/container/list_containers_test.rb +79 -79
- data/test/integration/blob/container/root_container_test.rb +53 -53
- data/test/integration/blob/copy_blob_test.rb +113 -113
- data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
- data/test/integration/blob/create_page_blob_test.rb +83 -83
- data/test/integration/blob/delete_blob_test.rb +159 -159
- data/test/integration/blob/get_blob_test.rb +65 -65
- data/test/integration/blob/informative_errors_test.rb +38 -38
- data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
- data/test/integration/blob/lease/break_lease_test.rb +40 -40
- data/test/integration/blob/lease/release_lease_test.rb +40 -40
- data/test/integration/blob/lease/renew_lease_test.rb +42 -42
- data/test/integration/blob/list_blobs_test.rb +113 -113
- data/test/integration/cloud_service/Cloud_Create_test.rb +44 -44
- data/test/integration/cloud_service/Cloud_Delete_test.rb +44 -44
- data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
- data/test/integration/database/create_sql_server_test.rb +53 -53
- data/test/integration/database/delete_sql_server_firewall_test.rb +70 -70
- data/test/integration/database/delete_sql_server_test.rb +58 -58
- data/test/integration/database/list_sql_server_firewall_test.rb +45 -45
- data/test/integration/database/list_sql_servers_test.rb +44 -44
- data/test/integration/database/reset_password_sql_server_test.rb +55 -55
- data/test/integration/location/Location_List_test.rb +39 -39
- data/test/integration/queue/clear_messages_test.rb +42 -42
- data/test/integration/queue/create_message_test.rb +75 -75
- data/test/integration/queue/create_queue_test.rb +50 -50
- data/test/integration/queue/delete_message_test.rb +67 -67
- data/test/integration/queue/delete_queue_test.rb +45 -45
- data/test/integration/queue/informative_errors_test.rb +41 -41
- data/test/integration/queue/list_messages_encoded_test.rb +79 -79
- data/test/integration/queue/list_messages_test.rb +79 -79
- data/test/integration/queue/list_queues_test.rb +44 -44
- data/test/integration/queue/peek_messages_test.rb +59 -59
- data/test/integration/queue/queue_gb18030_test.rb +131 -131
- data/test/integration/queue/queue_metadata_test.rb +40 -40
- data/test/integration/queue/update_message_test.rb +74 -74
- data/test/integration/service_bus/informative_errors_test.rb +36 -36
- data/test/integration/service_bus/queues_scenario_test.rb +200 -200
- data/test/integration/service_bus/queues_test.rb +265 -265
- data/test/integration/service_bus/relay_test.rb +131 -131
- data/test/integration/service_bus/rules_test.rb +144 -144
- data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
- data/test/integration/service_bus/scenario_test.rb +101 -101
- data/test/integration/service_bus/subscriptions_test.rb +211 -211
- data/test/integration/service_bus/topics_scenario_test.rb +406 -406
- data/test/integration/service_bus/topics_test.rb +129 -129
- data/test/integration/storage_management/storage_management_test.rb +160 -160
- data/test/integration/table/create_table_test.rb +35 -35
- data/test/integration/table/delete_entity_batch_test.rb +106 -106
- data/test/integration/table/delete_entity_test.rb +93 -93
- data/test/integration/table/delete_table_test.rb +39 -39
- data/test/integration/table/get_table_test.rb +36 -36
- data/test/integration/table/informative_errors_test.rb +38 -38
- data/test/integration/table/insert_entity_batch_test.rb +99 -99
- data/test/integration/table/insert_entity_test.rb +87 -87
- data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
- data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
- data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
- data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
- data/test/integration/table/merge_entity_batch_test.rb +127 -127
- data/test/integration/table/merge_entity_test.rb +112 -112
- data/test/integration/table/query_entities_test.rb +194 -194
- data/test/integration/table/query_tables_test.rb +42 -42
- data/test/integration/table/query_test.rb +250 -250
- data/test/integration/table/table_acl_test.rb +51 -51
- data/test/integration/table/table_gb18030_test.rb +355 -355
- data/test/integration/table/update_entity_batch_test.rb +148 -148
- data/test/integration/table/update_entity_test.rb +130 -130
- data/test/integration/test_helper.rb +42 -42
- data/test/integration/vm/VM_Create_test.rb +260 -260
- data/test/integration/vm/VM_Delete_test.rb +55 -55
- data/test/integration/vm/VM_Operations_test.rb +173 -173
- data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
- data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
- data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
- data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
- data/test/support/env.rb +19 -19
- data/test/support/fixtures.rb +36 -36
- data/test/support/name_generator.rb +168 -168
- data/test/support/stubs.rb +42 -42
- data/test/support/virtual_machine_name_generator.rb +102 -102
- data/test/support/virtual_network_helper.rb +73 -73
- data/test/test_helper.rb +53 -53
- data/test/unit/affinity_group/affinity_group_test.rb +192 -192
- data/test/unit/affinity_group/serialization_test.rb +88 -88
- data/test/unit/base_management/location_test.rb +57 -57
- data/test/unit/blob/blob_service_test.rb +1946 -1946
- data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
- data/test/unit/cloud_service_management/serialization_test.rb +169 -169
- data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
- data/test/unit/core/auth/shared_key_test.rb +58 -58
- data/test/unit/core/auth/signer_test.rb +30 -30
- data/test/unit/core/http/http_error_test.rb +57 -57
- data/test/unit/core/http/http_request_test.rb +66 -66
- data/test/unit/core/http/http_response_test.rb +45 -45
- data/test/unit/core/http/retry_policy_test.rb +23 -23
- data/test/unit/database/serialization_test.rb +97 -97
- data/test/unit/database/sql_database_server_service_test.rb +288 -288
- data/test/unit/service/serialization_test.rb +532 -532
- data/test/unit/service/storage_service_test.rb +292 -292
- data/test/unit/storage_management/serialization_test.rb +232 -232
- data/test/unit/storage_management/storage_management_service_test.rb +261 -261
- data/test/unit/table/edmtype_test.rb +107 -107
- data/test/unit/virtual_machine_image_management/serialization_test.rb +35 -35
- data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +65 -65
- data/test/unit/virtual_machine_management/serialization_test.rb +258 -258
- data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +440 -440
- data/test/unit/vnet/serialization_test.rb +187 -187
- data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
- metadata +34 -27
@@ -1,52 +1,52 @@
|
|
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 "#get/set_acl" do
|
21
|
-
subject { Azure::Table::TableService.new }
|
22
|
-
let(:table_name){ TableNameHelper.name }
|
23
|
-
let(:signed_identifier) {
|
24
|
-
identifier = Azure::Service::SignedIdentifier.new
|
25
|
-
identifier.id = "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI="
|
26
|
-
identifier.access_policy = Azure::Service::AccessPolicy.new
|
27
|
-
identifier.access_policy.start = "2009-09-28T08:49:37.0000000Z"
|
28
|
-
identifier.access_policy.expiry = "2009-09-29T08:49:37.0000000Z"
|
29
|
-
identifier.access_policy.permission = "raud"
|
30
|
-
identifier
|
31
|
-
}
|
32
|
-
|
33
|
-
before {
|
34
|
-
subject.create_table table_name
|
35
|
-
}
|
36
|
-
after { TableNameHelper.clean }
|
37
|
-
|
38
|
-
it "sets and gets the ACL for a table" do
|
39
|
-
subject.set_table_acl(table_name, { :signed_identifiers => [ signed_identifier ] })
|
40
|
-
|
41
|
-
result = subject.get_table_acl table_name
|
42
|
-
result.must_be_kind_of Array
|
43
|
-
|
44
|
-
result.wont_be_empty
|
45
|
-
result.last.must_be_kind_of Azure::Service::SignedIdentifier
|
46
|
-
result.last.id.must_equal signed_identifier.id
|
47
|
-
result.last.access_policy.start.must_equal signed_identifier.access_policy.start
|
48
|
-
result.last.access_policy.expiry.must_equal signed_identifier.access_policy.expiry
|
49
|
-
result.last.access_policy.permission.must_equal signed_identifier.access_policy.permission
|
50
|
-
end
|
51
|
-
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/table/table_service"
|
17
|
+
require "azure/core/http/http_error"
|
18
|
+
|
19
|
+
describe Azure::Table::TableService do
|
20
|
+
describe "#get/set_acl" do
|
21
|
+
subject { Azure::Table::TableService.new }
|
22
|
+
let(:table_name){ TableNameHelper.name }
|
23
|
+
let(:signed_identifier) {
|
24
|
+
identifier = Azure::Service::SignedIdentifier.new
|
25
|
+
identifier.id = "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI="
|
26
|
+
identifier.access_policy = Azure::Service::AccessPolicy.new
|
27
|
+
identifier.access_policy.start = "2009-09-28T08:49:37.0000000Z"
|
28
|
+
identifier.access_policy.expiry = "2009-09-29T08:49:37.0000000Z"
|
29
|
+
identifier.access_policy.permission = "raud"
|
30
|
+
identifier
|
31
|
+
}
|
32
|
+
|
33
|
+
before {
|
34
|
+
subject.create_table table_name
|
35
|
+
}
|
36
|
+
after { TableNameHelper.clean }
|
37
|
+
|
38
|
+
it "sets and gets the ACL for a table" do
|
39
|
+
subject.set_table_acl(table_name, { :signed_identifiers => [ signed_identifier ] })
|
40
|
+
|
41
|
+
result = subject.get_table_acl table_name
|
42
|
+
result.must_be_kind_of Array
|
43
|
+
|
44
|
+
result.wont_be_empty
|
45
|
+
result.last.must_be_kind_of Azure::Service::SignedIdentifier
|
46
|
+
result.last.id.must_equal signed_identifier.id
|
47
|
+
result.last.access_policy.start.must_equal signed_identifier.access_policy.start
|
48
|
+
result.last.access_policy.expiry.must_equal signed_identifier.access_policy.expiry
|
49
|
+
result.last.access_policy.permission.must_equal signed_identifier.access_policy.permission
|
50
|
+
end
|
51
|
+
end
|
52
52
|
end
|
@@ -1,355 +1,355 @@
|
|
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 'Table GB-18030' do
|
19
|
-
subject { Azure::Table::TableService.new }
|
20
|
-
|
21
|
-
let(:table_name){ TableNameHelper.name }
|
22
|
-
|
23
|
-
before {
|
24
|
-
subject.create_table table_name
|
25
|
-
}
|
26
|
-
after { TableNameHelper.clean }
|
27
|
-
|
28
|
-
it 'Read/Write Table Name UTF-8' do
|
29
|
-
# Expected results: Failure, because the Table
|
30
|
-
# name can only contain ASCII characters, per
|
31
|
-
# the Table Service spec.
|
32
|
-
GB18030TestStrings.get.each { |k,v|
|
33
|
-
begin
|
34
|
-
subject.create_table table_name + v.encode("UTF-8")
|
35
|
-
flunk "No exception"
|
36
|
-
rescue
|
37
|
-
# Add validation?
|
38
|
-
end
|
39
|
-
}
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'Read/Write Table Name GB-18030' do
|
43
|
-
# Expected results: Failure, because the Table
|
44
|
-
# name can only contain ASCII characters, per
|
45
|
-
# the Table Service spec.
|
46
|
-
GB18030TestStrings.get.each { |k,v|
|
47
|
-
begin
|
48
|
-
subject.create_table table_name + v.encode("GB18030")
|
49
|
-
flunk "No exception"
|
50
|
-
rescue
|
51
|
-
# Add validation?
|
52
|
-
end
|
53
|
-
}
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'Read, Write, and Query Property Names UTF-8' do
|
57
|
-
counter = 1
|
58
|
-
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
59
|
-
prop = "prop" + v.encode("UTF-8")
|
60
|
-
counter = counter + 1;
|
61
|
-
entity_properties = {
|
62
|
-
"PartitionKey" => "x",
|
63
|
-
"RowKey" => k + counter.to_s,
|
64
|
-
prop => "value",
|
65
|
-
}
|
66
|
-
entity_properties2 = {
|
67
|
-
"PartitionKey" => "x",
|
68
|
-
"RowKey" => k + counter.to_s + "2",
|
69
|
-
prop => "value2",
|
70
|
-
}
|
71
|
-
result = subject.insert_entity table_name, entity_properties
|
72
|
-
subject.insert_entity table_name, entity_properties2
|
73
|
-
result.properties[prop].must_equal "value"
|
74
|
-
if (k != "Chinese_2B5" && k != "Tibetan") then
|
75
|
-
filter = prop + " eq 'value'"
|
76
|
-
result = subject.query_entities table_name, { :filter => filter }
|
77
|
-
result.length.must_equal 1
|
78
|
-
result.first.properties[prop].must_equal "value"
|
79
|
-
end
|
80
|
-
}
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'Read, Write, and Query Property Names GB18030' do
|
84
|
-
counter = 1
|
85
|
-
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
86
|
-
prop = ("prop" + v).encode("GB18030")
|
87
|
-
counter = counter + 1;
|
88
|
-
entity_properties = {
|
89
|
-
"PartitionKey" => "x",
|
90
|
-
"RowKey" => k + counter.to_s
|
91
|
-
}
|
92
|
-
entity_properties[prop] = "value"
|
93
|
-
entity_properties2 = {
|
94
|
-
"PartitionKey" => "x",
|
95
|
-
"RowKey" => k + counter.to_s + "2"
|
96
|
-
}
|
97
|
-
entity_properties2[prop] = "value2"
|
98
|
-
|
99
|
-
result = subject.insert_entity table_name, entity_properties
|
100
|
-
subject.insert_entity table_name, entity_properties2
|
101
|
-
result.properties[prop.encode("UTF-8")].must_equal "value"
|
102
|
-
if (k != "Chinese_2B5" && k != "Tibetan") then
|
103
|
-
filter = prop + " eq 'value'"
|
104
|
-
result = subject.query_entities table_name, { :filter => filter }
|
105
|
-
result.length.must_equal 1
|
106
|
-
result.first.properties[prop.encode("UTF-8")].must_equal "value"
|
107
|
-
end
|
108
|
-
}
|
109
|
-
end
|
110
|
-
|
111
|
-
it 'Read, Write, and Query Property Values UTF-8' do
|
112
|
-
counter = 1
|
113
|
-
GB18030TestStrings.get.each { |k,v|
|
114
|
-
value = "value" + v.encode("UTF-8")
|
115
|
-
counter = counter + 1;
|
116
|
-
entity_properties = {
|
117
|
-
"PartitionKey" => "x",
|
118
|
-
"RowKey" => k + counter.to_s,
|
119
|
-
"Value" => value,
|
120
|
-
}
|
121
|
-
entity_properties2 = {
|
122
|
-
"PartitionKey" => "x",
|
123
|
-
"RowKey" => k + counter.to_s + "2",
|
124
|
-
"Value" => value + "2"
|
125
|
-
}
|
126
|
-
result = subject.insert_entity table_name, entity_properties
|
127
|
-
subject.insert_entity table_name, entity_properties2
|
128
|
-
result.properties["Value"].must_equal value
|
129
|
-
filter = "Value eq '" + value + "'"
|
130
|
-
result = subject.query_entities table_name, { :filter => filter }
|
131
|
-
result.length.must_equal 1
|
132
|
-
result.first.properties["Value"].must_equal value
|
133
|
-
}
|
134
|
-
end
|
135
|
-
|
136
|
-
it 'Read, Write, and Query Property Values GB18030' do
|
137
|
-
counter = 1
|
138
|
-
GB18030TestStrings.get.each { |k,v|
|
139
|
-
value = "value" + v.encode("GB18030")
|
140
|
-
counter = counter + 1;
|
141
|
-
entity_properties = {
|
142
|
-
"PartitionKey" => "x",
|
143
|
-
"RowKey" => k + counter.to_s,
|
144
|
-
"Value" => value,
|
145
|
-
}
|
146
|
-
entity_properties2 = {
|
147
|
-
"PartitionKey" => "x",
|
148
|
-
"RowKey" => k + counter.to_s + "2",
|
149
|
-
"Value" => value + "2"
|
150
|
-
}
|
151
|
-
result = subject.insert_entity table_name, entity_properties
|
152
|
-
subject.insert_entity table_name, entity_properties2
|
153
|
-
result.properties["Value"].encode("UTF-8").must_equal value.encode("UTF-8")
|
154
|
-
filter = "Value eq '" + value + "'"
|
155
|
-
result = subject.query_entities table_name, { :filter => filter }
|
156
|
-
result.length.must_equal 1
|
157
|
-
result.first.properties["Value"].encode("UTF-8").must_equal value.encode("UTF-8")
|
158
|
-
}
|
159
|
-
end
|
160
|
-
|
161
|
-
it 'Read, Write, and Query Key Values UTF-8' do
|
162
|
-
GB18030TestStrings.get.each { |k,v|
|
163
|
-
value = "value" + v.encode("UTF-8")
|
164
|
-
entity_properties = {
|
165
|
-
"PartitionKey" => value,
|
166
|
-
"RowKey" => value,
|
167
|
-
}
|
168
|
-
result = subject.insert_entity table_name, entity_properties
|
169
|
-
result.properties["PartitionKey"].must_equal value
|
170
|
-
result.properties["RowKey"].must_equal value
|
171
|
-
if k != 'ChineseExtB' then
|
172
|
-
# Service does not support surrogates in key in URL
|
173
|
-
result = subject.get_entity(table_name, value, value)
|
174
|
-
result.properties["PartitionKey"].must_equal value
|
175
|
-
result.properties["RowKey"].must_equal value
|
176
|
-
subject.delete_entity(table_name, value, value)
|
177
|
-
begin
|
178
|
-
# Expect error because the entity should be gone
|
179
|
-
result = subject.get_entity(table_name, value, value)
|
180
|
-
flunk "No exception"
|
181
|
-
rescue Azure::Core::Http::HTTPError => error
|
182
|
-
error.status_code.must_equal 404
|
183
|
-
end
|
184
|
-
end
|
185
|
-
}
|
186
|
-
end
|
187
|
-
|
188
|
-
it 'Read, Write, and Query Key Values GB18030' do
|
189
|
-
GB18030TestStrings.get.each { |k,v|
|
190
|
-
value = ("value" + v).encode("GB18030")
|
191
|
-
entity_properties = {
|
192
|
-
"PartitionKey" => value.encode("UTF-8"),
|
193
|
-
"RowKey" => value.encode("UTF-8")
|
194
|
-
}
|
195
|
-
result = subject.insert_entity table_name, entity_properties
|
196
|
-
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
197
|
-
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
198
|
-
if k != 'ChineseExtB' then
|
199
|
-
result = subject.get_entity(table_name, value, value)
|
200
|
-
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
201
|
-
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
202
|
-
subject.delete_entity(table_name, value, value)
|
203
|
-
begin
|
204
|
-
# Expect error because the entity should be gone
|
205
|
-
result = subject.get_entity(table_name, value, value)
|
206
|
-
flunk "No exception"
|
207
|
-
rescue Azure::Core::Http::HTTPError => error
|
208
|
-
error.status_code.must_equal 404
|
209
|
-
end
|
210
|
-
end
|
211
|
-
}
|
212
|
-
end
|
213
|
-
|
214
|
-
# Batch
|
215
|
-
|
216
|
-
it 'Batch Property Names UTF-8' do
|
217
|
-
counter = 1
|
218
|
-
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
219
|
-
counter = counter + 1;
|
220
|
-
prop = "prop" + v.encode("UTF-8")
|
221
|
-
batch = Azure::Table::Batch.new table_name, "x"
|
222
|
-
batch.insert k + counter.to_s, { prop => "value" }
|
223
|
-
batch.insert k + counter.to_s + "2", { prop => "value2" }
|
224
|
-
results = subject.execute_batch batch
|
225
|
-
results[0].properties[prop].must_equal "value"
|
226
|
-
if (k != "Chinese_2B5" && k != "Tibetan") then
|
227
|
-
filter = prop + " eq 'value'"
|
228
|
-
result = subject.query_entities table_name, { :filter => filter }
|
229
|
-
result.length.must_equal 1
|
230
|
-
result.first.properties[prop.encode("UTF-8")].must_equal "value"
|
231
|
-
end
|
232
|
-
}
|
233
|
-
end
|
234
|
-
|
235
|
-
it 'Batch Property Names GB18030' do
|
236
|
-
counter = 1
|
237
|
-
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
238
|
-
counter = counter + 1;
|
239
|
-
prop = "prop" + v.encode("GB18030")
|
240
|
-
batch = Azure::Table::Batch.new table_name, "x"
|
241
|
-
batch.insert k + counter.to_s, { prop => "value" }
|
242
|
-
batch.insert k + counter.to_s + "2", { prop => "value2" }
|
243
|
-
results = subject.execute_batch batch
|
244
|
-
results[0].properties[prop.encode("UTF-8")].must_equal "value"
|
245
|
-
if (k != "Chinese_2B5" && k != "Tibetan") then
|
246
|
-
filter = prop + " eq 'value'"
|
247
|
-
result = subject.query_entities table_name, { :filter => filter }
|
248
|
-
result.length.must_equal 1
|
249
|
-
result.first.properties[prop.encode("UTF-8")].must_equal "value"
|
250
|
-
end
|
251
|
-
}
|
252
|
-
end
|
253
|
-
|
254
|
-
it 'Batch Property Values UTF-8' do
|
255
|
-
counter = 1
|
256
|
-
GB18030TestStrings.get.each { |k,v|
|
257
|
-
value = "value" + v.encode("UTF-8")
|
258
|
-
counter = counter + 1;
|
259
|
-
batch = Azure::Table::Batch.new table_name, "x"
|
260
|
-
batch.insert k + counter.to_s, { "key" => value }
|
261
|
-
batch.insert k + counter.to_s + "2", { "key" => value + "2" }
|
262
|
-
results = subject.execute_batch batch
|
263
|
-
results[0].properties["key"].must_equal value
|
264
|
-
filter = "key eq '" + value + "'"
|
265
|
-
result = subject.query_entities table_name, { :filter => filter }
|
266
|
-
result.length.must_equal 1
|
267
|
-
result.first.properties["key"].encode("UTF-8").must_equal value.encode("UTF-8")
|
268
|
-
}
|
269
|
-
end
|
270
|
-
|
271
|
-
it 'Batch Property Values GB18030' do
|
272
|
-
counter = 1
|
273
|
-
GB18030TestStrings.get.each { |k,v|
|
274
|
-
value = "value" + v.encode("GB18030")
|
275
|
-
counter = counter + 1;
|
276
|
-
batch = Azure::Table::Batch.new table_name, "x"
|
277
|
-
batch.insert k + counter.to_s, { "key" => value }
|
278
|
-
batch.insert k + counter.to_s + "2", { "key" => value + "2" }
|
279
|
-
results = subject.execute_batch batch
|
280
|
-
results[0].properties["key"].encode("UTF-8").must_equal value.encode("UTF-8")
|
281
|
-
filter = "key eq '" + value + "'"
|
282
|
-
result = subject.query_entities table_name, { :filter => filter }
|
283
|
-
result.length.must_equal 1
|
284
|
-
result.first.properties["key"].encode("UTF-8").must_equal value.encode("UTF-8")
|
285
|
-
}
|
286
|
-
end
|
287
|
-
|
288
|
-
it 'Batch Key Values UTF-8' do
|
289
|
-
counter = 1
|
290
|
-
GB18030TestStrings.get.each { |k,v|
|
291
|
-
value = "value" + v.encode("UTF-8")
|
292
|
-
counter = counter + 1;
|
293
|
-
batch = Azure::Table::Batch.new table_name, value
|
294
|
-
batch.insert value, { }
|
295
|
-
batch.insert value + "2", { }
|
296
|
-
results = subject.execute_batch batch
|
297
|
-
results[0].properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
298
|
-
results[0].properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
299
|
-
if k != 'ChineseExtB' then
|
300
|
-
# Service does not support surrogates in key in URL
|
301
|
-
result = subject.get_entity(table_name, value, value)
|
302
|
-
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
303
|
-
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
304
|
-
end
|
305
|
-
batch = Azure::Table::Batch.new table_name, value
|
306
|
-
batch.delete value
|
307
|
-
batch.delete value + "2"
|
308
|
-
results = subject.execute_batch batch
|
309
|
-
if k != 'ChineseExtB' then
|
310
|
-
# Service does not support surrogates in key in URL
|
311
|
-
begin
|
312
|
-
# Expect error because the entity should be gone
|
313
|
-
result = subject.get_entity(table_name, value, value)
|
314
|
-
flunk "No exception"
|
315
|
-
rescue Azure::Core::Http::HTTPError => error
|
316
|
-
error.status_code.must_equal 404
|
317
|
-
end
|
318
|
-
end
|
319
|
-
}
|
320
|
-
end
|
321
|
-
|
322
|
-
it 'Batch Key Values GB18030' do
|
323
|
-
counter = 1
|
324
|
-
GB18030TestStrings.get.each { |k,v|
|
325
|
-
value = ("value" + v).encode("GB18030")
|
326
|
-
counter = counter + 1;
|
327
|
-
batch = Azure::Table::Batch.new table_name, value
|
328
|
-
batch.insert value, { }
|
329
|
-
batch.insert value + "2", { }
|
330
|
-
results = subject.execute_batch batch
|
331
|
-
results[0].properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
332
|
-
results[0].properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
333
|
-
if k != 'ChineseExtB' then
|
334
|
-
# Service does not support surrogates in key in URL
|
335
|
-
result = subject.get_entity(table_name, value, value)
|
336
|
-
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
337
|
-
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
338
|
-
end
|
339
|
-
batch = Azure::Table::Batch.new table_name, value
|
340
|
-
batch.delete value
|
341
|
-
batch.delete value + "2"
|
342
|
-
results = subject.execute_batch batch
|
343
|
-
if k != 'ChineseExtB' then
|
344
|
-
# Service does not support surrogates in key in URL
|
345
|
-
begin
|
346
|
-
# Expect error because the entity should be gone
|
347
|
-
result = subject.get_entity(table_name, value, value)
|
348
|
-
flunk "No exception"
|
349
|
-
rescue Azure::Core::Http::HTTPError => error
|
350
|
-
error.status_code.must_equal 404
|
351
|
-
end
|
352
|
-
end
|
353
|
-
}
|
354
|
-
end
|
355
|
-
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 'Table GB-18030' do
|
19
|
+
subject { Azure::Table::TableService.new }
|
20
|
+
|
21
|
+
let(:table_name){ TableNameHelper.name }
|
22
|
+
|
23
|
+
before {
|
24
|
+
subject.create_table table_name
|
25
|
+
}
|
26
|
+
after { TableNameHelper.clean }
|
27
|
+
|
28
|
+
it 'Read/Write Table Name UTF-8' do
|
29
|
+
# Expected results: Failure, because the Table
|
30
|
+
# name can only contain ASCII characters, per
|
31
|
+
# the Table Service spec.
|
32
|
+
GB18030TestStrings.get.each { |k,v|
|
33
|
+
begin
|
34
|
+
subject.create_table table_name + v.encode("UTF-8")
|
35
|
+
flunk "No exception"
|
36
|
+
rescue
|
37
|
+
# Add validation?
|
38
|
+
end
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'Read/Write Table Name GB-18030' do
|
43
|
+
# Expected results: Failure, because the Table
|
44
|
+
# name can only contain ASCII characters, per
|
45
|
+
# the Table Service spec.
|
46
|
+
GB18030TestStrings.get.each { |k,v|
|
47
|
+
begin
|
48
|
+
subject.create_table table_name + v.encode("GB18030")
|
49
|
+
flunk "No exception"
|
50
|
+
rescue
|
51
|
+
# Add validation?
|
52
|
+
end
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'Read, Write, and Query Property Names UTF-8' do
|
57
|
+
counter = 1
|
58
|
+
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
59
|
+
prop = "prop" + v.encode("UTF-8")
|
60
|
+
counter = counter + 1;
|
61
|
+
entity_properties = {
|
62
|
+
"PartitionKey" => "x",
|
63
|
+
"RowKey" => k + counter.to_s,
|
64
|
+
prop => "value",
|
65
|
+
}
|
66
|
+
entity_properties2 = {
|
67
|
+
"PartitionKey" => "x",
|
68
|
+
"RowKey" => k + counter.to_s + "2",
|
69
|
+
prop => "value2",
|
70
|
+
}
|
71
|
+
result = subject.insert_entity table_name, entity_properties
|
72
|
+
subject.insert_entity table_name, entity_properties2
|
73
|
+
result.properties[prop].must_equal "value"
|
74
|
+
if (k != "Chinese_2B5" && k != "Tibetan") then
|
75
|
+
filter = prop + " eq 'value'"
|
76
|
+
result = subject.query_entities table_name, { :filter => filter }
|
77
|
+
result.length.must_equal 1
|
78
|
+
result.first.properties[prop].must_equal "value"
|
79
|
+
end
|
80
|
+
}
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'Read, Write, and Query Property Names GB18030' do
|
84
|
+
counter = 1
|
85
|
+
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
86
|
+
prop = ("prop" + v).encode("GB18030")
|
87
|
+
counter = counter + 1;
|
88
|
+
entity_properties = {
|
89
|
+
"PartitionKey" => "x",
|
90
|
+
"RowKey" => k + counter.to_s
|
91
|
+
}
|
92
|
+
entity_properties[prop] = "value"
|
93
|
+
entity_properties2 = {
|
94
|
+
"PartitionKey" => "x",
|
95
|
+
"RowKey" => k + counter.to_s + "2"
|
96
|
+
}
|
97
|
+
entity_properties2[prop] = "value2"
|
98
|
+
|
99
|
+
result = subject.insert_entity table_name, entity_properties
|
100
|
+
subject.insert_entity table_name, entity_properties2
|
101
|
+
result.properties[prop.encode("UTF-8")].must_equal "value"
|
102
|
+
if (k != "Chinese_2B5" && k != "Tibetan") then
|
103
|
+
filter = prop + " eq 'value'"
|
104
|
+
result = subject.query_entities table_name, { :filter => filter }
|
105
|
+
result.length.must_equal 1
|
106
|
+
result.first.properties[prop.encode("UTF-8")].must_equal "value"
|
107
|
+
end
|
108
|
+
}
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'Read, Write, and Query Property Values UTF-8' do
|
112
|
+
counter = 1
|
113
|
+
GB18030TestStrings.get.each { |k,v|
|
114
|
+
value = "value" + v.encode("UTF-8")
|
115
|
+
counter = counter + 1;
|
116
|
+
entity_properties = {
|
117
|
+
"PartitionKey" => "x",
|
118
|
+
"RowKey" => k + counter.to_s,
|
119
|
+
"Value" => value,
|
120
|
+
}
|
121
|
+
entity_properties2 = {
|
122
|
+
"PartitionKey" => "x",
|
123
|
+
"RowKey" => k + counter.to_s + "2",
|
124
|
+
"Value" => value + "2"
|
125
|
+
}
|
126
|
+
result = subject.insert_entity table_name, entity_properties
|
127
|
+
subject.insert_entity table_name, entity_properties2
|
128
|
+
result.properties["Value"].must_equal value
|
129
|
+
filter = "Value eq '" + value + "'"
|
130
|
+
result = subject.query_entities table_name, { :filter => filter }
|
131
|
+
result.length.must_equal 1
|
132
|
+
result.first.properties["Value"].must_equal value
|
133
|
+
}
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'Read, Write, and Query Property Values GB18030' do
|
137
|
+
counter = 1
|
138
|
+
GB18030TestStrings.get.each { |k,v|
|
139
|
+
value = "value" + v.encode("GB18030")
|
140
|
+
counter = counter + 1;
|
141
|
+
entity_properties = {
|
142
|
+
"PartitionKey" => "x",
|
143
|
+
"RowKey" => k + counter.to_s,
|
144
|
+
"Value" => value,
|
145
|
+
}
|
146
|
+
entity_properties2 = {
|
147
|
+
"PartitionKey" => "x",
|
148
|
+
"RowKey" => k + counter.to_s + "2",
|
149
|
+
"Value" => value + "2"
|
150
|
+
}
|
151
|
+
result = subject.insert_entity table_name, entity_properties
|
152
|
+
subject.insert_entity table_name, entity_properties2
|
153
|
+
result.properties["Value"].encode("UTF-8").must_equal value.encode("UTF-8")
|
154
|
+
filter = "Value eq '" + value + "'"
|
155
|
+
result = subject.query_entities table_name, { :filter => filter }
|
156
|
+
result.length.must_equal 1
|
157
|
+
result.first.properties["Value"].encode("UTF-8").must_equal value.encode("UTF-8")
|
158
|
+
}
|
159
|
+
end
|
160
|
+
|
161
|
+
it 'Read, Write, and Query Key Values UTF-8' do
|
162
|
+
GB18030TestStrings.get.each { |k,v|
|
163
|
+
value = "value" + v.encode("UTF-8")
|
164
|
+
entity_properties = {
|
165
|
+
"PartitionKey" => value,
|
166
|
+
"RowKey" => value,
|
167
|
+
}
|
168
|
+
result = subject.insert_entity table_name, entity_properties
|
169
|
+
result.properties["PartitionKey"].must_equal value
|
170
|
+
result.properties["RowKey"].must_equal value
|
171
|
+
if k != 'ChineseExtB' then
|
172
|
+
# Service does not support surrogates in key in URL
|
173
|
+
result = subject.get_entity(table_name, value, value)
|
174
|
+
result.properties["PartitionKey"].must_equal value
|
175
|
+
result.properties["RowKey"].must_equal value
|
176
|
+
subject.delete_entity(table_name, value, value)
|
177
|
+
begin
|
178
|
+
# Expect error because the entity should be gone
|
179
|
+
result = subject.get_entity(table_name, value, value)
|
180
|
+
flunk "No exception"
|
181
|
+
rescue Azure::Core::Http::HTTPError => error
|
182
|
+
error.status_code.must_equal 404
|
183
|
+
end
|
184
|
+
end
|
185
|
+
}
|
186
|
+
end
|
187
|
+
|
188
|
+
it 'Read, Write, and Query Key Values GB18030' do
|
189
|
+
GB18030TestStrings.get.each { |k,v|
|
190
|
+
value = ("value" + v).encode("GB18030")
|
191
|
+
entity_properties = {
|
192
|
+
"PartitionKey" => value.encode("UTF-8"),
|
193
|
+
"RowKey" => value.encode("UTF-8")
|
194
|
+
}
|
195
|
+
result = subject.insert_entity table_name, entity_properties
|
196
|
+
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
197
|
+
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
198
|
+
if k != 'ChineseExtB' then
|
199
|
+
result = subject.get_entity(table_name, value, value)
|
200
|
+
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
201
|
+
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
202
|
+
subject.delete_entity(table_name, value, value)
|
203
|
+
begin
|
204
|
+
# Expect error because the entity should be gone
|
205
|
+
result = subject.get_entity(table_name, value, value)
|
206
|
+
flunk "No exception"
|
207
|
+
rescue Azure::Core::Http::HTTPError => error
|
208
|
+
error.status_code.must_equal 404
|
209
|
+
end
|
210
|
+
end
|
211
|
+
}
|
212
|
+
end
|
213
|
+
|
214
|
+
# Batch
|
215
|
+
|
216
|
+
it 'Batch Property Names UTF-8' do
|
217
|
+
counter = 1
|
218
|
+
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
219
|
+
counter = counter + 1;
|
220
|
+
prop = "prop" + v.encode("UTF-8")
|
221
|
+
batch = Azure::Table::Batch.new table_name, "x"
|
222
|
+
batch.insert k + counter.to_s, { prop => "value" }
|
223
|
+
batch.insert k + counter.to_s + "2", { prop => "value2" }
|
224
|
+
results = subject.execute_batch batch
|
225
|
+
results[0].properties[prop].must_equal "value"
|
226
|
+
if (k != "Chinese_2B5" && k != "Tibetan") then
|
227
|
+
filter = prop + " eq 'value'"
|
228
|
+
result = subject.query_entities table_name, { :filter => filter }
|
229
|
+
result.length.must_equal 1
|
230
|
+
result.first.properties[prop.encode("UTF-8")].must_equal "value"
|
231
|
+
end
|
232
|
+
}
|
233
|
+
end
|
234
|
+
|
235
|
+
it 'Batch Property Names GB18030' do
|
236
|
+
counter = 1
|
237
|
+
GB18030TestStrings.get_xml_10_fourth_ed_identifiers.each { |k,v|
|
238
|
+
counter = counter + 1;
|
239
|
+
prop = "prop" + v.encode("GB18030")
|
240
|
+
batch = Azure::Table::Batch.new table_name, "x"
|
241
|
+
batch.insert k + counter.to_s, { prop => "value" }
|
242
|
+
batch.insert k + counter.to_s + "2", { prop => "value2" }
|
243
|
+
results = subject.execute_batch batch
|
244
|
+
results[0].properties[prop.encode("UTF-8")].must_equal "value"
|
245
|
+
if (k != "Chinese_2B5" && k != "Tibetan") then
|
246
|
+
filter = prop + " eq 'value'"
|
247
|
+
result = subject.query_entities table_name, { :filter => filter }
|
248
|
+
result.length.must_equal 1
|
249
|
+
result.first.properties[prop.encode("UTF-8")].must_equal "value"
|
250
|
+
end
|
251
|
+
}
|
252
|
+
end
|
253
|
+
|
254
|
+
it 'Batch Property Values UTF-8' do
|
255
|
+
counter = 1
|
256
|
+
GB18030TestStrings.get.each { |k,v|
|
257
|
+
value = "value" + v.encode("UTF-8")
|
258
|
+
counter = counter + 1;
|
259
|
+
batch = Azure::Table::Batch.new table_name, "x"
|
260
|
+
batch.insert k + counter.to_s, { "key" => value }
|
261
|
+
batch.insert k + counter.to_s + "2", { "key" => value + "2" }
|
262
|
+
results = subject.execute_batch batch
|
263
|
+
results[0].properties["key"].must_equal value
|
264
|
+
filter = "key eq '" + value + "'"
|
265
|
+
result = subject.query_entities table_name, { :filter => filter }
|
266
|
+
result.length.must_equal 1
|
267
|
+
result.first.properties["key"].encode("UTF-8").must_equal value.encode("UTF-8")
|
268
|
+
}
|
269
|
+
end
|
270
|
+
|
271
|
+
it 'Batch Property Values GB18030' do
|
272
|
+
counter = 1
|
273
|
+
GB18030TestStrings.get.each { |k,v|
|
274
|
+
value = "value" + v.encode("GB18030")
|
275
|
+
counter = counter + 1;
|
276
|
+
batch = Azure::Table::Batch.new table_name, "x"
|
277
|
+
batch.insert k + counter.to_s, { "key" => value }
|
278
|
+
batch.insert k + counter.to_s + "2", { "key" => value + "2" }
|
279
|
+
results = subject.execute_batch batch
|
280
|
+
results[0].properties["key"].encode("UTF-8").must_equal value.encode("UTF-8")
|
281
|
+
filter = "key eq '" + value + "'"
|
282
|
+
result = subject.query_entities table_name, { :filter => filter }
|
283
|
+
result.length.must_equal 1
|
284
|
+
result.first.properties["key"].encode("UTF-8").must_equal value.encode("UTF-8")
|
285
|
+
}
|
286
|
+
end
|
287
|
+
|
288
|
+
it 'Batch Key Values UTF-8' do
|
289
|
+
counter = 1
|
290
|
+
GB18030TestStrings.get.each { |k,v|
|
291
|
+
value = "value" + v.encode("UTF-8")
|
292
|
+
counter = counter + 1;
|
293
|
+
batch = Azure::Table::Batch.new table_name, value
|
294
|
+
batch.insert value, { }
|
295
|
+
batch.insert value + "2", { }
|
296
|
+
results = subject.execute_batch batch
|
297
|
+
results[0].properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
298
|
+
results[0].properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
299
|
+
if k != 'ChineseExtB' then
|
300
|
+
# Service does not support surrogates in key in URL
|
301
|
+
result = subject.get_entity(table_name, value, value)
|
302
|
+
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
303
|
+
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
304
|
+
end
|
305
|
+
batch = Azure::Table::Batch.new table_name, value
|
306
|
+
batch.delete value
|
307
|
+
batch.delete value + "2"
|
308
|
+
results = subject.execute_batch batch
|
309
|
+
if k != 'ChineseExtB' then
|
310
|
+
# Service does not support surrogates in key in URL
|
311
|
+
begin
|
312
|
+
# Expect error because the entity should be gone
|
313
|
+
result = subject.get_entity(table_name, value, value)
|
314
|
+
flunk "No exception"
|
315
|
+
rescue Azure::Core::Http::HTTPError => error
|
316
|
+
error.status_code.must_equal 404
|
317
|
+
end
|
318
|
+
end
|
319
|
+
}
|
320
|
+
end
|
321
|
+
|
322
|
+
it 'Batch Key Values GB18030' do
|
323
|
+
counter = 1
|
324
|
+
GB18030TestStrings.get.each { |k,v|
|
325
|
+
value = ("value" + v).encode("GB18030")
|
326
|
+
counter = counter + 1;
|
327
|
+
batch = Azure::Table::Batch.new table_name, value
|
328
|
+
batch.insert value, { }
|
329
|
+
batch.insert value + "2", { }
|
330
|
+
results = subject.execute_batch batch
|
331
|
+
results[0].properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
332
|
+
results[0].properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
333
|
+
if k != 'ChineseExtB' then
|
334
|
+
# Service does not support surrogates in key in URL
|
335
|
+
result = subject.get_entity(table_name, value, value)
|
336
|
+
result.properties["PartitionKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
337
|
+
result.properties["RowKey"].encode("UTF-8").must_equal value.encode("UTF-8")
|
338
|
+
end
|
339
|
+
batch = Azure::Table::Batch.new table_name, value
|
340
|
+
batch.delete value
|
341
|
+
batch.delete value + "2"
|
342
|
+
results = subject.execute_batch batch
|
343
|
+
if k != 'ChineseExtB' then
|
344
|
+
# Service does not support surrogates in key in URL
|
345
|
+
begin
|
346
|
+
# Expect error because the entity should be gone
|
347
|
+
result = subject.get_entity(table_name, value, value)
|
348
|
+
flunk "No exception"
|
349
|
+
rescue Azure::Core::Http::HTTPError => error
|
350
|
+
error.status_code.must_equal 404
|
351
|
+
end
|
352
|
+
end
|
353
|
+
}
|
354
|
+
end
|
355
|
+
end
|