crowd-client 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/crowd-client.gemspec +3 -1
- data/lib/crowd-client.rb +2 -2
- data/lib/crowd-client/exceptions.rb +2 -1
- data/lib/crowd-client/group.rb +42 -0
- data/lib/crowd-client/user.rb +121 -0
- data/lib/crowd-client/version.rb +1 -1
- data/spec/cassettes/Crowd_Client/_in_group_/should_confirm_users_are_in_groups.yml +69 -0
- data/spec/cassettes/Crowd_Client/_login/should_authenticate_and_return_a_session_token.yml +42 -0
- data/spec/cassettes/Crowd_Client/_login/should_raise_Crowd_Client_Exception_AuthenticationFailed_if_authentication_fails.yml +40 -0
- data/spec/cassettes/Crowd_Client/_login/should_raise_Crowd_Client_Exception_InactiveAccount_if_an_account_is_inactive.yml +40 -0
- data/spec/cassettes/Crowd_Client/_logout/should_logout_the_current_session.yml +143 -0
- data/spec/cassettes/Crowd_Client/_user_groups_username_/should_return_the_groups_of_the_user.yml +36 -0
- data/spec/cassettes/Crowd_Client/_user_token_/should_return_the_expanded_user.yml +75 -0
- data/spec/cassettes/Crowd_Client/_valid_session_/should_validate_the_current_session.yml +79 -0
- data/spec/cassettes/Crowd_Client_Group/_add_user/missing_group/should_raise_Exception_NotFound_for_missing_group.yml +104 -0
- data/spec/cassettes/Crowd_Client_Group/_add_user/should_add_the_user.yml +139 -0
- data/spec/cassettes/Crowd_Client_Group/_add_user/should_raise_Exception_NotFound_for_missing_user.yml +106 -0
- data/spec/cassettes/Crowd_Client_Group/_remove_user/should_remove_the_user.yml +168 -0
- data/spec/cassettes/Crowd_Client_Group/_users/should_return_all_of_the_users_in_the_group.yml +36 -0
- data/spec/cassettes/Crowd_Client_User/Creating_a_user/should_create_a_user_with_attributes.yml +102 -0
- data/spec/cassettes/Crowd_Client_User/Get_groups_for_user/should_be_in_the_group.yml +36 -0
- data/spec/cassettes/Crowd_Client_User/Update_user/should_update_user_properties.yml +133 -0
- data/spec/cassettes/Crowd_Client_User/_destroy/should_delete_the_user.yml +102 -0
- data/spec/cassettes/Crowd_Client_User/authenticate/should_return_false_if_the_password_is_invalid.yml +40 -0
- data/spec/cassettes/Crowd_Client_User/authenticate/should_return_true_if_the_password_is_valid.yml +38 -0
- data/spec/cassettes/Crowd_Client_User/change_password/should_allow_the_user_to_set_a_new_password.yml +135 -0
- data/spec/cassettes/Crowd_Client_User/display_name/.yml +36 -0
- data/spec/cassettes/Crowd_Client_User/email/.yml +36 -0
- data/spec/crowd-client_group_spec.rb +50 -0
- data/spec/crowd-client_spec.rb +0 -3
- data/spec/crowd-client_user_spec.rb +75 -0
- data/spec/spec_helper.rb +16 -2
- metadata +89 -19
- data/spec/cassettes/Crowd_Client.yml +0 -358
@@ -0,0 +1,102 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user
|
6
|
+
body: "{\"name\":\"delete@example.com\",\"active\":true,\"password\":{\"value\":\"test\"},\"first-name\":\"Delete\",\"last-name\":\"Me\",\"email\":\"delete@example.com\"}"
|
7
|
+
headers:
|
8
|
+
Accept:
|
9
|
+
- application/json
|
10
|
+
Authorization:
|
11
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Expect:
|
15
|
+
- ""
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 201
|
19
|
+
message: Created
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- Apache-Coyote/1.1
|
23
|
+
X-Embedded-Crowd-Version:
|
24
|
+
- Crowd/2.3.3
|
25
|
+
X-Crowd-User-Management-Version:
|
26
|
+
- "1.1"
|
27
|
+
Set-Cookie:
|
28
|
+
- JSESSIONID=328AE8A0D1E0CE16731D061CA7F180B5; Path=/crowd
|
29
|
+
Location:
|
30
|
+
- http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=delete@example.com
|
31
|
+
Content-Type:
|
32
|
+
- application/json
|
33
|
+
Content-Length:
|
34
|
+
- "0"
|
35
|
+
Date:
|
36
|
+
- Wed, 21 Dec 2011 20:57:02 GMT
|
37
|
+
body: ""
|
38
|
+
http_version:
|
39
|
+
recorded_at: Wed, 21 Dec 2011 20:57:02 GMT
|
40
|
+
- request:
|
41
|
+
method: delete
|
42
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=delete@example.com
|
43
|
+
body: ""
|
44
|
+
headers:
|
45
|
+
Accept:
|
46
|
+
- application/json
|
47
|
+
Authorization:
|
48
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
49
|
+
Expect:
|
50
|
+
- ""
|
51
|
+
response:
|
52
|
+
status:
|
53
|
+
code: 204
|
54
|
+
message: No Content
|
55
|
+
headers:
|
56
|
+
Server:
|
57
|
+
- Apache-Coyote/1.1
|
58
|
+
X-Embedded-Crowd-Version:
|
59
|
+
- Crowd/2.3.3
|
60
|
+
X-Crowd-User-Management-Version:
|
61
|
+
- "1.1"
|
62
|
+
Set-Cookie:
|
63
|
+
- JSESSIONID=10A425BACE7AA24F07440D0F517417CF; Path=/crowd
|
64
|
+
Date:
|
65
|
+
- Wed, 21 Dec 2011 20:57:02 GMT
|
66
|
+
body: ""
|
67
|
+
http_version:
|
68
|
+
recorded_at: Wed, 21 Dec 2011 20:57:03 GMT
|
69
|
+
- request:
|
70
|
+
method: get
|
71
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=delete@example.com
|
72
|
+
body: ""
|
73
|
+
headers:
|
74
|
+
Accept:
|
75
|
+
- application/json
|
76
|
+
Authorization:
|
77
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
78
|
+
Expect:
|
79
|
+
- ""
|
80
|
+
response:
|
81
|
+
status:
|
82
|
+
code: 404
|
83
|
+
message: Not Found
|
84
|
+
headers:
|
85
|
+
Server:
|
86
|
+
- Apache-Coyote/1.1
|
87
|
+
X-Embedded-Crowd-Version:
|
88
|
+
- Crowd/2.3.3
|
89
|
+
X-Crowd-User-Management-Version:
|
90
|
+
- "1.1"
|
91
|
+
Set-Cookie:
|
92
|
+
- JSESSIONID=A6CCCD1B41478BAD6C7BFC70508AB540; Path=/crowd
|
93
|
+
Content-Type:
|
94
|
+
- application/json
|
95
|
+
Transfer-Encoding:
|
96
|
+
- chunked
|
97
|
+
Date:
|
98
|
+
- Wed, 21 Dec 2011 20:57:02 GMT
|
99
|
+
body: "{\"reason\":\"USER_NOT_FOUND\",\"message\":\"User <delete@example.com> does not exist\"}"
|
100
|
+
http_version:
|
101
|
+
recorded_at: Wed, 21 Dec 2011 20:57:03 GMT
|
102
|
+
recorded_with: VCR 2.0.0.rc1
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/authentication?username=user@example.com
|
6
|
+
body: "{\"value\":\"invalid\"}"
|
7
|
+
headers:
|
8
|
+
Accept:
|
9
|
+
- application/json
|
10
|
+
Authorization:
|
11
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Expect:
|
15
|
+
- ""
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 400
|
19
|
+
message: Bad Request
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- Apache-Coyote/1.1
|
23
|
+
X-Embedded-Crowd-Version:
|
24
|
+
- Crowd/2.3.3
|
25
|
+
X-Crowd-User-Management-Version:
|
26
|
+
- "1.1"
|
27
|
+
Set-Cookie:
|
28
|
+
- JSESSIONID=59F82423DD849682B73BE15CB83D18F8; Path=/crowd
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Date:
|
34
|
+
- Wed, 21 Dec 2011 20:57:01 GMT
|
35
|
+
Connection:
|
36
|
+
- close
|
37
|
+
body: "{\"reason\":\"INVALID_USER_AUTHENTICATION\",\"message\":\"Failed to authenticate principal, password was invalid\"}"
|
38
|
+
http_version:
|
39
|
+
recorded_at: Wed, 21 Dec 2011 20:57:02 GMT
|
40
|
+
recorded_with: VCR 2.0.0.rc1
|
data/spec/cassettes/Crowd_Client_User/authenticate/should_return_true_if_the_password_is_valid.yml
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/authentication?username=user@example.com
|
6
|
+
body: "{\"value\":\"password\"}"
|
7
|
+
headers:
|
8
|
+
Accept:
|
9
|
+
- application/json
|
10
|
+
Authorization:
|
11
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Expect:
|
15
|
+
- ""
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- Apache-Coyote/1.1
|
23
|
+
X-Embedded-Crowd-Version:
|
24
|
+
- Crowd/2.3.3
|
25
|
+
X-Crowd-User-Management-Version:
|
26
|
+
- "1.1"
|
27
|
+
Set-Cookie:
|
28
|
+
- JSESSIONID=AB2B51DB124F9C964BA6C8F34C33C1FA; Path=/crowd
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Date:
|
34
|
+
- Wed, 21 Dec 2011 20:57:01 GMT
|
35
|
+
body: "{\"expand\":\"attributes\",\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=user@example.com\",\"rel\":\"self\"},\"name\":\"user@example.com\",\"first-name\":\"Example\",\"last-name\":\"User\",\"display-name\":\"Example User\",\"email\":\"user@example.com\",\"password\":{\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/password?username=user@example.com\",\"rel\":\"edit\"}},\"active\":true,\"attributes\":{\"attributes\":[],\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/attribute?username=user@example.com\",\"rel\":\"self\"}}}"
|
36
|
+
http_version:
|
37
|
+
recorded_at: Wed, 21 Dec 2011 20:57:02 GMT
|
38
|
+
recorded_with: VCR 2.0.0.rc1
|
@@ -0,0 +1,135 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user
|
6
|
+
body: "{\"name\":\"change_pass@example.com\",\"active\":true,\"password\":{\"value\":\"test\"},\"first-name\":\"Change\",\"last-name\":\"Me\",\"email\":\"change_pass@example.com\"}"
|
7
|
+
headers:
|
8
|
+
Accept:
|
9
|
+
- application/json
|
10
|
+
Authorization:
|
11
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Expect:
|
15
|
+
- ""
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 201
|
19
|
+
message: Created
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- Apache-Coyote/1.1
|
23
|
+
X-Embedded-Crowd-Version:
|
24
|
+
- Crowd/2.3.3
|
25
|
+
X-Crowd-User-Management-Version:
|
26
|
+
- "1.1"
|
27
|
+
Set-Cookie:
|
28
|
+
- JSESSIONID=AF173F6A2C59B6E40750190C8F96F8BE; Path=/crowd
|
29
|
+
Location:
|
30
|
+
- http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=change_pass@example.com
|
31
|
+
Content-Type:
|
32
|
+
- application/json
|
33
|
+
Content-Length:
|
34
|
+
- "0"
|
35
|
+
Date:
|
36
|
+
- Wed, 21 Dec 2011 20:57:02 GMT
|
37
|
+
body: ""
|
38
|
+
http_version:
|
39
|
+
recorded_at: Wed, 21 Dec 2011 20:57:02 GMT
|
40
|
+
- request:
|
41
|
+
method: put
|
42
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/password?username=change_pass@example.com
|
43
|
+
body: "{\"value\":\"new_password\"}"
|
44
|
+
headers:
|
45
|
+
Accept:
|
46
|
+
- application/json
|
47
|
+
Authorization:
|
48
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
49
|
+
Content-Type:
|
50
|
+
- application/json
|
51
|
+
Expect:
|
52
|
+
- ""
|
53
|
+
response:
|
54
|
+
status:
|
55
|
+
code: 204
|
56
|
+
message: No Content
|
57
|
+
headers:
|
58
|
+
Server:
|
59
|
+
- Apache-Coyote/1.1
|
60
|
+
X-Embedded-Crowd-Version:
|
61
|
+
- Crowd/2.3.3
|
62
|
+
X-Crowd-User-Management-Version:
|
63
|
+
- "1.1"
|
64
|
+
Set-Cookie:
|
65
|
+
- JSESSIONID=35FD5E2251EC6531573BE602B9831D9B; Path=/crowd
|
66
|
+
Date:
|
67
|
+
- Wed, 21 Dec 2011 20:57:02 GMT
|
68
|
+
body: ""
|
69
|
+
http_version:
|
70
|
+
recorded_at: Wed, 21 Dec 2011 20:57:02 GMT
|
71
|
+
- request:
|
72
|
+
method: post
|
73
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/authentication?username=change_pass@example.com
|
74
|
+
body: "{\"value\":\"new_password\"}"
|
75
|
+
headers:
|
76
|
+
Accept:
|
77
|
+
- application/json
|
78
|
+
Authorization:
|
79
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
80
|
+
Content-Type:
|
81
|
+
- application/json
|
82
|
+
Expect:
|
83
|
+
- ""
|
84
|
+
response:
|
85
|
+
status:
|
86
|
+
code: 200
|
87
|
+
message: OK
|
88
|
+
headers:
|
89
|
+
Server:
|
90
|
+
- Apache-Coyote/1.1
|
91
|
+
X-Embedded-Crowd-Version:
|
92
|
+
- Crowd/2.3.3
|
93
|
+
X-Crowd-User-Management-Version:
|
94
|
+
- "1.1"
|
95
|
+
Set-Cookie:
|
96
|
+
- JSESSIONID=AAC72A5B38C42E4963B4E47A4AF35058; Path=/crowd
|
97
|
+
Content-Type:
|
98
|
+
- application/json
|
99
|
+
Transfer-Encoding:
|
100
|
+
- chunked
|
101
|
+
Date:
|
102
|
+
- Wed, 21 Dec 2011 20:57:02 GMT
|
103
|
+
body: "{\"expand\":\"attributes\",\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=change_pass@example.com\",\"rel\":\"self\"},\"name\":\"change_pass@example.com\",\"first-name\":\"Change\",\"last-name\":\"Me\",\"display-name\":\"Change Me\",\"email\":\"change_pass@example.com\",\"password\":{\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/password?username=change_pass@example.com\",\"rel\":\"edit\"}},\"active\":true,\"attributes\":{\"attributes\":[],\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/attribute?username=change_pass@example.com\",\"rel\":\"self\"}}}"
|
104
|
+
http_version:
|
105
|
+
recorded_at: Wed, 21 Dec 2011 20:57:02 GMT
|
106
|
+
- request:
|
107
|
+
method: delete
|
108
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=change_pass@example.com
|
109
|
+
body: ""
|
110
|
+
headers:
|
111
|
+
Accept:
|
112
|
+
- application/json
|
113
|
+
Authorization:
|
114
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
115
|
+
Expect:
|
116
|
+
- ""
|
117
|
+
response:
|
118
|
+
status:
|
119
|
+
code: 204
|
120
|
+
message: No Content
|
121
|
+
headers:
|
122
|
+
Server:
|
123
|
+
- Apache-Coyote/1.1
|
124
|
+
X-Embedded-Crowd-Version:
|
125
|
+
- Crowd/2.3.3
|
126
|
+
X-Crowd-User-Management-Version:
|
127
|
+
- "1.1"
|
128
|
+
Set-Cookie:
|
129
|
+
- JSESSIONID=2FD51EA55B2BA964EBC6BD56EFE3DFF9; Path=/crowd
|
130
|
+
Date:
|
131
|
+
- Wed, 21 Dec 2011 20:57:02 GMT
|
132
|
+
body: ""
|
133
|
+
http_version:
|
134
|
+
recorded_at: Wed, 21 Dec 2011 20:57:02 GMT
|
135
|
+
recorded_with: VCR 2.0.0.rc1
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=user@example.com
|
6
|
+
body: ""
|
7
|
+
headers:
|
8
|
+
Accept:
|
9
|
+
- application/json
|
10
|
+
Authorization:
|
11
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
12
|
+
Expect:
|
13
|
+
- ""
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Server:
|
20
|
+
- Apache-Coyote/1.1
|
21
|
+
X-Embedded-Crowd-Version:
|
22
|
+
- Crowd/2.3.3
|
23
|
+
X-Crowd-User-Management-Version:
|
24
|
+
- "1.1"
|
25
|
+
Set-Cookie:
|
26
|
+
- JSESSIONID=E100FB66EB0D519EF1C026C06A456369; Path=/crowd
|
27
|
+
Content-Type:
|
28
|
+
- application/json
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Date:
|
32
|
+
- Wed, 21 Dec 2011 20:57:01 GMT
|
33
|
+
body: "{\"expand\":\"attributes\",\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=user@example.com\",\"rel\":\"self\"},\"name\":\"user@example.com\",\"first-name\":\"Example\",\"last-name\":\"User\",\"display-name\":\"Example User\",\"email\":\"user@example.com\",\"password\":{\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/password?username=user@example.com\",\"rel\":\"edit\"}},\"active\":true,\"attributes\":{\"attributes\":[],\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/attribute?username=user@example.com\",\"rel\":\"self\"}}}"
|
34
|
+
http_version:
|
35
|
+
recorded_at: Wed, 21 Dec 2011 20:57:01 GMT
|
36
|
+
recorded_with: VCR 2.0.0.rc1
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=user@example.com
|
6
|
+
body: ""
|
7
|
+
headers:
|
8
|
+
Accept:
|
9
|
+
- application/json
|
10
|
+
Authorization:
|
11
|
+
- Basic YXBwbGljYXRpb246cGFzc3dvcmQ=
|
12
|
+
Expect:
|
13
|
+
- ""
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Server:
|
20
|
+
- Apache-Coyote/1.1
|
21
|
+
X-Embedded-Crowd-Version:
|
22
|
+
- Crowd/2.3.3
|
23
|
+
X-Crowd-User-Management-Version:
|
24
|
+
- "1.1"
|
25
|
+
Set-Cookie:
|
26
|
+
- JSESSIONID=2148E801B32AE4684E8BFB8C8533CB90; Path=/crowd
|
27
|
+
Content-Type:
|
28
|
+
- application/json
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Date:
|
32
|
+
- Wed, 21 Dec 2011 20:57:01 GMT
|
33
|
+
body: "{\"expand\":\"attributes\",\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user?username=user@example.com\",\"rel\":\"self\"},\"name\":\"user@example.com\",\"first-name\":\"Example\",\"last-name\":\"User\",\"display-name\":\"Example User\",\"email\":\"user@example.com\",\"password\":{\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/password?username=user@example.com\",\"rel\":\"edit\"}},\"active\":true,\"attributes\":{\"attributes\":[],\"link\":{\"href\":\"http://127.0.0.1:8095/crowd/rest/usermanagement/1/user/attribute?username=user@example.com\",\"rel\":\"self\"}}}"
|
34
|
+
http_version:
|
35
|
+
recorded_at: Wed, 21 Dec 2011 20:57:01 GMT
|
36
|
+
recorded_with: VCR 2.0.0.rc1
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/crowd-client/group')
|
3
|
+
|
4
|
+
describe Crowd::Client::Group do
|
5
|
+
|
6
|
+
subject { Crowd::Client::Group.new('MyGroup') }
|
7
|
+
|
8
|
+
describe "#add_user" do
|
9
|
+
before { @user = Crowd::Client::User.create :username => 'group_add@example.com', :password => 'test', :first_name => 'Group', :last_name => 'Add', :email => 'group_add@example.com' }
|
10
|
+
after { @user.destroy }
|
11
|
+
|
12
|
+
it "should add the user" do
|
13
|
+
subject.add_user(@user)
|
14
|
+
subject.users.should include(@user)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should raise Exception::NotFound for missing user" do
|
18
|
+
fake_user = Crowd::Client::User.new('fake')
|
19
|
+
expect { subject.add_user(fake_user) }.should raise_error Crowd::Client::Exception::NotFound, /User/
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "missing group" do
|
23
|
+
subject { Crowd::Client::Group.new('FakeGroup') }
|
24
|
+
|
25
|
+
it "should raise Exception::NotFound for missing group" do
|
26
|
+
user = Crowd::Client::User.new('user@example.com')
|
27
|
+
expect { subject.add_user(user) }.should raise_error Crowd::Client::Exception::NotFound, /Group/
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#remove_user" do
|
33
|
+
before { @user = Crowd::Client::User.create :username => 'group_removal@example.com', :password => 'test', :first_name => 'Group', :last_name => 'Removal', :email => 'group_removal@example.com' }
|
34
|
+
after { @user.destroy }
|
35
|
+
|
36
|
+
it "should remove the user" do
|
37
|
+
subject.add_user(@user)
|
38
|
+
subject.remove_user(@user)
|
39
|
+
subject.users.should_not include(@user)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#users" do
|
44
|
+
it "should return all of the users in the group" do
|
45
|
+
users = subject.users
|
46
|
+
users.size.should == 1
|
47
|
+
users.first.username.should == 'user@example.com'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/spec/crowd-client_spec.rb
CHANGED
@@ -3,8 +3,6 @@ require File.expand_path(File.dirname(__FILE__) + '/../lib/crowd-client')
|
|
3
3
|
|
4
4
|
describe Crowd::Client do
|
5
5
|
|
6
|
-
use_vcr_cassette
|
7
|
-
|
8
6
|
describe "#config" do
|
9
7
|
subject { Crowd::Client.config }
|
10
8
|
|
@@ -64,7 +62,6 @@ describe Crowd::Client do
|
|
64
62
|
end
|
65
63
|
|
66
64
|
describe "#logout" do
|
67
|
-
|
68
65
|
it "should logout the current session" do
|
69
66
|
token = subject.login('user@example.com', 'password')
|
70
67
|
subject.valid_session?(token).should be_true
|