summaryrefslogtreecommitdiffstats
path: root/spec/unit/provider/group/windows_adsi_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/provider/group/windows_adsi_spec.rb')
-rw-r--r--spec/unit/provider/group/windows_adsi_spec.rb79
1 files changed, 79 insertions, 0 deletions
diff --git a/spec/unit/provider/group/windows_adsi_spec.rb b/spec/unit/provider/group/windows_adsi_spec.rb
new file mode 100644
index 000000000..7faaa1a8c
--- /dev/null
+++ b/spec/unit/provider/group/windows_adsi_spec.rb
@@ -0,0 +1,79 @@
+#!/usr/bin/env ruby
+
+require 'spec_helper'
+
+describe Puppet::Type.type(:group).provider(:windows_adsi) do
+ let(:resource) do
+ Puppet::Type.type(:group).new(
+ :title => 'testers',
+ :provider => :windows_adsi
+ )
+ end
+
+ let(:provider) { resource.provider }
+
+ let(:connection) { stub 'connection' }
+
+ before :each do
+ Puppet::Util::ADSI.stubs(:computer_name).returns('testcomputername')
+ Puppet::Util::ADSI.stubs(:connect).returns connection
+ end
+
+ describe ".instances" do
+ it "should enumerate all groups" do
+ names = ['group1', 'group2', 'group3']
+ stub_groups = names.map{|n| stub(:name => n)}
+
+ connection.stubs(:execquery).with("select * from win32_group").returns stub_groups
+
+ described_class.instances.map(&:name).should =~ names
+ end
+ end
+
+ describe "when managing members" do
+ it "should be able to provide a list of members" do
+ provider.group.stubs(:members).returns ['user1', 'user2', 'user3']
+
+ provider.members.should =~ ['user1', 'user2', 'user3']
+ end
+
+ it "should be able to set group members" do
+ provider.group.stubs(:members).returns ['user1', 'user2']
+
+ provider.group.expects(:remove_members).with('user1')
+ provider.group.expects(:add_members).with('user3')
+
+ provider.members = ['user2', 'user3']
+ end
+ end
+
+ it "should be able to create a group" do
+ resource[:members] = ['user1', 'user2']
+
+ group = stub 'group'
+ Puppet::Util::ADSI::Group.expects(:create).with('testers').returns group
+
+ group.expects(:set_members).with(['user1', 'user2'])
+
+ provider.create
+ end
+
+ it "should be able to test whether a group exists" do
+ Puppet::Util::ADSI.stubs(:connect).returns stub('connection')
+ provider.should be_exists
+
+ Puppet::Util::ADSI.stubs(:connect).returns nil
+ provider.should_not be_exists
+ end
+
+ it "should be able to delete a group" do
+ connection.expects(:Delete).with('group', 'testers')
+
+ provider.delete
+ end
+
+ it "should warn when trying to manage the gid property" do
+ provider.expects(:warning).with { |msg| msg =~ /No support for managing property gid/ }
+ provider.send(:gid=, 500)
+ end
+end