From: Joel Rosario <[email protected]>
Signed-off-by: James Turnbull <[email protected]> --- Local-branch: tickets/master/6693 spec/unit/provider/group/groupadd_win.rb | 55 +++++++++++++++++++++ spec/unit/provider/user/useradd_win.rb | 79 ++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 0 deletions(-) create mode 100644 spec/unit/provider/group/groupadd_win.rb create mode 100644 spec/unit/provider/user/useradd_win.rb diff --git a/spec/unit/provider/group/groupadd_win.rb b/spec/unit/provider/group/groupadd_win.rb new file mode 100644 index 0000000..1b8d4c1 --- /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.should be_exists + + Puppet::Util::Windows::Group.expects(:exists?).with('testgroup').returns false + @provider.should_not be_exists + end +end diff --git a/spec/unit/provider/user/useradd_win.rb b/spec/unit/provider/user/useradd_win.rb new file mode 100644 index 0000000..321cb8e --- /dev/null +++ b/spec/unit/provider/user/useradd_win.rb @@ -0,0 +1,79 @@ +#!/usr/bin/env ruby + +require File.dirname(__FILE__) + '/../../../spec_helper' + +describe "User management for Windows: useradd_win" do + confine :true => Puppet.features.windows? + + before(:each) do + @resource = stub('resource') + @resource.stubs(:[]).with(:name).returns('testuser') + @resource.stubs(:[]).with(:password).returns('pwd') + + provider_class = Puppet::Type.type(:user).provider(:useradd_win) + @provider = provider_class.new(@resource) + + @user_mock = mock('user') + @provider.stubs(:user).returns @user_mock + end + + it 'should be able to verify a users password using User::password_is?' do + @user_mock.expects(:password_is?).with('pwd').returns true + @provider.password.should be_eql('pwd') + + @user_mock.expects(:password_is?).with('pwd').returns false + @provider.password.should be_eql('') + end + + it 'should be able to set a users password using User::password' do + @user_mock.expects(:password=).with('pwd') + @provider.password = 'pwd' + end + + describe 'when asked for a list of groups of which the user is a member' do + it 'should return the list of groups as a csv' do + @user_mock.expects(:groups).returns ['group1', 'group2', 'group3'] + @provider.groups.should be_eql('group1,group2,group3') + end + + it 'should return :absent if any error is raised while fetching the list' do + @user_mock.expects(:groups).raises("ERROR") + @provider.groups.should be_eql(:absent) + end + end + + it 'should be able to add a user to a set of groups' do + @resource.expects(:[]).with(:membership).returns(:minimum) + @user_mock.expects(:set_groups).with('group1,group2', true) + + @provider.groups = 'group1,group2' + + @resource.expects(:[]).with(:membership).returns(:inclusive) + @user_mock.expects(:set_groups).with('group1,group2', false) + + @provider.groups = 'group1,group2' + end + + it 'should be able to create a user' do + @resource.expects(:[]).with(:groups).returns('group1,group2') + @resource.expects(:[]).with(:membership).returns(:minimum) + + Puppet::Util::Windows::User.expects(:create).with('testuser', 'pwd').returns @user_mock + @user_mock.expects(:set_groups).with('group1,group2', true) + + @provider.create + end + + it 'should be able to test whether a user exists' do + Puppet::Util::Windows::User.expects(:exists?).with('testuser').returns true + @provider.should be_exists + + Puppet::Util::Windows::User.expects(:exists?).with('testuser').returns false + @provider.should_not be_exists + end + + it 'should be able to delete a user' do + Puppet::Util::Windows::User.expects(:delete).with('testuser') + @provider.delete + end +end -- 1.7.1 -- 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.
