diff --git a/lib/puppet/provider/group/groupadd_win.rb
b/lib/puppet/provider/group/groupadd_win.rb
new file mode 100644
index 0000000..6d15d9d
--- /dev/null
+++ b/lib/puppet/provider/group/groupadd_win.rb
@@ -0,0 +1,38 @@
+Puppet::Type.type(:group).provide :groupadd_win do
+ desc "Group management for windows"
+
+ confine :true => Puppet.features.windows?
+ require 'puppet/util/windows_system'
+
+ has_features :manages_members
+
+ def group
+ @group = Puppet::Util::Windows::Group.new(name) unless defined?(@group)
+ @group
+ end
+
+ def name
+ @resource[:name]
+ end
+
+ def members
+ group.members
+ end
+
+ def members=(members)
+ group.set_members(members)
+ end
+
+ def create
+ @group = Puppet::Util::Windows::Group.create(name)
+ @group.set_members(@resource[:members])
+ end
+
+ def exists?
+ Puppet::Util::Windows::Group.exists?(name)
+ end
+
+ def delete
+ Puppet::Util::Windows::Group.delete(name)
+ end
+end
diff --git a/spec/integration/provider/group/groupadd_win.rb
b/spec/integration/provider/group/groupadd_win.rb
new file mode 100644
index 0000000..11ea597
--- /dev/null
+++ b/spec/integration/provider/group/groupadd_win.rb
@@ -0,0 +1,47 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../../spec_helper'
+
+describe "Provider for windows groups" do
+ confine :true => Puppet.features.windows?
+
+ require 'windowstest'
+ include WindowsTest
+
+ def group_provider(resource_configuration)
+ #provider = Puppet::Type::Group::ProviderGroupadd_win.new
+ provider = Puppet::Type.type(:group).provider(:groupadd_win).new
+ provider.resource = resource_configuration
+ return provider
+ end
+
+ after(:each) do
+ clear
+ end
+
+ it 'should create a group with configured members' do
+ groupname = "randomgroup"
+ register_group groupname
+
+ expected_members = ["test1", "test2"]
+ mkusers(expected_members)
+
+ provider = group_provider :name => groupname, :members =>
['test1', 'test2']
+ provider.create
+
+ should_have_no_missing_member(group(groupname), expected_members)
+ end
+
+ it 'should set a groups members' do
+ groupname = "randomgroup"
+ expected_members = ["test1", "test2"]
+
+ testgroup = mkgroup(groupname)
+ mkusers(expected_members)
+
+ provider = group_provider :name => groupname, :members =>
['test1', 'test2']
+ provider.members = ['test1', 'test2']
+
+ should_have_no_missing_member(testgroup, expected_members)
+ end
+end
diff --git a/spec/unit/provider/group/groupadd_win.rb
b/spec/unit/provider/group/groupadd_win.rb
new file mode 100644
index 0000000..30d3b9f
--- /dev/null
+++ b/spec/unit/provider/group/groupadd_win.rb
@@ -0,0 +1,55 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../../spec_helper'
+
+describe "Group management for Windows: useradd_win" do
+ confine :true => Puppet.features.windows?
+
+ before(:each) do
+ @resource = stub('resource')
+ @resource.stubs(:[]).with(:name).returns('testgroup')
+
+ provider_class = Puppet::Type.type(:group).provider(:groupadd_win)
+ @provider = provider_class.new(@resource)
+
+ @group_mock = mock('group')
+ @provider.stubs(:group).returns @group_mock
+ end
+
+ it 'should be able to provide a list of members' do
+ expected_members = ['user1', 'user2']
+ @group_mock.expects(:members).returns expected_members
+
+ members = @provider.members
+ members.length.should be_eql(2)
+ expected_members.each {|member|
members.include?(member).should be_true }
+ end
+
+ it 'should be able to set group members' do
+ members = ['user1', 'user2']
+ @group_mock.expects(:set_members).with(members)
+ @provider.members = members
+ end
+
+ it 'should be able to create a group' do
+ Puppet::Util::Windows::Group.expects(:create).with('testgroup').returns
@group_mock
+ members = ['user1', 'user2']
+ @resource.expects(:[]).with(:members).returns members
+ @group_mock.expects(:set_members).with(members)
+
+ @provider.create
+ end
+
+ it 'should be able to delete a group' do
+ Puppet::Util::Windows::Group.expects(:delete).with('testgroup')
+ @provider.delete
+ end
+
+ it 'should be able to verify that a group exists' do
+
Puppet::Util::Windows::Group.expects(:exists?).with('testgroup').returns
true
+ @provider.exists?.should be_true
+
+
Puppet::Util::Windows::Group.expects(:exists?).with('testgroup').returns
false
+ @provider.exists?.should be_false
+ end
+end
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---