From 88052ac85a69b388d64a0f05ee1053a91521d35d Mon Sep 17 00:00:00 2001 From: Glenn Sarti Date: Mon, 13 Mar 2017 17:08:48 -0700 Subject: [PATCH] (POOLER-73) Update find_folder in vsphere_helper.rb to enable testing Previously, it was not able to mock objects to impersonate a RbVmomi::VIM::Folder object. This commit changes the case statement to an if statement using is_a? which can be mocked and allow mocked objects to mimic real objects. --- lib/vmpooler/vsphere_helper.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/vmpooler/vsphere_helper.rb b/lib/vmpooler/vsphere_helper.rb index 4e55583..45b5ab7 100644 --- a/lib/vmpooler/vsphere_helper.rb +++ b/lib/vmpooler/vsphere_helper.rb @@ -178,11 +178,10 @@ module Vmpooler base = datacenter.vmFolder folders = foldername.split('/') folders.each do |folder| - case base - when RbVmomi::VIM::Folder - base = base.childEntity.find { |f| f.name == folder } - else - abort "Unexpected object type encountered (#{base.class}) while finding folder" + if base.is_a? RbVmomi::VIM::Folder + base = base.childEntity.find { |f| f.name == folder } + else + abort "Unexpected object type encountered (#{base.class}) while finding folder" end end