From 07eb4f579a50a00d6512f124a11bfd064c492853 Mon Sep 17 00:00:00 2001 From: Glenn Sarti Date: Fri, 17 Mar 2017 10:42:07 -0700 Subject: [PATCH] (POOLER-73) Update find_pool in vsphere_helper.rb to enable testing Previously, it was not able to mock objects to impersonate various RBVMOMI objects. This commit changes the case statement to use `base.is_a?` which can be mocked and allow mocked objects to mimic real objects. --- lib/vmpooler/vsphere_helper.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/vmpooler/vsphere_helper.rb b/lib/vmpooler/vsphere_helper.rb index 45b5ab7..68db65d 100644 --- a/lib/vmpooler/vsphere_helper.rb +++ b/lib/vmpooler/vsphere_helper.rb @@ -276,12 +276,12 @@ module Vmpooler base = datacenter.hostFolder pools = poolname.split('/') pools.each do |pool| - case base - when RbVmomi::VIM::Folder + case + when base.is_a?(RbVmomi::VIM::Folder) base = base.childEntity.find { |f| f.name == pool } - when RbVmomi::VIM::ClusterComputeResource + when base.is_a?(RbVmomi::VIM::ClusterComputeResource) base = base.resourcePool.resourcePool.find { |f| f.name == pool } - when RbVmomi::VIM::ResourcePool + when base.is_a?(RbVmomi::VIM::ResourcePool) base = base.resourcePool.find { |f| f.name == pool } else abort "Unexpected object type encountered (#{base.class}) while finding resource pool"