simple_crowd 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,22 @@
1
+ require 'helper'
2
+
3
+ class TestSimpleCrowd < Test::Unit::TestCase
4
+ context "with default keys" do
5
+ setup do
6
+ @default_keys = [:service_url, :service_ns, :service_namespaces, :app_name, :app_password]
7
+ end
8
+ should "return options" do
9
+ options = SimpleCrowd.soap_options
10
+ options.should_not be nil
11
+ options.empty?.should be false
12
+ @default_keys.each {|v| options[v].should_not be nil}
13
+ end
14
+
15
+ should "only have default options" do
16
+ options = SimpleCrowd.soap_options
17
+ options.should_not be nil
18
+ (options.keys - @default_keys).length.should == 0
19
+ (@default_keys - options.keys).length.should == 0
20
+ end
21
+ end
22
+ end
data/test/test_user.rb ADDED
@@ -0,0 +1,69 @@
1
+ require 'helper'
2
+
3
+ class TestUser < Test::Unit::TestCase
4
+ context 'A User' do
5
+ setup do
6
+ @user = Factory.build(:user)
7
+ end
8
+ should "track dirty properties" do
9
+ @user.dirty_properties.should_not be nil
10
+ @user.dirty_properties.empty?.should be true
11
+ @user.dirty?.should be false
12
+ oldname = @user.first_name
13
+ @user.first_name = "Changed"
14
+ @user.email = @user.email
15
+ @user.dirty_properties.length.should == 1
16
+ @user.dirty_properties.include?(:first_name).should be true
17
+ @user.dirty?.should be true
18
+ @user.dirty?(:first_name).should be true
19
+ @user.dirty?(:last_name).should be false
20
+ @user.dirty?(:email).should be false
21
+ end
22
+
23
+ should "test attributes" do
24
+ @user.first_name = "Blah"
25
+ @user.givenName.should == "Blah"
26
+ end
27
+
28
+ should "update with" do
29
+ @user.dirty?.should be false
30
+ @user.update_with(@user.merge({:first_name => @user.first_name, :last_name => "Updated"}))
31
+ @user.dirty?.should be true
32
+ @user.dirty_properties.length.should == 1
33
+ @user.dirty?(:last_name).should be true
34
+ @user.dirty?(:first_name).should be false
35
+ end
36
+
37
+ should "map to soap" do
38
+ soap_user = @user.map_to :soap
39
+ soap_user.should_not be nil
40
+ soap_user[:attributes].key?('int:SOAPAttribute').should be true
41
+ soap_user[:attributes]['int:SOAPAttribute'].length.should == @user.attributes.length
42
+ soap_user[:name].should == @user.username
43
+ soap_user[:attributes]['int:SOAPAttribute'].select{|a|a['int:name'] == :mail}[0]['int:values']['wsdl:string'].should == @user.email
44
+ end
45
+ should "parse from soap" do
46
+ soap_user = {:name => "testparse", :active => true, :attributes => {:soap_attribute => [
47
+ {:name => "givenName", :values => {:string => "parsefirstname"}},
48
+ {:name => "sn", :values => {:string => "parselastname"}},
49
+ {:name => "displayName", :values => {:string => "parsedisplayname"}},
50
+ {:name => "customAttr", :values => {:string => ["custom1", "custom2"]}}
51
+ ]}}
52
+ obj_user = SimpleCrowd::User.parse_from :soap, soap_user
53
+ obj_user.should_not be_nil
54
+ obj_user.active.should == true
55
+ obj_user.first_name.should == "parsefirstname"
56
+ obj_user.last_name.should == "parselastname"
57
+ obj_user.display_name.should == "parsedisplayname"
58
+ obj_user.customAttr.should == ["custom1", "custom2"]
59
+ (obj_user.attributes_keys - [:first_name, :last_name, :display_name, :customAttr, :email]).empty?.should be true
60
+ end
61
+
62
+ should "mark new props as atttributes" do
63
+ curr_attributes = @user.attributes_keys
64
+ @user[:new_prop] = "new value"
65
+ (@user.attributes_keys - curr_attributes).should == [:new_prop]
66
+ end
67
+
68
+ end
69
+ end
metadata ADDED
@@ -0,0 +1,208 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_crowd
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Paul Strong
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-04-27 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: shoulda
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: fcoury-matchy
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: factory_girl
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :development
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: forgery
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :development
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: webmock
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
88
+ version: "0"
89
+ type: :development
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: rr
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ type: :development
104
+ version_requirements: *id006
105
+ - !ruby/object:Gem::Dependency
106
+ name: savon
107
+ prerelease: false
108
+ requirement: &id007 !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - "="
112
+ - !ruby/object:Gem::Version
113
+ hash: 17
114
+ segments:
115
+ - 0
116
+ - 7
117
+ - 9
118
+ version: 0.7.9
119
+ type: :runtime
120
+ version_requirements: *id007
121
+ - !ruby/object:Gem::Dependency
122
+ name: hashie
123
+ prerelease: false
124
+ requirement: &id008 !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - "="
128
+ - !ruby/object:Gem::Version
129
+ hash: 23
130
+ segments:
131
+ - 1
132
+ - 0
133
+ - 0
134
+ version: 1.0.0
135
+ type: :runtime
136
+ version_requirements: *id008
137
+ description: |-
138
+ Simple Atlassian Crowd client using REST and SOAP APIs where needed.
139
+ Doesn't do any fancy object mapping, etc.
140
+ email: paul@thestrongfamily.org
141
+ executables: []
142
+
143
+ extensions: []
144
+
145
+ extra_rdoc_files: []
146
+
147
+ files:
148
+ - .gitignore
149
+ - Gemfile
150
+ - README.md
151
+ - Rakefile
152
+ - lib/simple_crowd.rb
153
+ - lib/simple_crowd/client.rb
154
+ - lib/simple_crowd/crowd_entity.rb
155
+ - lib/simple_crowd/crowd_error.rb
156
+ - lib/simple_crowd/group.rb
157
+ - lib/simple_crowd/mappers/soap_attributes.rb
158
+ - lib/simple_crowd/mock_client.rb
159
+ - lib/simple_crowd/user.rb
160
+ - lib/simple_crowd/version.rb
161
+ - simple_crowd.gemspec
162
+ - test/crowd_config.yml.example
163
+ - test/factories.rb
164
+ - test/helper.rb
165
+ - test/test_client.rb
166
+ - test/test_simple_crowd.rb
167
+ - test/test_user.rb
168
+ has_rdoc: true
169
+ homepage: http://github.com/lapluviosilla/simple_crowd
170
+ licenses: []
171
+
172
+ post_install_message:
173
+ rdoc_options: []
174
+
175
+ require_paths:
176
+ - lib
177
+ required_ruby_version: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ hash: 3
183
+ segments:
184
+ - 0
185
+ version: "0"
186
+ required_rubygems_version: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ hash: 3
192
+ segments:
193
+ - 0
194
+ version: "0"
195
+ requirements: []
196
+
197
+ rubyforge_project:
198
+ rubygems_version: 1.6.2
199
+ signing_key:
200
+ specification_version: 3
201
+ summary: Simple Atlassian Crowd client using REST and SOAP APIs where needed.
202
+ test_files:
203
+ - test/crowd_config.yml.example
204
+ - test/factories.rb
205
+ - test/helper.rb
206
+ - test/test_client.rb
207
+ - test/test_simple_crowd.rb
208
+ - test/test_user.rb