summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Helwig <jacob@puppetlabs.com>2011-04-22 15:03:17 -0700
committerJacob Helwig <jacob@puppetlabs.com>2011-04-22 15:08:03 -0700
commitc306db2037a12fcf5064ab496b96eaa3011d5e71 (patch)
tree7a750e930eb6fbfb8c3593fc5dd85d08a1777a23
parent0008b630f8bd6c5dbeb96fd0f097dd15c22ffaf4 (diff)
downloadpuppet-c306db2037a12fcf5064ab496b96eaa3011d5e71.tar.gz
puppet-c306db2037a12fcf5064ab496b96eaa3011d5e71.tar.xz
puppet-c306db2037a12fcf5064ab496b96eaa3011d5e71.zip
(#6487) Add some testing for OS X version support in DirectoryService provider
This adds some basic testing around whether url, or plist data is used for the various versions of OS X. Unfortunately this involves stubbing larger sections of the implementation than we'd like, but this did not attempt to re-structure the implementation at all. Paired-with: Josh Cooper <josh@puppetlabs.com>
-rwxr-xr-xspec/unit/provider/nameservice/directoryservice_spec.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/spec/unit/provider/nameservice/directoryservice_spec.rb b/spec/unit/provider/nameservice/directoryservice_spec.rb
index 661899db9..07f75e3f4 100755
--- a/spec/unit/provider/nameservice/directoryservice_spec.rb
+++ b/spec/unit/provider/nameservice/directoryservice_spec.rb
@@ -36,3 +36,63 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
end
end
end
+
+describe 'DirectoryService.single_report' do
+ it 'should fail on OS X < 10.4' do
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_macosx_version_major).returns("10.3")
+
+ lambda {
+ Puppet::Provider::NameService::DirectoryService.single_report('resource_name')
+ }.should raise_error(RuntimeError, "Puppet does not support OS X versions < 10.4")
+ end
+
+ it 'should use url data on 10.4' do
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_macosx_version_major).returns("10.4")
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_ds_path).returns('Users')
+ Puppet::Provider::NameService::DirectoryService.stubs(:list_all_present).returns(
+ ['root', 'user1', 'user2', 'resource_name']
+ )
+ Puppet::Provider::NameService::DirectoryService.stubs(:generate_attribute_hash)
+ Puppet::Provider::NameService::DirectoryService.stubs(:execute)
+ Puppet::Provider::NameService::DirectoryService.expects(:parse_dscl_url_data)
+
+ Puppet::Provider::NameService::DirectoryService.single_report('resource_name')
+ end
+
+ it 'should use plist data on > 10.4' do
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_macosx_version_major).returns("10.5")
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_ds_path).returns('Users')
+ Puppet::Provider::NameService::DirectoryService.stubs(:list_all_present).returns(
+ ['root', 'user1', 'user2', 'resource_name']
+ )
+ Puppet::Provider::NameService::DirectoryService.stubs(:generate_attribute_hash)
+ Puppet::Provider::NameService::DirectoryService.stubs(:execute)
+ Puppet::Provider::NameService::DirectoryService.expects(:parse_dscl_plist_data)
+
+ Puppet::Provider::NameService::DirectoryService.single_report('resource_name')
+ end
+end
+
+describe 'DirectoryService.get_exec_preamble' do
+ it 'should fail on OS X < 10.4' do
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_macosx_version_major).returns("10.3")
+
+ lambda {
+ Puppet::Provider::NameService::DirectoryService.get_exec_preamble('-list')
+ }.should raise_error(RuntimeError, "Puppet does not support OS X versions < 10.4")
+ end
+
+ it 'should use url data on 10.4' do
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_macosx_version_major).returns("10.4")
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_ds_path).returns('Users')
+
+ Puppet::Provider::NameService::DirectoryService.get_exec_preamble('-list').should include("-url")
+ end
+
+ it 'should use plist data on > 10.4' do
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_macosx_version_major).returns("10.5")
+ Puppet::Provider::NameService::DirectoryService.stubs(:get_ds_path).returns('Users')
+
+ Puppet::Provider::NameService::DirectoryService.get_exec_preamble('-list').should include("-plist")
+ end
+end