mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
743882f032
This massive commit refactors all of the request methods on the Fog::Compute[:vsphere] instance to return simple hashes. The behavior before this commit returned full vmware object references which was a problem because it was difficult to unit test. With this patch, it is much easier to add and maintain Mock implementations of the request methods. This makes adding behavior tests for the server model much easier. In addition, test coverage using Shindo has been added. Previously there was little test coverage of the behavior. To run the tests: shindont tests/vsphere/
26 lines
1,016 B
Ruby
26 lines
1,016 B
Ruby
Shindo.tests('Fog::Compute[:vsphere] | vm_reboot request', ['vsphere']) do
|
|
|
|
compute = Fog::Compute[:vsphere]
|
|
|
|
powered_on_vm = '5032c8a5-9c5e-ba7a-3804-832a03e16381'
|
|
|
|
tests('The response should') do
|
|
response = compute.vm_reboot('instance_uuid' => powered_on_vm)
|
|
test('be a kind of Hash') { response.kind_of? Hash }
|
|
test('should have a task_state key') { response.has_key? 'task_state' }
|
|
test('should have a reboot_type key') { response.has_key? 'reboot_type' }
|
|
end
|
|
|
|
# When forcing the shutdown, we expect the result to be
|
|
{ true => 'reset_power', false => 'reboot_guest'}.each do |force, expected|
|
|
tests("When force => #{force}") do
|
|
response = compute.vm_reboot('instance_uuid' => powered_on_vm, 'force' => force)
|
|
test("should return reboot_type of #{expected}") { response['reboot_type'] == expected }
|
|
end
|
|
end
|
|
|
|
tests('The expected options') do
|
|
raises(ArgumentError, 'raises ArgumentError when instance_uuid option is missing') { compute.vm_reboot }
|
|
end
|
|
|
|
end
|