summaryrefslogtreecommitdiffstats
path: root/spec/unit
diff options
context:
space:
mode:
authorJacob Helwig <jacob@puppetlabs.com>2011-04-22 15:19:54 -0700
committerJacob Helwig <jacob@puppetlabs.com>2011-04-22 15:19:54 -0700
commit1ee6f949416a269cc7103dc1ae863fc0f91c7a8b (patch)
tree7a750e930eb6fbfb8c3593fc5dd85d08a1777a23 /spec/unit
parent0b9c7adce13cad4325d514f9d97562364042319c (diff)
parentc306db2037a12fcf5064ab496b96eaa3011d5e71 (diff)
Merge branch 'tickets/2.6.x/6487-help-directoryservice-provider-work-on-future-OSX-versions' into 2.6.next
* tickets/2.6.x/6487-help-directoryservice-provider-work-on-future-OSX-versions: (#6487) Add some testing for OS X version support in DirectoryService provider (#6487) Directoryservice provider will fail in future OS releases
Diffstat (limited to 'spec/unit')
-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