simple_crowd 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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