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