diff options
| author | Rein Henrichs <rein@puppetlabs.com> | 2010-08-18 14:45:53 -0700 |
|---|---|---|
| committer | Rein Henrichs <rein@puppetlabs.com> | 2010-08-18 14:45:53 -0700 |
| commit | 104e1e14fe9c7c71510561d9f073f8c316340265 (patch) | |
| tree | f7aaf4ce00be21794bf69b38419a02cc917a9562 /spec/unit/util | |
| parent | 65a5a51a39a3cb43d54aa457450f3b0afce6dc36 (diff) | |
| parent | 4050acc291fa0d1773388f2c52d659b94249f1bd (diff) | |
| download | facter-104e1e14fe9c7c71510561d9f073f8c316340265.tar.gz facter-104e1e14fe9c7c71510561d9f073f8c316340265.tar.xz facter-104e1e14fe9c7c71510561d9f073f8c316340265.zip | |
Merge branch 'ticket/master/3703-macaddress-on-mac' into next
Diffstat (limited to 'spec/unit/util')
| -rw-r--r-- | spec/unit/util/macaddress.rb | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/spec/unit/util/macaddress.rb b/spec/unit/util/macaddress.rb new file mode 100644 index 0000000..8349b36 --- /dev/null +++ b/spec/unit/util/macaddress.rb @@ -0,0 +1,75 @@ +#!/usr/bin/env ruby + +require File.dirname(__FILE__) + '/../../spec_helper' + +require 'facter/util/macaddress' + +context "Darwin" do + test_cases = [ + # version, iface, real macaddress, fallback macaddress + ["9.8.0", 'en0', "00:17:f2:06:e4:2e", "00:17:f2:06:e4:2e"], + ["10.3.0", 'en0', "00:17:f2:06:e3:c2", "00:17:f2:06:e3:c2"], + ["10.6.4", 'en1', "58:b0:35:7f:25:b3", "58:b0:35:fa:08:b1"] + ] + + test_cases.each do |version, default_iface, macaddress, fallback_macaddress| + netstat_file = File.join(SPECDIR, "fixtures", "netstat", "darwin_#{version.tr('.', '_')}") + ifconfig_file_no_iface = File.join(SPECDIR, "fixtures", "ifconfig", "darwin_#{version.tr('.', '_')}") + ifconfig_file = "#{ifconfig_file_no_iface}_#{default_iface}" + + context "version #{version}" do + + describe Facter::Util::Macaddress::Darwin do + + describe ".default_interface" do + context "when netstat has a default interface" do + + before do + Facter::Util::Macaddress::Darwin.stubs(:netstat_command).returns("cat #{netstat_file}") + end + + it "should return the default interface name" do + Facter::Util::Macaddress::Darwin.default_interface.should == default_iface + end + end + + end + + describe ".macaddress" do + context "when netstat has a default interface" do + before do + Facter.stubs(:warn) + Facter::Util::Macaddress::Darwin.stubs(:default_interface).returns('') + Facter::Util::Macaddress::Darwin.stubs(:ifconfig_command).returns("cat #{ifconfig_file}") + end + + it "should return the macaddress of the default interface" do + Facter::Util::Macaddress::Darwin.macaddress.should == macaddress + end + + end + + context "when netstat does not have a default interface" do + before do + Facter::Util::Macaddress::Darwin.stubs(:default_interface).returns("") + Facter::Util::Macaddress::Darwin.stubs(:ifconfig_command).returns("cat #{ifconfig_file_no_iface}") + end + + it "should warn about the lack of default" do + Facter.expects(:warn).with("Could not find a default route. Using first non-loopback interface") + Facter::Util::Macaddress::Darwin.stubs(:default_interface).returns('') + Facter::Util::Macaddress::Darwin.macaddress + end + + it "should return the macaddress of the first non-loopback interface" do + Facter::Util::Macaddress::Darwin.macaddress.should == fallback_macaddress + end + + end + end + + end + + end + end +end |
