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,182 +1,182 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require "integration/test_helper"
|
16
|
-
require "azure/blob/blob_service"
|
17
|
-
|
18
|
-
describe 'Service Bus Queue GB-18030' do
|
19
|
-
subject { Azure::ServiceBus::ServiceBusService.new }
|
20
|
-
let(:queue_name) { ServiceBusQueueNameHelper.name }
|
21
|
-
|
22
|
-
before { subject.create_queue queue_name }
|
23
|
-
after { ServiceBusQueueNameHelper.clean }
|
24
|
-
|
25
|
-
it 'Read/Write SB Queue Name UTF-8' do
|
26
|
-
# Expected results: Failure, because the Queue
|
27
|
-
# name can only contain ASCII
|
28
|
-
# characters, per the Service Bus Queue spec.
|
29
|
-
GB18030TestStrings.get.each { |k,v|
|
30
|
-
begin
|
31
|
-
subject.create_queue queue_name + v.encode("UTF-8")
|
32
|
-
flunk "No exception"
|
33
|
-
rescue
|
34
|
-
# Add validation?
|
35
|
-
end
|
36
|
-
}
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'Read/Write SB Queue Name GB-18030' do
|
40
|
-
# Expected results: Failure, because the Queue
|
41
|
-
# name can only contain ASCII
|
42
|
-
# characters, per the Service Bus Queue spec.
|
43
|
-
GB18030TestStrings.get.each { |k,v|
|
44
|
-
begin
|
45
|
-
subject.create_queue queue_name + v.encode("GB18030")
|
46
|
-
flunk "No exception"
|
47
|
-
rescue
|
48
|
-
# Add validation?
|
49
|
-
end
|
50
|
-
}
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'Read/Write SB Queue Metadata UTF-8' do
|
54
|
-
GB18030TestStrings.get.each { |k,v|
|
55
|
-
begin
|
56
|
-
subject.create_queue queue_name, {
|
57
|
-
:dead_lettering_on_message_expiration => v.encode("UTF-8"),
|
58
|
-
}
|
59
|
-
flunk "No exception"
|
60
|
-
rescue Azure::Core::Http::HTTPError => error
|
61
|
-
error.status_code.must_equal 400
|
62
|
-
end
|
63
|
-
}
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'Read/Write SB Queue Metadata GB18030' do
|
67
|
-
GB18030TestStrings.get.each { |k,v|
|
68
|
-
begin
|
69
|
-
subject.create_queue queue_name, {
|
70
|
-
:dead_lettering_on_message_expiration => v.encode("GB18030"),
|
71
|
-
}
|
72
|
-
flunk "No exception"
|
73
|
-
rescue Azure::Core::Http::HTTPError => error
|
74
|
-
error.status_code.must_equal 400
|
75
|
-
end
|
76
|
-
}
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'Read/Write SB Queue message UTF-8' do
|
80
|
-
GB18030TestStrings.get.each { |k,v|
|
81
|
-
msg = Azure::ServiceBus::BrokeredMessage.new(v.encode("UTF-8"))
|
82
|
-
subject.send_queue_message queue_name, msg
|
83
|
-
retrieved = subject.read_delete_queue_message queue_name
|
84
|
-
retrieved.body.force_encoding("UTF-8").must_equal v.encode("UTF-8")
|
85
|
-
}
|
86
|
-
end
|
87
|
-
|
88
|
-
it 'Read/Write SB Queue message GB18030' do
|
89
|
-
GB18030TestStrings.get.each { |k,v|
|
90
|
-
msg = Azure::ServiceBus::BrokeredMessage.new(v.encode("GB18030"))
|
91
|
-
subject.send_queue_message queue_name, msg
|
92
|
-
retrieved = subject.read_delete_queue_message queue_name
|
93
|
-
retrieved.body.force_encoding("GB18030").must_equal v.encode("GB18030")
|
94
|
-
}
|
95
|
-
end
|
96
|
-
|
97
|
-
# it 'Read/Write SB Queue message Metadata UTF-8' do
|
98
|
-
# GB18030TestStrings.get.each { |k,v|
|
99
|
-
# msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
100
|
-
# m.to = v.encode("UTF-8")
|
101
|
-
# end
|
102
|
-
# begin
|
103
|
-
# subject.send_queue_message queue_name, msg
|
104
|
-
# # Do not flunk here; the service appears to let some
|
105
|
-
# # "bad" strings go through
|
106
|
-
# rescue Azure::Core::Http::HTTPError => error
|
107
|
-
# error.status_code.must_equal 500
|
108
|
-
# end
|
109
|
-
# }
|
110
|
-
# end
|
111
|
-
|
112
|
-
# it 'Read/Write SB Queue message Metadata GB18030' do
|
113
|
-
# GB18030TestStrings.get.each { |k,v|
|
114
|
-
# msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
115
|
-
# m.to = v.encode("GB18030")
|
116
|
-
# end
|
117
|
-
# begin
|
118
|
-
# subject.send_queue_message queue_name, msg
|
119
|
-
# # Do not flunk here; the service appears to let some
|
120
|
-
# # "bad" strings go through
|
121
|
-
# rescue Azure::Core::Http::HTTPError => error
|
122
|
-
# error.status_code.must_equal 500
|
123
|
-
# end
|
124
|
-
# }
|
125
|
-
# end
|
126
|
-
|
127
|
-
it 'Read/Write SB Queue Custom Property Key UTF-8' do
|
128
|
-
GB18030TestStrings.get.each { |k,v|
|
129
|
-
msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
130
|
-
("key" + v).encode("UTF-8") => "CustomStringProperty"
|
131
|
-
})
|
132
|
-
begin
|
133
|
-
subject.send_queue_message queue_name, msg
|
134
|
-
flunk "No exception"
|
135
|
-
rescue Azure::Core::Http::HTTPError => error
|
136
|
-
error.status_code.must_equal 400
|
137
|
-
end
|
138
|
-
}
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'Read/Write SB Queue Custom Property Key GB18030' do
|
142
|
-
GB18030TestStrings.get.each { |k,v|
|
143
|
-
msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
144
|
-
("key" + v).encode("GB18030") => "CustomStringProperty",
|
145
|
-
})
|
146
|
-
begin
|
147
|
-
subject.send_queue_message queue_name, msg
|
148
|
-
flunk "No exception"
|
149
|
-
rescue Azure::Core::Http::HTTPError => error
|
150
|
-
error.status_code.must_equal 400
|
151
|
-
end
|
152
|
-
}
|
153
|
-
end
|
154
|
-
|
155
|
-
# it 'Read/Write SB Queue Custom Property Value UTF-8' do
|
156
|
-
# GB18030TestStrings.get.each { |k,v|
|
157
|
-
# msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
158
|
-
# "key" => ("value" + v).encode("UTF-8")
|
159
|
-
# })
|
160
|
-
|
161
|
-
# begin
|
162
|
-
# subject.send_queue_message queue_name, msg
|
163
|
-
# end
|
164
|
-
# }
|
165
|
-
# end
|
166
|
-
|
167
|
-
# it 'Read/Write SB Queue Custom Property Value GB18030' do
|
168
|
-
# GB18030TestStrings.get.each { |k,v|
|
169
|
-
# msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
170
|
-
# "key" => ("value" + v).encode("GB18030")
|
171
|
-
# })
|
172
|
-
# begin
|
173
|
-
# subject.send_queue_message queue_name, msg
|
174
|
-
# retrieved = subject.read_delete_queue_message queue_name
|
175
|
-
# # Do not flunk here; the service appears to let some
|
176
|
-
# # "bad" strings go through
|
177
|
-
# rescue Azure::Core::Http::HTTPError => error
|
178
|
-
# error.status_code.must_equal 500
|
179
|
-
# end
|
180
|
-
# }
|
181
|
-
# end
|
182
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require "integration/test_helper"
|
16
|
+
require "azure/blob/blob_service"
|
17
|
+
|
18
|
+
describe 'Service Bus Queue GB-18030' do
|
19
|
+
subject { Azure::ServiceBus::ServiceBusService.new }
|
20
|
+
let(:queue_name) { ServiceBusQueueNameHelper.name }
|
21
|
+
|
22
|
+
before { subject.create_queue queue_name }
|
23
|
+
after { ServiceBusQueueNameHelper.clean }
|
24
|
+
|
25
|
+
it 'Read/Write SB Queue Name UTF-8' do
|
26
|
+
# Expected results: Failure, because the Queue
|
27
|
+
# name can only contain ASCII
|
28
|
+
# characters, per the Service Bus Queue spec.
|
29
|
+
GB18030TestStrings.get.each { |k,v|
|
30
|
+
begin
|
31
|
+
subject.create_queue queue_name + v.encode("UTF-8")
|
32
|
+
flunk "No exception"
|
33
|
+
rescue
|
34
|
+
# Add validation?
|
35
|
+
end
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'Read/Write SB Queue Name GB-18030' do
|
40
|
+
# Expected results: Failure, because the Queue
|
41
|
+
# name can only contain ASCII
|
42
|
+
# characters, per the Service Bus Queue spec.
|
43
|
+
GB18030TestStrings.get.each { |k,v|
|
44
|
+
begin
|
45
|
+
subject.create_queue queue_name + v.encode("GB18030")
|
46
|
+
flunk "No exception"
|
47
|
+
rescue
|
48
|
+
# Add validation?
|
49
|
+
end
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'Read/Write SB Queue Metadata UTF-8' do
|
54
|
+
GB18030TestStrings.get.each { |k,v|
|
55
|
+
begin
|
56
|
+
subject.create_queue queue_name, {
|
57
|
+
:dead_lettering_on_message_expiration => v.encode("UTF-8"),
|
58
|
+
}
|
59
|
+
flunk "No exception"
|
60
|
+
rescue Azure::Core::Http::HTTPError => error
|
61
|
+
error.status_code.must_equal 400
|
62
|
+
end
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'Read/Write SB Queue Metadata GB18030' do
|
67
|
+
GB18030TestStrings.get.each { |k,v|
|
68
|
+
begin
|
69
|
+
subject.create_queue queue_name, {
|
70
|
+
:dead_lettering_on_message_expiration => v.encode("GB18030"),
|
71
|
+
}
|
72
|
+
flunk "No exception"
|
73
|
+
rescue Azure::Core::Http::HTTPError => error
|
74
|
+
error.status_code.must_equal 400
|
75
|
+
end
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'Read/Write SB Queue message UTF-8' do
|
80
|
+
GB18030TestStrings.get.each { |k,v|
|
81
|
+
msg = Azure::ServiceBus::BrokeredMessage.new(v.encode("UTF-8"))
|
82
|
+
subject.send_queue_message queue_name, msg
|
83
|
+
retrieved = subject.read_delete_queue_message queue_name
|
84
|
+
retrieved.body.force_encoding("UTF-8").must_equal v.encode("UTF-8")
|
85
|
+
}
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'Read/Write SB Queue message GB18030' do
|
89
|
+
GB18030TestStrings.get.each { |k,v|
|
90
|
+
msg = Azure::ServiceBus::BrokeredMessage.new(v.encode("GB18030"))
|
91
|
+
subject.send_queue_message queue_name, msg
|
92
|
+
retrieved = subject.read_delete_queue_message queue_name
|
93
|
+
retrieved.body.force_encoding("GB18030").must_equal v.encode("GB18030")
|
94
|
+
}
|
95
|
+
end
|
96
|
+
|
97
|
+
# it 'Read/Write SB Queue message Metadata UTF-8' do
|
98
|
+
# GB18030TestStrings.get.each { |k,v|
|
99
|
+
# msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
100
|
+
# m.to = v.encode("UTF-8")
|
101
|
+
# end
|
102
|
+
# begin
|
103
|
+
# subject.send_queue_message queue_name, msg
|
104
|
+
# # Do not flunk here; the service appears to let some
|
105
|
+
# # "bad" strings go through
|
106
|
+
# rescue Azure::Core::Http::HTTPError => error
|
107
|
+
# error.status_code.must_equal 500
|
108
|
+
# end
|
109
|
+
# }
|
110
|
+
# end
|
111
|
+
|
112
|
+
# it 'Read/Write SB Queue message Metadata GB18030' do
|
113
|
+
# GB18030TestStrings.get.each { |k,v|
|
114
|
+
# msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
115
|
+
# m.to = v.encode("GB18030")
|
116
|
+
# end
|
117
|
+
# begin
|
118
|
+
# subject.send_queue_message queue_name, msg
|
119
|
+
# # Do not flunk here; the service appears to let some
|
120
|
+
# # "bad" strings go through
|
121
|
+
# rescue Azure::Core::Http::HTTPError => error
|
122
|
+
# error.status_code.must_equal 500
|
123
|
+
# end
|
124
|
+
# }
|
125
|
+
# end
|
126
|
+
|
127
|
+
it 'Read/Write SB Queue Custom Property Key UTF-8' do
|
128
|
+
GB18030TestStrings.get.each { |k,v|
|
129
|
+
msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
130
|
+
("key" + v).encode("UTF-8") => "CustomStringProperty"
|
131
|
+
})
|
132
|
+
begin
|
133
|
+
subject.send_queue_message queue_name, msg
|
134
|
+
flunk "No exception"
|
135
|
+
rescue Azure::Core::Http::HTTPError => error
|
136
|
+
error.status_code.must_equal 400
|
137
|
+
end
|
138
|
+
}
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'Read/Write SB Queue Custom Property Key GB18030' do
|
142
|
+
GB18030TestStrings.get.each { |k,v|
|
143
|
+
msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
144
|
+
("key" + v).encode("GB18030") => "CustomStringProperty",
|
145
|
+
})
|
146
|
+
begin
|
147
|
+
subject.send_queue_message queue_name, msg
|
148
|
+
flunk "No exception"
|
149
|
+
rescue Azure::Core::Http::HTTPError => error
|
150
|
+
error.status_code.must_equal 400
|
151
|
+
end
|
152
|
+
}
|
153
|
+
end
|
154
|
+
|
155
|
+
# it 'Read/Write SB Queue Custom Property Value UTF-8' do
|
156
|
+
# GB18030TestStrings.get.each { |k,v|
|
157
|
+
# msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
158
|
+
# "key" => ("value" + v).encode("UTF-8")
|
159
|
+
# })
|
160
|
+
|
161
|
+
# begin
|
162
|
+
# subject.send_queue_message queue_name, msg
|
163
|
+
# end
|
164
|
+
# }
|
165
|
+
# end
|
166
|
+
|
167
|
+
# it 'Read/Write SB Queue Custom Property Value GB18030' do
|
168
|
+
# GB18030TestStrings.get.each { |k,v|
|
169
|
+
# msg = Azure::ServiceBus::BrokeredMessage.new("some text", {
|
170
|
+
# "key" => ("value" + v).encode("GB18030")
|
171
|
+
# })
|
172
|
+
# begin
|
173
|
+
# subject.send_queue_message queue_name, msg
|
174
|
+
# retrieved = subject.read_delete_queue_message queue_name
|
175
|
+
# # Do not flunk here; the service appears to let some
|
176
|
+
# # "bad" strings go through
|
177
|
+
# rescue Azure::Core::Http::HTTPError => error
|
178
|
+
# error.status_code.must_equal 500
|
179
|
+
# end
|
180
|
+
# }
|
181
|
+
# end
|
182
|
+
end
|
@@ -1,101 +1,101 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http:#www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require 'integration/test_helper'
|
16
|
-
|
17
|
-
require 'azure/service_bus/brokered_message'
|
18
|
-
|
19
|
-
class ScenarioHelper
|
20
|
-
def self.out(s)
|
21
|
-
print s + "\n" if false
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.get_custom_properties(i)
|
25
|
-
custom_properties = {}
|
26
|
-
custom_properties['i'] = i
|
27
|
-
custom_properties['test'] = Time.local(2001, i, 1)
|
28
|
-
custom_properties['name'] = 'Test' + i.to_s
|
29
|
-
custom_properties['meanname'] = "'\"Me`\\'&*<>!@#%^*)\n" + i.to_s
|
30
|
-
custom_properties['int'] = 50 + i
|
31
|
-
custom_properties['float'] = 3.14159 + i
|
32
|
-
custom_properties['even'] = (i % 2 == 0)
|
33
|
-
custom_properties
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.create_issue_message(issue_id, issue_body, label)
|
37
|
-
message = Azure::ServiceBus::BrokeredMessage.new(issue_body)
|
38
|
-
|
39
|
-
message.correlation_id = 'correlationid' + label
|
40
|
-
message.delivery_count = 1
|
41
|
-
message.sequence_number = 12
|
42
|
-
message.content_type = 'text/xml'
|
43
|
-
message.label = label
|
44
|
-
message.to = '1@1.com'
|
45
|
-
message.message_id = issue_id
|
46
|
-
|
47
|
-
custom_properties = ScenarioHelper.get_custom_properties issue_id.to_i
|
48
|
-
custom_properties.each do |key, value|
|
49
|
-
message.properties[key] = value
|
50
|
-
end
|
51
|
-
|
52
|
-
message
|
53
|
-
end
|
54
|
-
|
55
|
-
def self.compare_messages(expected,
|
56
|
-
actual,
|
57
|
-
custom_properties = nil)
|
58
|
-
actual.body.must_equal expected.body
|
59
|
-
actual.content_type.must_equal expected.content_type
|
60
|
-
actual.correlation_id.must_equal expected.correlation_id
|
61
|
-
actual.label.must_equal expected.label
|
62
|
-
actual.message_id.must_equal expected.message_id
|
63
|
-
actual.reply_to.must_equal expected.reply_to
|
64
|
-
actual.reply_to_session_id.must_equal expected.reply_to_session_id
|
65
|
-
actual.scheduled_enqueue_time_utc.must_equal(
|
66
|
-
expected.scheduled_enqueue_time_utc
|
67
|
-
)
|
68
|
-
actual.session_id.must_equal expected.session_id
|
69
|
-
actual.to.must_equal expected.to
|
70
|
-
|
71
|
-
# Note: The following properties are controlled by the server,
|
72
|
-
# so we cannot verify as much
|
73
|
-
actual.delivery_count.must_be_kind_of Integer
|
74
|
-
actual.sequence_number.must_be_kind_of Integer
|
75
|
-
actual.enqueued_time_utc.must_be_kind_of Time
|
76
|
-
actual.lock_token.must_be_kind_of String unless actual.lock_token.nil?
|
77
|
-
|
78
|
-
actual.locked_until_utc.must_be_kind_of Time\
|
79
|
-
unless actual.locked_until_utc.nil?
|
80
|
-
|
81
|
-
if custom_properties.nil?
|
82
|
-
expected_properties = expected.properties
|
83
|
-
index = expected_properties['i']
|
84
|
-
index = 1 if index.nil?
|
85
|
-
custom_properties = get_custom_properties(index.to_i)
|
86
|
-
end
|
87
|
-
|
88
|
-
custom_properties.each do |key, value|
|
89
|
-
ScenarioHelper.out key + ':' + value.to_s
|
90
|
-
k_d = actual.properties[key.downcase]
|
91
|
-
ScenarioHelper.out("#{k_d}:#{k_d.nil? ? '<nil>' : k_d.to_s}")
|
92
|
-
if value != 'GUID'
|
93
|
-
if !value.nil? && value.class == Time
|
94
|
-
value.httpdate.must_equal k_d
|
95
|
-
else
|
96
|
-
value.must_equal(k_d)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http:#www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require 'integration/test_helper'
|
16
|
+
|
17
|
+
require 'azure/service_bus/brokered_message'
|
18
|
+
|
19
|
+
class ScenarioHelper
|
20
|
+
def self.out(s)
|
21
|
+
print s + "\n" if false
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.get_custom_properties(i)
|
25
|
+
custom_properties = {}
|
26
|
+
custom_properties['i'] = i
|
27
|
+
custom_properties['test'] = Time.local(2001, i, 1)
|
28
|
+
custom_properties['name'] = 'Test' + i.to_s
|
29
|
+
custom_properties['meanname'] = "'\"Me`\\'&*<>!@#%^*)\n" + i.to_s
|
30
|
+
custom_properties['int'] = 50 + i
|
31
|
+
custom_properties['float'] = 3.14159 + i
|
32
|
+
custom_properties['even'] = (i % 2 == 0)
|
33
|
+
custom_properties
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.create_issue_message(issue_id, issue_body, label)
|
37
|
+
message = Azure::ServiceBus::BrokeredMessage.new(issue_body)
|
38
|
+
|
39
|
+
message.correlation_id = 'correlationid' + label
|
40
|
+
message.delivery_count = 1
|
41
|
+
message.sequence_number = 12
|
42
|
+
message.content_type = 'text/xml'
|
43
|
+
message.label = label
|
44
|
+
message.to = '1@1.com'
|
45
|
+
message.message_id = issue_id
|
46
|
+
|
47
|
+
custom_properties = ScenarioHelper.get_custom_properties issue_id.to_i
|
48
|
+
custom_properties.each do |key, value|
|
49
|
+
message.properties[key] = value
|
50
|
+
end
|
51
|
+
|
52
|
+
message
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.compare_messages(expected,
|
56
|
+
actual,
|
57
|
+
custom_properties = nil)
|
58
|
+
actual.body.must_equal expected.body
|
59
|
+
actual.content_type.must_equal expected.content_type
|
60
|
+
actual.correlation_id.must_equal expected.correlation_id
|
61
|
+
actual.label.must_equal expected.label
|
62
|
+
actual.message_id.must_equal expected.message_id
|
63
|
+
actual.reply_to.must_equal expected.reply_to
|
64
|
+
actual.reply_to_session_id.must_equal expected.reply_to_session_id
|
65
|
+
actual.scheduled_enqueue_time_utc.must_equal(
|
66
|
+
expected.scheduled_enqueue_time_utc
|
67
|
+
)
|
68
|
+
actual.session_id.must_equal expected.session_id
|
69
|
+
actual.to.must_equal expected.to
|
70
|
+
|
71
|
+
# Note: The following properties are controlled by the server,
|
72
|
+
# so we cannot verify as much
|
73
|
+
actual.delivery_count.must_be_kind_of Integer
|
74
|
+
actual.sequence_number.must_be_kind_of Integer
|
75
|
+
actual.enqueued_time_utc.must_be_kind_of Time
|
76
|
+
actual.lock_token.must_be_kind_of String unless actual.lock_token.nil?
|
77
|
+
|
78
|
+
actual.locked_until_utc.must_be_kind_of Time\
|
79
|
+
unless actual.locked_until_utc.nil?
|
80
|
+
|
81
|
+
if custom_properties.nil?
|
82
|
+
expected_properties = expected.properties
|
83
|
+
index = expected_properties['i']
|
84
|
+
index = 1 if index.nil?
|
85
|
+
custom_properties = get_custom_properties(index.to_i)
|
86
|
+
end
|
87
|
+
|
88
|
+
custom_properties.each do |key, value|
|
89
|
+
ScenarioHelper.out key + ':' + value.to_s
|
90
|
+
k_d = actual.properties[key.downcase]
|
91
|
+
ScenarioHelper.out("#{k_d}:#{k_d.nil? ? '<nil>' : k_d.to_s}")
|
92
|
+
if value != 'GUID'
|
93
|
+
if !value.nil? && value.class == Time
|
94
|
+
value.httpdate.must_equal k_d
|
95
|
+
else
|
96
|
+
value.must_equal(k_d)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|