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,187 +1,187 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require 'test_helper'
|
16
|
-
|
17
|
-
describe Azure::VirtualNetworkManagement::Serialization do
|
18
|
-
subject { Azure::VirtualNetworkManagement::Serialization }
|
19
|
-
|
20
|
-
let(:virtual_networks_xml) do
|
21
|
-
Nokogiri::XML Fixtures['list_virtual_networks']
|
22
|
-
end
|
23
|
-
let(:virtual_networks_string) { Fixtures ['list_virtual_networks'] }
|
24
|
-
|
25
|
-
let(:vnet_name) { 'test-vnet-name' }
|
26
|
-
let(:affinity_group) { 'test-affinity-group' }
|
27
|
-
let(:address_space) { ['172.16.0.0/12', '10.0.0.1/12'] }
|
28
|
-
|
29
|
-
input_options = {
|
30
|
-
subnet: [
|
31
|
-
{
|
32
|
-
name: 'vnet-test-unit-subnet-1',
|
33
|
-
ip_address: '172.16.0.0',
|
34
|
-
cidr: 12
|
35
|
-
}, {
|
36
|
-
name: 'vnet-test-unit-subnet-2',
|
37
|
-
ip_address: '192.168.0.0',
|
38
|
-
cidr: 12
|
39
|
-
}
|
40
|
-
],
|
41
|
-
dns: [
|
42
|
-
{
|
43
|
-
name: 'vnet-test-unit-dns-1',
|
44
|
-
ip_address: '1.2.3.4'
|
45
|
-
}, {
|
46
|
-
name: 'vnet-test-unit-dns-2',
|
47
|
-
ip_address: '2.3.4.5'
|
48
|
-
}
|
49
|
-
]
|
50
|
-
}
|
51
|
-
|
52
|
-
describe '#virtual_network_from_xml' do
|
53
|
-
it 'accepts an XML string as input' do
|
54
|
-
subject.virtual_network_from_xml virtual_networks_xml
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'returns an Array of VirtualNetwork instances' do
|
58
|
-
result = subject.virtual_network_from_xml virtual_networks_xml
|
59
|
-
result.must_be_kind_of Array
|
60
|
-
result.length.must_equal 3
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'returns a virtual network with all attributes populated' do
|
64
|
-
virtual_network = subject.virtual_network_from_xml(
|
65
|
-
virtual_networks_xml
|
66
|
-
).first
|
67
|
-
|
68
|
-
# Verify global properties
|
69
|
-
virtual_network.name.must_equal 'test-virtual-network'
|
70
|
-
virtual_network.affinity_group.must_equal 'Test'
|
71
|
-
virtual_network.id.must_equal 'afd3a393-8fe2-4127-a834-1b2b920729fe'
|
72
|
-
virtual_network.state.must_equal 'Created'
|
73
|
-
|
74
|
-
# Verify address_space
|
75
|
-
virtual_network.address_space.must_be_kind_of Array
|
76
|
-
virtual_network.address_space.length.must_equal 1
|
77
|
-
virtual_network.address_space.first.must_be_kind_of String
|
78
|
-
virtual_network.address_space.first.must_equal '10.0.0.0/8'
|
79
|
-
|
80
|
-
# Verify subnets
|
81
|
-
virtual_network.subnets.must_be_kind_of Array
|
82
|
-
virtual_network.subnets.length.must_equal 1
|
83
|
-
virtual_network.subnets.first[:name].must_equal 'Subnet-1'
|
84
|
-
virtual_network.subnets.first[:address_prefix].must_equal '10.0.0.0/11'
|
85
|
-
|
86
|
-
# Verify DNS Servers
|
87
|
-
virtual_network.dns_servers.must_be_kind_of Array
|
88
|
-
virtual_network.dns_servers.length.must_equal 2
|
89
|
-
virtual_network.dns_servers.first[:name].must_equal 'dns-server-1'
|
90
|
-
virtual_network.dns_servers.first[:ip_address].must_equal '1.2.3.4'
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
describe '#virtual_network_to_xml' do
|
95
|
-
before do
|
96
|
-
ManagementHttpRequest.any_instance.expects(
|
97
|
-
:call
|
98
|
-
).returns(virtual_networks_xml)
|
99
|
-
end
|
100
|
-
|
101
|
-
let(:result_string) do
|
102
|
-
subject.virtual_network_to_xml(vnet_name,
|
103
|
-
affinity_group,
|
104
|
-
address_space,
|
105
|
-
input_options)
|
106
|
-
end
|
107
|
-
let(:result) { Nokogiri::XML result_string }
|
108
|
-
let(:virtual_network) do
|
109
|
-
result.css('VirtualNetworkSites VirtualNetworkSite').last
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'accepts parameters without providing subnet/dns' do
|
113
|
-
subject.virtual_network_to_xml(vnet_name, affinity_group, address_space)
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'accepts parameters including subnet/dns' do
|
117
|
-
subject.virtual_network_to_xml(vnet_name,
|
118
|
-
affinity_group,
|
119
|
-
address_space,
|
120
|
-
input_options)
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'appends the new VirtualNetwork to the existing' do
|
124
|
-
result_string.must_be_kind_of String
|
125
|
-
result.css('VirtualNetworkSites VirtualNetworkSite').size.must_equal 4
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'sets the name and affinity group for the new VirtualNetwork' do
|
129
|
-
virtual_network.attr('name').must_equal vnet_name
|
130
|
-
virtual_network.attr('AffinityGroup').must_equal affinity_group
|
131
|
-
end
|
132
|
-
|
133
|
-
it 'adds new dns servers on the top of existing dns servers' do
|
134
|
-
# Verify DnsServers
|
135
|
-
dns_servers = result.css 'DnsServers DnsServer'
|
136
|
-
|
137
|
-
dns_servers.size.must_equal 4
|
138
|
-
dns_servers[0].attr('name').must_equal(input_options[:dns][0][:name])
|
139
|
-
dns_servers[0].attr('IPAddress').must_equal(
|
140
|
-
input_options[:dns][0][:ip_address]
|
141
|
-
)
|
142
|
-
dns_servers[1].attr('name').must_equal(
|
143
|
-
input_options[:dns][1][:name]
|
144
|
-
)
|
145
|
-
dns_servers[1].attr('IPAddress').must_equal(
|
146
|
-
input_options[:dns][1][:ip_address]
|
147
|
-
)
|
148
|
-
end
|
149
|
-
|
150
|
-
it 'adds DnsServerRef to VirtualNetworkSite' do
|
151
|
-
# Verify DnsServerRef
|
152
|
-
vnet_dns_servers = virtual_network.css 'DnsServersRef DnsServerRef'
|
153
|
-
vnet_dns_servers.size.must_equal 2
|
154
|
-
vnet_dns_servers[0].attr('name').must_equal(
|
155
|
-
input_options[:dns][0][:name]
|
156
|
-
)
|
157
|
-
vnet_dns_servers[1].attr('name').must_equal(
|
158
|
-
input_options[:dns][1][:name]
|
159
|
-
)
|
160
|
-
end
|
161
|
-
|
162
|
-
it 'adds Subnets to VirtualNetworkSite' do
|
163
|
-
# Verify Subnets
|
164
|
-
vnet_subnets = virtual_network.css 'Subnets Subnet'
|
165
|
-
vnet_subnets.size.must_equal 2
|
166
|
-
vnet_subnets[0].attr('name').must_equal(input_options[:subnet][0][:name])
|
167
|
-
vnet_subnets[0].css('AddressPrefix')[0].content.must_equal(
|
168
|
-
"#{input_options[:subnet][0][:ip_address]}/"\
|
169
|
-
"#{input_options[:subnet][0][:cidr]}"
|
170
|
-
)
|
171
|
-
vnet_subnets[1].attr('name').must_equal(input_options[:subnet][1][:name])
|
172
|
-
vnet_subnets[1].css('AddressPrefix')[0].content.must_equal(
|
173
|
-
"#{input_options[:subnet][1][:ip_address]}/"\
|
174
|
-
"#{input_options[:subnet][1][:cidr]}"
|
175
|
-
)
|
176
|
-
end
|
177
|
-
|
178
|
-
it 'adds AddressPrefix to VirtualNetworkSite' do
|
179
|
-
# Verify AddressSpaces
|
180
|
-
vnet_address_space = virtual_network.css 'AddressSpace AddressPrefix'
|
181
|
-
vnet_address_space.size.must_equal 2
|
182
|
-
vnet_address_space[0].content.must_equal address_space[0]
|
183
|
-
vnet_address_space[1].content.must_equal address_space[1]
|
184
|
-
end
|
185
|
-
end
|
186
|
-
|
187
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require 'test_helper'
|
16
|
+
|
17
|
+
describe Azure::VirtualNetworkManagement::Serialization do
|
18
|
+
subject { Azure::VirtualNetworkManagement::Serialization }
|
19
|
+
|
20
|
+
let(:virtual_networks_xml) do
|
21
|
+
Nokogiri::XML Fixtures['list_virtual_networks']
|
22
|
+
end
|
23
|
+
let(:virtual_networks_string) { Fixtures ['list_virtual_networks'] }
|
24
|
+
|
25
|
+
let(:vnet_name) { 'test-vnet-name' }
|
26
|
+
let(:affinity_group) { 'test-affinity-group' }
|
27
|
+
let(:address_space) { ['172.16.0.0/12', '10.0.0.1/12'] }
|
28
|
+
|
29
|
+
input_options = {
|
30
|
+
subnet: [
|
31
|
+
{
|
32
|
+
name: 'vnet-test-unit-subnet-1',
|
33
|
+
ip_address: '172.16.0.0',
|
34
|
+
cidr: 12
|
35
|
+
}, {
|
36
|
+
name: 'vnet-test-unit-subnet-2',
|
37
|
+
ip_address: '192.168.0.0',
|
38
|
+
cidr: 12
|
39
|
+
}
|
40
|
+
],
|
41
|
+
dns: [
|
42
|
+
{
|
43
|
+
name: 'vnet-test-unit-dns-1',
|
44
|
+
ip_address: '1.2.3.4'
|
45
|
+
}, {
|
46
|
+
name: 'vnet-test-unit-dns-2',
|
47
|
+
ip_address: '2.3.4.5'
|
48
|
+
}
|
49
|
+
]
|
50
|
+
}
|
51
|
+
|
52
|
+
describe '#virtual_network_from_xml' do
|
53
|
+
it 'accepts an XML string as input' do
|
54
|
+
subject.virtual_network_from_xml virtual_networks_xml
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'returns an Array of VirtualNetwork instances' do
|
58
|
+
result = subject.virtual_network_from_xml virtual_networks_xml
|
59
|
+
result.must_be_kind_of Array
|
60
|
+
result.length.must_equal 3
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'returns a virtual network with all attributes populated' do
|
64
|
+
virtual_network = subject.virtual_network_from_xml(
|
65
|
+
virtual_networks_xml
|
66
|
+
).first
|
67
|
+
|
68
|
+
# Verify global properties
|
69
|
+
virtual_network.name.must_equal 'test-virtual-network'
|
70
|
+
virtual_network.affinity_group.must_equal 'Test'
|
71
|
+
virtual_network.id.must_equal 'afd3a393-8fe2-4127-a834-1b2b920729fe'
|
72
|
+
virtual_network.state.must_equal 'Created'
|
73
|
+
|
74
|
+
# Verify address_space
|
75
|
+
virtual_network.address_space.must_be_kind_of Array
|
76
|
+
virtual_network.address_space.length.must_equal 1
|
77
|
+
virtual_network.address_space.first.must_be_kind_of String
|
78
|
+
virtual_network.address_space.first.must_equal '10.0.0.0/8'
|
79
|
+
|
80
|
+
# Verify subnets
|
81
|
+
virtual_network.subnets.must_be_kind_of Array
|
82
|
+
virtual_network.subnets.length.must_equal 1
|
83
|
+
virtual_network.subnets.first[:name].must_equal 'Subnet-1'
|
84
|
+
virtual_network.subnets.first[:address_prefix].must_equal '10.0.0.0/11'
|
85
|
+
|
86
|
+
# Verify DNS Servers
|
87
|
+
virtual_network.dns_servers.must_be_kind_of Array
|
88
|
+
virtual_network.dns_servers.length.must_equal 2
|
89
|
+
virtual_network.dns_servers.first[:name].must_equal 'dns-server-1'
|
90
|
+
virtual_network.dns_servers.first[:ip_address].must_equal '1.2.3.4'
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe '#virtual_network_to_xml' do
|
95
|
+
before do
|
96
|
+
ManagementHttpRequest.any_instance.expects(
|
97
|
+
:call
|
98
|
+
).returns(virtual_networks_xml)
|
99
|
+
end
|
100
|
+
|
101
|
+
let(:result_string) do
|
102
|
+
subject.virtual_network_to_xml(vnet_name,
|
103
|
+
affinity_group,
|
104
|
+
address_space,
|
105
|
+
input_options)
|
106
|
+
end
|
107
|
+
let(:result) { Nokogiri::XML result_string }
|
108
|
+
let(:virtual_network) do
|
109
|
+
result.css('VirtualNetworkSites VirtualNetworkSite').last
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'accepts parameters without providing subnet/dns' do
|
113
|
+
subject.virtual_network_to_xml(vnet_name, affinity_group, address_space)
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'accepts parameters including subnet/dns' do
|
117
|
+
subject.virtual_network_to_xml(vnet_name,
|
118
|
+
affinity_group,
|
119
|
+
address_space,
|
120
|
+
input_options)
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'appends the new VirtualNetwork to the existing' do
|
124
|
+
result_string.must_be_kind_of String
|
125
|
+
result.css('VirtualNetworkSites VirtualNetworkSite').size.must_equal 4
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'sets the name and affinity group for the new VirtualNetwork' do
|
129
|
+
virtual_network.attr('name').must_equal vnet_name
|
130
|
+
virtual_network.attr('AffinityGroup').must_equal affinity_group
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'adds new dns servers on the top of existing dns servers' do
|
134
|
+
# Verify DnsServers
|
135
|
+
dns_servers = result.css 'DnsServers DnsServer'
|
136
|
+
|
137
|
+
dns_servers.size.must_equal 4
|
138
|
+
dns_servers[0].attr('name').must_equal(input_options[:dns][0][:name])
|
139
|
+
dns_servers[0].attr('IPAddress').must_equal(
|
140
|
+
input_options[:dns][0][:ip_address]
|
141
|
+
)
|
142
|
+
dns_servers[1].attr('name').must_equal(
|
143
|
+
input_options[:dns][1][:name]
|
144
|
+
)
|
145
|
+
dns_servers[1].attr('IPAddress').must_equal(
|
146
|
+
input_options[:dns][1][:ip_address]
|
147
|
+
)
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'adds DnsServerRef to VirtualNetworkSite' do
|
151
|
+
# Verify DnsServerRef
|
152
|
+
vnet_dns_servers = virtual_network.css 'DnsServersRef DnsServerRef'
|
153
|
+
vnet_dns_servers.size.must_equal 2
|
154
|
+
vnet_dns_servers[0].attr('name').must_equal(
|
155
|
+
input_options[:dns][0][:name]
|
156
|
+
)
|
157
|
+
vnet_dns_servers[1].attr('name').must_equal(
|
158
|
+
input_options[:dns][1][:name]
|
159
|
+
)
|
160
|
+
end
|
161
|
+
|
162
|
+
it 'adds Subnets to VirtualNetworkSite' do
|
163
|
+
# Verify Subnets
|
164
|
+
vnet_subnets = virtual_network.css 'Subnets Subnet'
|
165
|
+
vnet_subnets.size.must_equal 2
|
166
|
+
vnet_subnets[0].attr('name').must_equal(input_options[:subnet][0][:name])
|
167
|
+
vnet_subnets[0].css('AddressPrefix')[0].content.must_equal(
|
168
|
+
"#{input_options[:subnet][0][:ip_address]}/"\
|
169
|
+
"#{input_options[:subnet][0][:cidr]}"
|
170
|
+
)
|
171
|
+
vnet_subnets[1].attr('name').must_equal(input_options[:subnet][1][:name])
|
172
|
+
vnet_subnets[1].css('AddressPrefix')[0].content.must_equal(
|
173
|
+
"#{input_options[:subnet][1][:ip_address]}/"\
|
174
|
+
"#{input_options[:subnet][1][:cidr]}"
|
175
|
+
)
|
176
|
+
end
|
177
|
+
|
178
|
+
it 'adds AddressPrefix to VirtualNetworkSite' do
|
179
|
+
# Verify AddressSpaces
|
180
|
+
vnet_address_space = virtual_network.css 'AddressSpace AddressPrefix'
|
181
|
+
vnet_address_space.size.must_equal 2
|
182
|
+
vnet_address_space[0].content.must_equal address_space[0]
|
183
|
+
vnet_address_space[1].content.must_equal address_space[1]
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
end
|
@@ -1,131 +1,131 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require 'test_helper'
|
16
|
-
|
17
|
-
describe Azure::VirtualNetworkManagementService do
|
18
|
-
|
19
|
-
subject { Azure::VirtualNetworkManagementService.new }
|
20
|
-
|
21
|
-
# Setup mock parameters and return values
|
22
|
-
let(:vmname) { 'vnet-test-unit-1' }
|
23
|
-
let(:affinity_group) { 'RubyTest' }
|
24
|
-
let(:address_space) { ['172.16.0.0/12'] }
|
25
|
-
|
26
|
-
let(:non_existent_file) { '/this/file/doesnt/exist.xml' }
|
27
|
-
let(:empty_xml_file) { './test/fixtures/empty_xml_file' }
|
28
|
-
|
29
|
-
let(:list_networks_path) { '/services/networking/virtualnetwork' }
|
30
|
-
let(:set_network_path) { '/services/networking/media' }
|
31
|
-
|
32
|
-
let(:virtual_networks) { Fixtures['list_virtual_networks'] }
|
33
|
-
|
34
|
-
let(:getmethod) { :get }
|
35
|
-
let(:putmethod) { :put }
|
36
|
-
|
37
|
-
let(:mock_list_virtual_networks_request) { mock }
|
38
|
-
let(:list_networks_response) do
|
39
|
-
list_networks_response = mock
|
40
|
-
list_networks_response.stubs(:body).returns(virtual_networks)
|
41
|
-
list_networks_response
|
42
|
-
end
|
43
|
-
let(:list_networks_response_body) do
|
44
|
-
Nokogiri::XML list_networks_response.body
|
45
|
-
end
|
46
|
-
|
47
|
-
let(:mock_set_network_request) { mock }
|
48
|
-
let(:set_network_response) do
|
49
|
-
set_network_response = mock
|
50
|
-
set_network_response.stubs(:body).returns(empty_xml_file)
|
51
|
-
set_network_response
|
52
|
-
end
|
53
|
-
let(:set_network_response_body) do
|
54
|
-
Nokogiri::XML set_network_response.body
|
55
|
-
end
|
56
|
-
|
57
|
-
describe '#list_virtual_networks' do
|
58
|
-
before do
|
59
|
-
ManagementHttpRequest.stubs(:new).with(
|
60
|
-
getmethod,
|
61
|
-
list_networks_path,
|
62
|
-
nil
|
63
|
-
).returns(mock_list_virtual_networks_request)
|
64
|
-
mock_list_virtual_networks_request.expects(:call).returns(
|
65
|
-
list_networks_response_body
|
66
|
-
)
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'returns list of virtual networks' do
|
70
|
-
results = subject.list_virtual_networks
|
71
|
-
results.must_be_kind_of Array
|
72
|
-
results.length.must_equal 3
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'sets the properties of the virtual network' do
|
76
|
-
virtual_network = subject.list_virtual_networks.first
|
77
|
-
|
78
|
-
# Verify global properties
|
79
|
-
virtual_network.name.must_equal 'test-virtual-network'
|
80
|
-
virtual_network.affinity_group.must_equal 'Test'
|
81
|
-
virtual_network.id.must_equal 'afd3a393-8fe2-4127-a834-1b2b920729fe'
|
82
|
-
virtual_network.state.must_equal 'Created'
|
83
|
-
|
84
|
-
# Verify address_space
|
85
|
-
virtual_network.address_space.must_be_kind_of Array
|
86
|
-
virtual_network.address_space.length.must_equal 1
|
87
|
-
virtual_network.address_space.first.must_be_kind_of String
|
88
|
-
virtual_network.address_space.first.must_equal '10.0.0.0/8'
|
89
|
-
|
90
|
-
# Verify subnets
|
91
|
-
virtual_network.subnets.must_be_kind_of Array
|
92
|
-
virtual_network.subnets.length.must_equal 1
|
93
|
-
virtual_network.subnets.first[:name].must_equal 'Subnet-1'
|
94
|
-
virtual_network.subnets.first[:address_prefix].must_equal '10.0.0.0/11'
|
95
|
-
|
96
|
-
# Verify DNS Servers
|
97
|
-
virtual_network.dns_servers.must_be_kind_of Array
|
98
|
-
virtual_network.dns_servers.length.must_equal 2
|
99
|
-
virtual_network.dns_servers.first[:name].must_equal 'dns-server-1'
|
100
|
-
virtual_network.dns_servers.first[:ip_address].must_equal '1.2.3.4'
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
describe '#set_network_configuration' do
|
105
|
-
it 'throws error if wrong number of arguments (0) passed' do
|
106
|
-
exception = assert_raises(RuntimeError) do
|
107
|
-
subject.set_network_configuration
|
108
|
-
end
|
109
|
-
|
110
|
-
assert_match 'Wrong number of arguments', exception.message
|
111
|
-
end
|
112
|
-
|
113
|
-
it 'checks if the file exists' do
|
114
|
-
exception = assert_raises(RuntimeError) do
|
115
|
-
subject.set_network_configuration non_existent_file
|
116
|
-
end
|
117
|
-
|
118
|
-
assert_match("Could not read from file '#{non_existent_file}'.",
|
119
|
-
exception.message)
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'checks if the file name ends in .xml' do
|
123
|
-
exception = assert_raises(RuntimeError) do
|
124
|
-
subject.set_network_configuration empty_xml_file
|
125
|
-
end
|
126
|
-
|
127
|
-
assert_match 'File expects a .xml extension.', exception.message
|
128
|
-
end
|
129
|
-
|
130
|
-
end # end of describe#set_network_configuration
|
131
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require 'test_helper'
|
16
|
+
|
17
|
+
describe Azure::VirtualNetworkManagementService do
|
18
|
+
|
19
|
+
subject { Azure::VirtualNetworkManagementService.new }
|
20
|
+
|
21
|
+
# Setup mock parameters and return values
|
22
|
+
let(:vmname) { 'vnet-test-unit-1' }
|
23
|
+
let(:affinity_group) { 'RubyTest' }
|
24
|
+
let(:address_space) { ['172.16.0.0/12'] }
|
25
|
+
|
26
|
+
let(:non_existent_file) { '/this/file/doesnt/exist.xml' }
|
27
|
+
let(:empty_xml_file) { './test/fixtures/empty_xml_file' }
|
28
|
+
|
29
|
+
let(:list_networks_path) { '/services/networking/virtualnetwork' }
|
30
|
+
let(:set_network_path) { '/services/networking/media' }
|
31
|
+
|
32
|
+
let(:virtual_networks) { Fixtures['list_virtual_networks'] }
|
33
|
+
|
34
|
+
let(:getmethod) { :get }
|
35
|
+
let(:putmethod) { :put }
|
36
|
+
|
37
|
+
let(:mock_list_virtual_networks_request) { mock }
|
38
|
+
let(:list_networks_response) do
|
39
|
+
list_networks_response = mock
|
40
|
+
list_networks_response.stubs(:body).returns(virtual_networks)
|
41
|
+
list_networks_response
|
42
|
+
end
|
43
|
+
let(:list_networks_response_body) do
|
44
|
+
Nokogiri::XML list_networks_response.body
|
45
|
+
end
|
46
|
+
|
47
|
+
let(:mock_set_network_request) { mock }
|
48
|
+
let(:set_network_response) do
|
49
|
+
set_network_response = mock
|
50
|
+
set_network_response.stubs(:body).returns(empty_xml_file)
|
51
|
+
set_network_response
|
52
|
+
end
|
53
|
+
let(:set_network_response_body) do
|
54
|
+
Nokogiri::XML set_network_response.body
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '#list_virtual_networks' do
|
58
|
+
before do
|
59
|
+
ManagementHttpRequest.stubs(:new).with(
|
60
|
+
getmethod,
|
61
|
+
list_networks_path,
|
62
|
+
nil
|
63
|
+
).returns(mock_list_virtual_networks_request)
|
64
|
+
mock_list_virtual_networks_request.expects(:call).returns(
|
65
|
+
list_networks_response_body
|
66
|
+
)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'returns list of virtual networks' do
|
70
|
+
results = subject.list_virtual_networks
|
71
|
+
results.must_be_kind_of Array
|
72
|
+
results.length.must_equal 3
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'sets the properties of the virtual network' do
|
76
|
+
virtual_network = subject.list_virtual_networks.first
|
77
|
+
|
78
|
+
# Verify global properties
|
79
|
+
virtual_network.name.must_equal 'test-virtual-network'
|
80
|
+
virtual_network.affinity_group.must_equal 'Test'
|
81
|
+
virtual_network.id.must_equal 'afd3a393-8fe2-4127-a834-1b2b920729fe'
|
82
|
+
virtual_network.state.must_equal 'Created'
|
83
|
+
|
84
|
+
# Verify address_space
|
85
|
+
virtual_network.address_space.must_be_kind_of Array
|
86
|
+
virtual_network.address_space.length.must_equal 1
|
87
|
+
virtual_network.address_space.first.must_be_kind_of String
|
88
|
+
virtual_network.address_space.first.must_equal '10.0.0.0/8'
|
89
|
+
|
90
|
+
# Verify subnets
|
91
|
+
virtual_network.subnets.must_be_kind_of Array
|
92
|
+
virtual_network.subnets.length.must_equal 1
|
93
|
+
virtual_network.subnets.first[:name].must_equal 'Subnet-1'
|
94
|
+
virtual_network.subnets.first[:address_prefix].must_equal '10.0.0.0/11'
|
95
|
+
|
96
|
+
# Verify DNS Servers
|
97
|
+
virtual_network.dns_servers.must_be_kind_of Array
|
98
|
+
virtual_network.dns_servers.length.must_equal 2
|
99
|
+
virtual_network.dns_servers.first[:name].must_equal 'dns-server-1'
|
100
|
+
virtual_network.dns_servers.first[:ip_address].must_equal '1.2.3.4'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe '#set_network_configuration' do
|
105
|
+
it 'throws error if wrong number of arguments (0) passed' do
|
106
|
+
exception = assert_raises(RuntimeError) do
|
107
|
+
subject.set_network_configuration
|
108
|
+
end
|
109
|
+
|
110
|
+
assert_match 'Wrong number of arguments', exception.message
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'checks if the file exists' do
|
114
|
+
exception = assert_raises(RuntimeError) do
|
115
|
+
subject.set_network_configuration non_existent_file
|
116
|
+
end
|
117
|
+
|
118
|
+
assert_match("Could not read from file '#{non_existent_file}'.",
|
119
|
+
exception.message)
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'checks if the file name ends in .xml' do
|
123
|
+
exception = assert_raises(RuntimeError) do
|
124
|
+
subject.set_network_configuration empty_xml_file
|
125
|
+
end
|
126
|
+
|
127
|
+
assert_match 'File expects a .xml extension.', exception.message
|
128
|
+
end
|
129
|
+
|
130
|
+
end # end of describe#set_network_configuration
|
131
|
+
end
|