summaryrefslogtreecommitdiffstats
path: root/spec/unit/util
diff options
context:
space:
mode:
authorRein Henrichs <rein@puppetlabs.com>2010-08-18 14:45:53 -0700
committerRein Henrichs <rein@puppetlabs.com>2010-08-18 14:45:53 -0700
commit104e1e14fe9c7c71510561d9f073f8c316340265 (patch)
treef7aaf4ce00be21794bf69b38419a02cc917a9562 /spec/unit/util
parent65a5a51a39a3cb43d54aa457450f3b0afce6dc36 (diff)
parent4050acc291fa0d1773388f2c52d659b94249f1bd (diff)
downloadfacter-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.rb75
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