Skip to content

Commit 6e5e737

Browse files
committed
Add method all to VirtualMachineSizes
1 parent 34d2cb7 commit 6e5e737

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed

lib/fog/azurerm/models/compute/virtual_machine_sizes.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ class AzureRM
44
class VirtualMachineSizes < Fog::Collection
55
attribute :location
66
model Fog::Compute::AzureRM::VirtualMachineSize
7+
8+
def all
9+
requires :location
10+
virtual_machine_sizes = service.list_virtual_machine_sizes(location).map do |virtual_machine_size|
11+
Fog::Compute::AzureRM::VirtualMachineSize.parse(virtual_machine_size)
12+
end
13+
load(virtual_machine_sizes)
14+
end
715
end
816
end
917
end

test/api_stub/models/compute/virtual_machine_size.rb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,46 @@ module ApiStub
33
module Models
44
module Compute
55
class VirtualMachineSize
6+
def self.virtual_machine_sizes(sdk_compute_client)
7+
virtual_machine_sizes = {
8+
'value' => [
9+
{
10+
'max_data_disk_count' => 1,
11+
'memory_in_mb' => 768,
12+
'name' => 'Standard_A0',
13+
'number_of_cores' => 1,
14+
'os_disk_size_in_mb' => 1_047_552,
15+
'resource_disk_size_in_mb' => 20_480
16+
},
17+
{
18+
'max_data_disk_count' => 2,
19+
'memory_in_mb' => 1_792,
20+
'name' => 'Standard_A1',
21+
'number_of_cores' => 1,
22+
'os_disk_size_in_mb' => 1_047_552,
23+
'resource_disk_size_in_mb' => 71_680
24+
},
25+
{
26+
'max_data_disk_count' => 4,
27+
'memory_in_mb' => 3_584,
28+
'name' => 'Standard_A2',
29+
'number_of_cores' => 2,
30+
'os_disk_size_in_mb' => 1_047_552,
31+
'resource_disk_size_in_mb' => 138_240
32+
},
33+
{
34+
'max_data_disk_count' => 1,
35+
'memory_in_mb' => 768,
36+
'name' => 'Basic_A0',
37+
'number_of_cores' => 1,
38+
'os_disk_size_in_mb' => 1_047_552,
39+
'resource_disk_size_in_mb' => 20_480
40+
}
41+
]
42+
}
43+
virtual_machine_size_mapper = Azure::ARM::Compute::Models::VirtualMachineSizeListResult.mapper
44+
sdk_compute_client.deserialize(virtual_machine_size_mapper, virtual_machine_sizes, 'result.body').value
45+
end
646
end
747
end
848
end

test/models/compute/test_virtual_machine_sizes.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,30 @@ class TestVirtualMachineSizes < Minitest::Test
44
def setup
55
@service = Fog::Compute::AzureRM.new(credentials)
66
@virtual_machine_sizes = Fog::Compute::AzureRM::VirtualMachineSizes.new(location: 'location', service: @service)
7+
@compute_client = @service.instance_variable_get(:@compute_mgmt_client)
8+
@response = ApiStub::Models::Compute::VirtualMachineSize.virtual_machine_sizes(@compute_client)
79
end
810

911
def test_collection_attributes
1012
assert_respond_to @virtual_machine_sizes, :location
1113
end
14+
15+
def test_collection_methods
16+
methods = %i(all)
17+
methods.each do |method|
18+
assert_respond_to @virtual_machine_sizes, method
19+
end
20+
end
21+
22+
def test_all_method_response
23+
@service.stub :list_virtual_machine_sizes, @response do
24+
sizes = @virtual_machine_sizes.all
25+
26+
assert_instance_of Fog::Compute::AzureRM::VirtualMachineSizes, sizes
27+
assert sizes.size >= 1
28+
sizes.each do |size|
29+
assert_instance_of Fog::Compute::AzureRM::VirtualMachineSize, size
30+
end
31+
end
32+
end
1233
end

0 commit comments

Comments
 (0)