spec/unit/plugins/hostname_spec.rb in ohai-6.24.2 vs spec/unit/plugins/hostname_spec.rb in ohai-7.0.0.rc.0

- old
+ new

@@ -4,13 +4,13 @@ # 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. @@ -19,31 +19,56 @@ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb') describe Ohai::System, "hostname plugin" do before(:each) do - @ohai = Ohai::System.new - @ohai.stub!(:require_plugin).and_return(true) + @plugin = get_plugin("hostname") + @plugin.stub(:collect_os).and_return(:default) + @plugin.stub(:shell_out).with("hostname").and_return(mock_shell_out(0, "katie.local", "")) end - it "should set the domain to everything after the first dot of the fqdn" do - @ohai[:fqdn] = "katie.bethell" - @ohai._require_plugin("hostname") - @ohai.domain.should == "bethell" - end + context "when sigar is not installed" do + before(:each) do + @plugin.stub(:sigar_is_available?).and_return(false) + @plugin.should_not_receive(:get_fqdn_from_sigar) + @plugin.stub(:resolve_fqdn).and_return("katie.bethell") + end + it_should_check_from("linux::hostname", "machinename", "hostname", "katie.local") - it "should not set a domain if fqdn is not set" do - @ohai._require_plugin("hostname") - @ohai.domain.should == nil - end + it "should use #resolve_fqdn to find the fqdn" do + @plugin.run + @plugin[:fqdn].should == "katie.bethell" + end - it "should require the os plugin" do - @ohai.should_receive(:require_plugin).with("os").and_return(true) - @ohai._require_plugin("hostname") + it "should set the domain to everything after the first dot of the fqdn" do + @plugin.run + @plugin[:domain].should == "bethell" + end + + it "should set the [short] hostname to everything before the first dot of the fqdn" do + @plugin.run + @plugin[:hostname].should == "katie" + end end - it "should load a platform specific hostname plugin" do - @ohai[:os] = "linux" - @ohai.should_receive(:require_plugin).with("linux::hostname").and_return(true) - @ohai._require_plugin("hostname") + context "when sigar is installed" do + before(:each) do + @plugin.stub(:sigar_is_available?).and_return(true) + @plugin.stub(:get_fqdn_from_sigar).and_return("katie.bethell") + end + it_should_check_from("linux::hostname", "machinename", "hostname", "katie.local") + it "should set the fqdn to the returned value from sigar" do + @plugin.run + @plugin[:fqdn].should == "katie.bethell" + end + + it "should set the domain to everything after the first dot of the fqdn" do + @plugin.run + @plugin[:domain].should == "bethell" + end + + it "should set the [short] hostname to everything before the first dot of the fqdn" do + @plugin.run + @plugin[:hostname].should == "katie" + end end end