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,266 +1,266 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require "integration/test_helper"
|
16
|
-
|
17
|
-
describe "ServiceBus Queues" do
|
18
|
-
|
19
|
-
subject { Azure::ServiceBus::ServiceBusService.new }
|
20
|
-
let(:name) { ServiceBusQueueNameHelper.name }
|
21
|
-
let(:name_alternative) { ServiceBusQueueNameHelper.name }
|
22
|
-
let(:description) {{
|
23
|
-
:default_message_time_to_live => 'P10675199DT2H48M5.4775807S',
|
24
|
-
:duplicate_detection_history_time_window => 'PT10M',
|
25
|
-
:dead_lettering_on_message_expiration => "false",
|
26
|
-
:lock_duration => 'PT30S',
|
27
|
-
:max_delivery_count => "10",
|
28
|
-
:max_size_in_megabytes => "1",
|
29
|
-
:requires_duplicate_detection => "true",
|
30
|
-
:requires_session => "false"
|
31
|
-
}}
|
32
|
-
let(:description_alternative) {{
|
33
|
-
:lock_duration => 'PT30S',
|
34
|
-
:max_size_in_megabytes => 2048,
|
35
|
-
:requires_duplicate_detection => true,
|
36
|
-
:requires_session => true,
|
37
|
-
:default_message_time_to_live => 'PT30M',
|
38
|
-
:dead_lettering_on_message_expiration => true,
|
39
|
-
:duplicate_detection_history_time_window => 'PT20M',
|
40
|
-
:max_delivery_count => 20,
|
41
|
-
:enable_batched_operations => true
|
42
|
-
}}
|
43
|
-
|
44
|
-
after { ServiceBusQueueNameHelper.clean }
|
45
|
-
|
46
|
-
it "should be able to create a new queue from a string" do
|
47
|
-
queue = subject.create_queue name
|
48
|
-
queue.must_be_kind_of Azure::ServiceBus::Queue
|
49
|
-
queue.name.must_equal name
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should be able to create a new queue from a Queue" do
|
53
|
-
queue = subject.create_queue Azure::ServiceBus::Queue.new(name)
|
54
|
-
queue.must_be_kind_of Azure::ServiceBus::Queue
|
55
|
-
queue.name.must_equal name
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should be able to create a new queue from a string and description Hash" do
|
59
|
-
queue = subject.create_queue name_alternative, description_alternative
|
60
|
-
queue.must_be_kind_of Azure::ServiceBus::Queue
|
61
|
-
queue.name.must_equal name_alternative
|
62
|
-
|
63
|
-
queue.lock_duration.must_equal 30.0
|
64
|
-
queue.max_size_in_megabytes.must_equal description_alternative[:max_size_in_megabytes]
|
65
|
-
queue.requires_duplicate_detection.must_equal description_alternative[:requires_duplicate_detection]
|
66
|
-
queue.requires_session.must_equal description_alternative[:requires_session]
|
67
|
-
queue.default_message_time_to_live.must_equal 1800.0
|
68
|
-
queue.dead_lettering_on_message_expiration.must_equal description_alternative[:dead_lettering_on_message_expiration]
|
69
|
-
queue.duplicate_detection_history_time_window.must_equal 1200.0
|
70
|
-
queue.max_delivery_count.must_equal description_alternative[:max_delivery_count]
|
71
|
-
queue.enable_batched_operations.must_equal description_alternative[:enable_batched_operations]
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should be able to create a new queue from a Queue with a description Hash" do
|
75
|
-
queue = subject.create_queue Azure::ServiceBus::Queue.new(name_alternative, description_alternative)
|
76
|
-
queue.must_be_kind_of Azure::ServiceBus::Queue
|
77
|
-
queue.name.must_equal name_alternative
|
78
|
-
|
79
|
-
queue.lock_duration.must_equal 30.0
|
80
|
-
queue.max_size_in_megabytes.must_equal description_alternative[:max_size_in_megabytes]
|
81
|
-
queue.requires_duplicate_detection.must_equal description_alternative[:requires_duplicate_detection]
|
82
|
-
queue.requires_session.must_equal description_alternative[:requires_session]
|
83
|
-
queue.default_message_time_to_live.must_equal 1800.0
|
84
|
-
queue.dead_lettering_on_message_expiration.must_equal description_alternative[:dead_lettering_on_message_expiration]
|
85
|
-
queue.duplicate_detection_history_time_window.must_equal 1200.0
|
86
|
-
queue.max_delivery_count.must_equal description_alternative[:max_delivery_count]
|
87
|
-
queue.enable_batched_operations.must_equal description_alternative[:enable_batched_operations]
|
88
|
-
end
|
89
|
-
|
90
|
-
describe 'when a queue exists' do
|
91
|
-
before { subject.create_queue name }
|
92
|
-
|
93
|
-
describe '#delete_queue' do
|
94
|
-
it "should raise exception if the queue cannot be deleted" do
|
95
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
96
|
-
subject.delete_queue ServiceBusQueueNameHelper.name
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
it "should be able to delete the queue" do
|
101
|
-
response = subject.delete_queue name
|
102
|
-
response.must_equal nil
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
describe "#get_queue" do
|
107
|
-
it "should be able to get a queue by name" do
|
108
|
-
result = subject.get_queue name
|
109
|
-
|
110
|
-
result.must_be_kind_of Azure::ServiceBus::Queue
|
111
|
-
result.name.must_equal name
|
112
|
-
end
|
113
|
-
|
114
|
-
it "if the queue doesn't exists it should throw" do
|
115
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
116
|
-
subject.get_queue ServiceBusQueueNameHelper.name
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
describe 'when there are multiple queues' do
|
122
|
-
let(:name1) { ServiceBusQueueNameHelper.name }
|
123
|
-
let(:name2) { ServiceBusQueueNameHelper.name }
|
124
|
-
before {
|
125
|
-
subject.create_queue name1
|
126
|
-
subject.create_queue name2
|
127
|
-
}
|
128
|
-
|
129
|
-
it "should be able to get a list of queues" do
|
130
|
-
result = subject.list_queues
|
131
|
-
|
132
|
-
result.must_be :kind_of?, Array
|
133
|
-
q_found = false
|
134
|
-
q1_found = false
|
135
|
-
q2_found = false
|
136
|
-
result.each { |q|
|
137
|
-
q_found = true if q.name == name
|
138
|
-
q1_found = true if q.name == name1
|
139
|
-
q2_found = true if q.name == name2
|
140
|
-
}
|
141
|
-
assert (q_found and q1_found and q2_found), "list_queues did not return expected queues"
|
142
|
-
end
|
143
|
-
|
144
|
-
it "should be able to use $skip token with list_queues" do
|
145
|
-
result = subject.list_queues
|
146
|
-
result2 = subject.list_queues({ :skip => 1 })
|
147
|
-
result2.length.must_equal result.length - 1
|
148
|
-
result2[0].id.must_equal result[1].id
|
149
|
-
end
|
150
|
-
|
151
|
-
it "should be able to use $top token with list_queues" do
|
152
|
-
result = subject.list_queues
|
153
|
-
result.length.wont_equal 1
|
154
|
-
|
155
|
-
result2 = subject.list_queues({ :top => 1 })
|
156
|
-
result2.length.must_equal 1
|
157
|
-
end
|
158
|
-
|
159
|
-
it "should be able to use $skip and $top token together with list_queues" do
|
160
|
-
result = subject.list_queues
|
161
|
-
result2 = subject.list_queues({ :skip => 1, :top => 1 })
|
162
|
-
result2.length.must_equal 1
|
163
|
-
result2[0].id.must_equal result[1].id
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
it "should be able to send a message to a queue" do
|
168
|
-
msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
169
|
-
m.to = "yo"
|
170
|
-
end
|
171
|
-
res = subject.send_queue_message name, msg
|
172
|
-
res.must_be_nil
|
173
|
-
end
|
174
|
-
|
175
|
-
describe "when the queue has messages" do
|
176
|
-
let(:messageContent) { 'messagecontent' }
|
177
|
-
let(:to) { 'yo' }
|
178
|
-
let(:label) { 'my_label' }
|
179
|
-
let(:properties) {{
|
180
|
-
"CustomDoubleProperty" => 3.141592,
|
181
|
-
"CustomInt32Property" => 37,
|
182
|
-
"CustomInt64Property" => 2**32,
|
183
|
-
"CustomInt64NegProperty" => -(2**32),
|
184
|
-
"CustomStringProperty" => "CustomPropertyValue",
|
185
|
-
"CustomDateProperty" => Time.now,
|
186
|
-
"CustomTrueProperty" => true,
|
187
|
-
"CustomFalseProperty" => false,
|
188
|
-
"CustomNilProperty" => nil,
|
189
|
-
"CustomJSONProperty" => "testingpa\n\"{}\\rtition"
|
190
|
-
}}
|
191
|
-
let(:msg) { m = Azure::ServiceBus::BrokeredMessage.new(messageContent, properties); m.to = 'me'; m }
|
192
|
-
|
193
|
-
before { subject.send_queue_message name, msg }
|
194
|
-
|
195
|
-
it "should be able to peek a message from a queue" do
|
196
|
-
retrieved = subject.peek_lock_queue_message name
|
197
|
-
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
198
|
-
|
199
|
-
retrieved.body.must_equal msg.body
|
200
|
-
retrieved.to.must_equal msg.to
|
201
|
-
retrieved.label.must_equal msg.label
|
202
|
-
|
203
|
-
properties.each { |k,v|
|
204
|
-
unless properties[k].class == Time
|
205
|
-
retrieved.properties[k.downcase].must_equal properties[k]
|
206
|
-
else
|
207
|
-
# Time comes back as string as there is no good way to distinguish
|
208
|
-
retrieved.properties[k.downcase].to_s.must_equal properties[k].httpdate
|
209
|
-
end
|
210
|
-
}
|
211
|
-
|
212
|
-
refute retrieved.lock_token.nil?
|
213
|
-
refute retrieved.sequence_number.nil?
|
214
|
-
end
|
215
|
-
|
216
|
-
it "should be able to read-delete a message from a queue" do
|
217
|
-
retrieved = subject.read_delete_queue_message name
|
218
|
-
|
219
|
-
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
220
|
-
retrieved.body.must_equal msg.body
|
221
|
-
retrieved.to.must_equal msg.to
|
222
|
-
|
223
|
-
# it should be deleted
|
224
|
-
retrieved = subject.read_delete_queue_message name, { :timeout => 2 }
|
225
|
-
retrieved.must_be_nil
|
226
|
-
end
|
227
|
-
|
228
|
-
it "should be able to unlock a message from a queue" do
|
229
|
-
retrieved = subject.peek_lock_queue_message name, { :timeout => 2 }
|
230
|
-
|
231
|
-
# There shouldn't be an available message in the queue
|
232
|
-
retrieved2 = subject.peek_lock_queue_message name, { :timeout => 2 }
|
233
|
-
retrieved2.must_be_nil
|
234
|
-
|
235
|
-
# Unlock the message
|
236
|
-
res = subject.unlock_queue_message retrieved
|
237
|
-
res.must_be_nil
|
238
|
-
|
239
|
-
# The message should be available once again
|
240
|
-
retrieved = subject.peek_lock_queue_message name, { :timeout => 2 }
|
241
|
-
retrieved.body.must_equal msg.body
|
242
|
-
end
|
243
|
-
|
244
|
-
it "should be able to delete a message from a queue" do
|
245
|
-
|
246
|
-
retrieved = subject.peek_lock_queue_message name
|
247
|
-
retrieved.body.must_equal msg.body
|
248
|
-
|
249
|
-
subject.delete_queue_message retrieved
|
250
|
-
|
251
|
-
# it should be deleted
|
252
|
-
retrieved = subject.peek_lock_queue_message name, { :timeout => 2 }
|
253
|
-
assert_nil retrieved
|
254
|
-
end
|
255
|
-
|
256
|
-
it "should be able to read a message from a queue" do
|
257
|
-
subject.send_queue_message name, msg
|
258
|
-
retrieved = subject.receive_queue_message name
|
259
|
-
|
260
|
-
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
261
|
-
retrieved.body.must_equal msg.body
|
262
|
-
retrieved.to.must_equal msg.to
|
263
|
-
end
|
264
|
-
end
|
265
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require "integration/test_helper"
|
16
|
+
|
17
|
+
describe "ServiceBus Queues" do
|
18
|
+
|
19
|
+
subject { Azure::ServiceBus::ServiceBusService.new }
|
20
|
+
let(:name) { ServiceBusQueueNameHelper.name }
|
21
|
+
let(:name_alternative) { ServiceBusQueueNameHelper.name }
|
22
|
+
let(:description) {{
|
23
|
+
:default_message_time_to_live => 'P10675199DT2H48M5.4775807S',
|
24
|
+
:duplicate_detection_history_time_window => 'PT10M',
|
25
|
+
:dead_lettering_on_message_expiration => "false",
|
26
|
+
:lock_duration => 'PT30S',
|
27
|
+
:max_delivery_count => "10",
|
28
|
+
:max_size_in_megabytes => "1",
|
29
|
+
:requires_duplicate_detection => "true",
|
30
|
+
:requires_session => "false"
|
31
|
+
}}
|
32
|
+
let(:description_alternative) {{
|
33
|
+
:lock_duration => 'PT30S',
|
34
|
+
:max_size_in_megabytes => 2048,
|
35
|
+
:requires_duplicate_detection => true,
|
36
|
+
:requires_session => true,
|
37
|
+
:default_message_time_to_live => 'PT30M',
|
38
|
+
:dead_lettering_on_message_expiration => true,
|
39
|
+
:duplicate_detection_history_time_window => 'PT20M',
|
40
|
+
:max_delivery_count => 20,
|
41
|
+
:enable_batched_operations => true
|
42
|
+
}}
|
43
|
+
|
44
|
+
after { ServiceBusQueueNameHelper.clean }
|
45
|
+
|
46
|
+
it "should be able to create a new queue from a string" do
|
47
|
+
queue = subject.create_queue name
|
48
|
+
queue.must_be_kind_of Azure::ServiceBus::Queue
|
49
|
+
queue.name.must_equal name
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should be able to create a new queue from a Queue" do
|
53
|
+
queue = subject.create_queue Azure::ServiceBus::Queue.new(name)
|
54
|
+
queue.must_be_kind_of Azure::ServiceBus::Queue
|
55
|
+
queue.name.must_equal name
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should be able to create a new queue from a string and description Hash" do
|
59
|
+
queue = subject.create_queue name_alternative, description_alternative
|
60
|
+
queue.must_be_kind_of Azure::ServiceBus::Queue
|
61
|
+
queue.name.must_equal name_alternative
|
62
|
+
|
63
|
+
queue.lock_duration.must_equal 30.0
|
64
|
+
queue.max_size_in_megabytes.must_equal description_alternative[:max_size_in_megabytes]
|
65
|
+
queue.requires_duplicate_detection.must_equal description_alternative[:requires_duplicate_detection]
|
66
|
+
queue.requires_session.must_equal description_alternative[:requires_session]
|
67
|
+
queue.default_message_time_to_live.must_equal 1800.0
|
68
|
+
queue.dead_lettering_on_message_expiration.must_equal description_alternative[:dead_lettering_on_message_expiration]
|
69
|
+
queue.duplicate_detection_history_time_window.must_equal 1200.0
|
70
|
+
queue.max_delivery_count.must_equal description_alternative[:max_delivery_count]
|
71
|
+
queue.enable_batched_operations.must_equal description_alternative[:enable_batched_operations]
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should be able to create a new queue from a Queue with a description Hash" do
|
75
|
+
queue = subject.create_queue Azure::ServiceBus::Queue.new(name_alternative, description_alternative)
|
76
|
+
queue.must_be_kind_of Azure::ServiceBus::Queue
|
77
|
+
queue.name.must_equal name_alternative
|
78
|
+
|
79
|
+
queue.lock_duration.must_equal 30.0
|
80
|
+
queue.max_size_in_megabytes.must_equal description_alternative[:max_size_in_megabytes]
|
81
|
+
queue.requires_duplicate_detection.must_equal description_alternative[:requires_duplicate_detection]
|
82
|
+
queue.requires_session.must_equal description_alternative[:requires_session]
|
83
|
+
queue.default_message_time_to_live.must_equal 1800.0
|
84
|
+
queue.dead_lettering_on_message_expiration.must_equal description_alternative[:dead_lettering_on_message_expiration]
|
85
|
+
queue.duplicate_detection_history_time_window.must_equal 1200.0
|
86
|
+
queue.max_delivery_count.must_equal description_alternative[:max_delivery_count]
|
87
|
+
queue.enable_batched_operations.must_equal description_alternative[:enable_batched_operations]
|
88
|
+
end
|
89
|
+
|
90
|
+
describe 'when a queue exists' do
|
91
|
+
before { subject.create_queue name }
|
92
|
+
|
93
|
+
describe '#delete_queue' do
|
94
|
+
it "should raise exception if the queue cannot be deleted" do
|
95
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
96
|
+
subject.delete_queue ServiceBusQueueNameHelper.name
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should be able to delete the queue" do
|
101
|
+
response = subject.delete_queue name
|
102
|
+
response.must_equal nil
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "#get_queue" do
|
107
|
+
it "should be able to get a queue by name" do
|
108
|
+
result = subject.get_queue name
|
109
|
+
|
110
|
+
result.must_be_kind_of Azure::ServiceBus::Queue
|
111
|
+
result.name.must_equal name
|
112
|
+
end
|
113
|
+
|
114
|
+
it "if the queue doesn't exists it should throw" do
|
115
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
116
|
+
subject.get_queue ServiceBusQueueNameHelper.name
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe 'when there are multiple queues' do
|
122
|
+
let(:name1) { ServiceBusQueueNameHelper.name }
|
123
|
+
let(:name2) { ServiceBusQueueNameHelper.name }
|
124
|
+
before {
|
125
|
+
subject.create_queue name1
|
126
|
+
subject.create_queue name2
|
127
|
+
}
|
128
|
+
|
129
|
+
it "should be able to get a list of queues" do
|
130
|
+
result = subject.list_queues
|
131
|
+
|
132
|
+
result.must_be :kind_of?, Array
|
133
|
+
q_found = false
|
134
|
+
q1_found = false
|
135
|
+
q2_found = false
|
136
|
+
result.each { |q|
|
137
|
+
q_found = true if q.name == name
|
138
|
+
q1_found = true if q.name == name1
|
139
|
+
q2_found = true if q.name == name2
|
140
|
+
}
|
141
|
+
assert (q_found and q1_found and q2_found), "list_queues did not return expected queues"
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should be able to use $skip token with list_queues" do
|
145
|
+
result = subject.list_queues
|
146
|
+
result2 = subject.list_queues({ :skip => 1 })
|
147
|
+
result2.length.must_equal result.length - 1
|
148
|
+
result2[0].id.must_equal result[1].id
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should be able to use $top token with list_queues" do
|
152
|
+
result = subject.list_queues
|
153
|
+
result.length.wont_equal 1
|
154
|
+
|
155
|
+
result2 = subject.list_queues({ :top => 1 })
|
156
|
+
result2.length.must_equal 1
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should be able to use $skip and $top token together with list_queues" do
|
160
|
+
result = subject.list_queues
|
161
|
+
result2 = subject.list_queues({ :skip => 1, :top => 1 })
|
162
|
+
result2.length.must_equal 1
|
163
|
+
result2[0].id.must_equal result[1].id
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should be able to send a message to a queue" do
|
168
|
+
msg = Azure::ServiceBus::BrokeredMessage.new("some text") do |m|
|
169
|
+
m.to = "yo"
|
170
|
+
end
|
171
|
+
res = subject.send_queue_message name, msg
|
172
|
+
res.must_be_nil
|
173
|
+
end
|
174
|
+
|
175
|
+
describe "when the queue has messages" do
|
176
|
+
let(:messageContent) { 'messagecontent' }
|
177
|
+
let(:to) { 'yo' }
|
178
|
+
let(:label) { 'my_label' }
|
179
|
+
let(:properties) {{
|
180
|
+
"CustomDoubleProperty" => 3.141592,
|
181
|
+
"CustomInt32Property" => 37,
|
182
|
+
"CustomInt64Property" => 2**32,
|
183
|
+
"CustomInt64NegProperty" => -(2**32),
|
184
|
+
"CustomStringProperty" => "CustomPropertyValue",
|
185
|
+
"CustomDateProperty" => Time.now,
|
186
|
+
"CustomTrueProperty" => true,
|
187
|
+
"CustomFalseProperty" => false,
|
188
|
+
"CustomNilProperty" => nil,
|
189
|
+
"CustomJSONProperty" => "testingpa\n\"{}\\rtition"
|
190
|
+
}}
|
191
|
+
let(:msg) { m = Azure::ServiceBus::BrokeredMessage.new(messageContent, properties); m.to = 'me'; m }
|
192
|
+
|
193
|
+
before { subject.send_queue_message name, msg }
|
194
|
+
|
195
|
+
it "should be able to peek a message from a queue" do
|
196
|
+
retrieved = subject.peek_lock_queue_message name
|
197
|
+
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
198
|
+
|
199
|
+
retrieved.body.must_equal msg.body
|
200
|
+
retrieved.to.must_equal msg.to
|
201
|
+
retrieved.label.must_equal msg.label
|
202
|
+
|
203
|
+
properties.each { |k,v|
|
204
|
+
unless properties[k].class == Time
|
205
|
+
retrieved.properties[k.downcase].must_equal properties[k]
|
206
|
+
else
|
207
|
+
# Time comes back as string as there is no good way to distinguish
|
208
|
+
retrieved.properties[k.downcase].to_s.must_equal properties[k].httpdate
|
209
|
+
end
|
210
|
+
}
|
211
|
+
|
212
|
+
refute retrieved.lock_token.nil?
|
213
|
+
refute retrieved.sequence_number.nil?
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should be able to read-delete a message from a queue" do
|
217
|
+
retrieved = subject.read_delete_queue_message name
|
218
|
+
|
219
|
+
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
220
|
+
retrieved.body.must_equal msg.body
|
221
|
+
retrieved.to.must_equal msg.to
|
222
|
+
|
223
|
+
# it should be deleted
|
224
|
+
retrieved = subject.read_delete_queue_message name, { :timeout => 2 }
|
225
|
+
retrieved.must_be_nil
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should be able to unlock a message from a queue" do
|
229
|
+
retrieved = subject.peek_lock_queue_message name, { :timeout => 2 }
|
230
|
+
|
231
|
+
# There shouldn't be an available message in the queue
|
232
|
+
retrieved2 = subject.peek_lock_queue_message name, { :timeout => 2 }
|
233
|
+
retrieved2.must_be_nil
|
234
|
+
|
235
|
+
# Unlock the message
|
236
|
+
res = subject.unlock_queue_message retrieved
|
237
|
+
res.must_be_nil
|
238
|
+
|
239
|
+
# The message should be available once again
|
240
|
+
retrieved = subject.peek_lock_queue_message name, { :timeout => 2 }
|
241
|
+
retrieved.body.must_equal msg.body
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should be able to delete a message from a queue" do
|
245
|
+
|
246
|
+
retrieved = subject.peek_lock_queue_message name
|
247
|
+
retrieved.body.must_equal msg.body
|
248
|
+
|
249
|
+
subject.delete_queue_message retrieved
|
250
|
+
|
251
|
+
# it should be deleted
|
252
|
+
retrieved = subject.peek_lock_queue_message name, { :timeout => 2 }
|
253
|
+
assert_nil retrieved
|
254
|
+
end
|
255
|
+
|
256
|
+
it "should be able to read a message from a queue" do
|
257
|
+
subject.send_queue_message name, msg
|
258
|
+
retrieved = subject.receive_queue_message name
|
259
|
+
|
260
|
+
retrieved.must_be :kind_of?, Azure::ServiceBus::BrokeredMessage
|
261
|
+
retrieved.body.must_equal msg.body
|
262
|
+
retrieved.to.must_equal msg.to
|
263
|
+
end
|
264
|
+
end
|
265
|
+
end
|
266
266
|
end
|