diff options
author | Stuart Preston <stuart@chef.io> | 2018-07-04 16:11:37 +0100 |
---|---|---|
committer | Stuart Preston <stuart@chef.io> | 2018-07-04 16:11:37 +0100 |
commit | 69c7cd09d35cf1986f291f8cf842406fed8a7835 (patch) | |
tree | 780fc059505d3308053b433f9e8ad0db67ac456b /spec | |
parent | 7d4341c69b3481fb104f525a055ac6ebc521d67e (diff) | |
download | ohai-69c7cd09d35cf1986f291f8cf842406fed8a7835.tar.gz |
Use wmilite instead of shelling out to PowerShell
Signed-off-by: Stuart Preston <stuart@chef.io>
Diffstat (limited to 'spec')
-rw-r--r-- | spec/unit/plugins/windows/system_enclosure_spec.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/unit/plugins/windows/system_enclosure_spec.rb b/spec/unit/plugins/windows/system_enclosure_spec.rb new file mode 100644 index 00000000..8d8327f8 --- /dev/null +++ b/spec/unit/plugins/windows/system_enclosure_spec.rb @@ -0,0 +1,47 @@ +# +# Author:: Pavel Yudin (<pyudin@parallels.com>) +# Author:: Tim Smith (<tsmith@chef.io>) +# Copyright:: Copyright (c) 2015 Pavel Yudin +# Copyright:: Copyright (c) 2015-2016 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require_relative "../../../spec_helper.rb" + +describe Ohai::System, "System Enclosure", :windows_only do + before do + require "wmi-lite/wmi" + @plugin = get_plugin("windows/system_enclosure") + manufacturer = double("WIN32OLE", :name => "manufacturer", :value => "Microsoft Corporation") + serialnumber = double("WIN32OLE", :name => "serialnumber", :value => "000430775257") + property_map = [ manufacturer, serialnumber ] + + wmi_ole_object = double( "WIN32OLE", :properties_ => property_map) + allow(wmi_ole_object).to receive(:invoke).with(manufacturer.name).and_return(manufacturer.value) + allow(wmi_ole_object).to receive(:invoke).with(serialnumber.name).and_return(serialnumber.value) + wmi_object = WmiLite::Wmi::Instance.new(wmi_ole_object) + expect_any_instance_of(WmiLite::Wmi).to receive(:first_of).with(("Win32_SystemEnclosure")).and_return(wmi_object) + end + + it "should return the manufacturer" do + @plugin.run + expect(@plugin["system_enclosure"]["manufacturer"]).to eql("Microsoft Corporation") + end + + it "should return a serial number" do + @plugin.run + expect(@plugin["system_enclosure"]["serialnumber"]).to eql("000430775257") + end +end |