Skip to content

Commit 23f8255

Browse files
Paul HarrisPaul Harris
authored andcommitted
Merge branch 'enable-tokens-tests'
2 parents 347d865 + 62326a0 commit 23f8255

File tree

3 files changed

+60
-14
lines changed

3 files changed

+60
-14
lines changed

cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/users/_Invite.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,14 @@ abstract class _Invite {
5252
* The invite link
5353
*/
5454
@JsonProperty("inviteLink")
55+
@Nullable
5556
abstract String getInviteLink();
5657

5758
/**
5859
* The origin
5960
*/
6061
@JsonProperty("origin")
62+
@Nullable
6163
abstract String getOrigin();
6264

6365
/**
@@ -70,6 +72,7 @@ abstract class _Invite {
7072
* The user id
7173
*/
7274
@JsonProperty("userId")
75+
@Nullable
7376
abstract String getUserId();
7477

7578
}

integration-test/src/test/java/org/cloudfoundry/IntegrationTestConfiguration.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ public class IntegrationTestConfiguration {
7676

7777
private static final List<String> GROUPS = Arrays.asList(
7878
"cloud_controller.admin",
79+
"scim.create",
80+
"scim.invite",
7981
"scim.read",
82+
"scim.userids",
8083
"scim.write",
8184
"zones.read",
8285
"zones.write");
@@ -85,7 +88,11 @@ public class IntegrationTestConfiguration {
8588
"cloud_controller.admin",
8689
"cloud_controller.read",
8790
"cloud_controller.write",
91+
"password.write",
92+
"scim.create",
93+
"scim.invite",
8894
"scim.read",
95+
"scim.userids",
8996
"scim.write",
9097
"uaa.user",
9198
"zones.read",

integration-test/src/test/java/org/cloudfoundry/uaa/UsersTest.java

Lines changed: 50 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,47 +18,61 @@
1818

1919
import org.cloudfoundry.AbstractIntegrationTest;
2020
import org.cloudfoundry.uaa.users.ChangeUserPasswordRequest;
21+
import org.cloudfoundry.uaa.users.ChangeUserPasswordResponse;
2122
import org.cloudfoundry.uaa.users.CreateUserRequest;
2223
import org.cloudfoundry.uaa.users.CreateUserResponse;
2324
import org.cloudfoundry.uaa.users.DeleteUserRequest;
2425
import org.cloudfoundry.uaa.users.DeleteUserResponse;
2526
import org.cloudfoundry.uaa.users.Email;
2627
import org.cloudfoundry.uaa.users.GetUserVerificationLinkRequest;
28+
import org.cloudfoundry.uaa.users.GetUserVerificationLinkResponse;
29+
import org.cloudfoundry.uaa.users.Invite;
2730
import org.cloudfoundry.uaa.users.InviteUsersRequest;
31+
import org.cloudfoundry.uaa.users.InviteUsersResponse;
2832
import org.cloudfoundry.uaa.users.ListUsersRequest;
2933
import org.cloudfoundry.uaa.users.ListUsersResponse;
3034
import org.cloudfoundry.uaa.users.LookupUserIdsRequest;
35+
import org.cloudfoundry.uaa.users.LookupUserIdsResponse;
3136
import org.cloudfoundry.uaa.users.Name;
3237
import org.cloudfoundry.uaa.users.UpdateUserRequest;
3338
import org.cloudfoundry.uaa.users.User;
39+
import org.cloudfoundry.uaa.users.UserId;
3440
import org.cloudfoundry.uaa.users.VerifyUserRequest;
3541
import org.cloudfoundry.uaa.users.VerifyUserResponse;
36-
import org.junit.Ignore;
3742
import org.junit.Test;
3843
import org.springframework.beans.factory.annotation.Autowired;
3944
import reactor.core.publisher.Flux;
4045
import reactor.core.publisher.Mono;
4146

4247
import static org.junit.Assert.assertEquals;
48+
import static org.junit.Assert.assertTrue;
4349

4450
public final class UsersTest extends AbstractIntegrationTest {
4551

52+
@Autowired
53+
private String password;
54+
4655
@Autowired
4756
private UaaClient uaaClient;
4857

49-
@Ignore("TODO: finish story https://www.pivotaltracker.com/projects/816799/stories/122457091 to grant password.write scope")
58+
@Autowired
59+
private String username;
60+
5061
@Test
5162
public void changePassword() {
52-
String userName = getUserName();
5363

54-
createUserId(this.uaaClient, userName)
64+
getUserIdByUsername(this.uaaClient, this.username)
5565
.then(userId -> this.uaaClient.users()
5666
.changePassword(ChangeUserPasswordRequest.builder()
57-
.oldPassword("test-password")
67+
.oldPassword(this.password)
5868
.password("test-new-password")
5969
.userId(userId)
6070
.build()))
61-
.subscribe(this.testSubscriber());
71+
.subscribe(this.<ChangeUserPasswordResponse>testSubscriber()
72+
.assertThat(response -> {
73+
assertEquals("password updated", response.getMessage());
74+
assertEquals("ok", response.getStatus());
75+
}));
6276
}
6377

6478
@Test
@@ -102,7 +116,6 @@ public void delete() {
102116
.assertEquals(0));
103117
}
104118

105-
@Ignore("TODO: finish story https://www.pivotaltracker.com/projects/816799/stories/122457091 to grant scim.create, zones.uaa.admin scopes")
106119
@Test
107120
public void getVerificationLink() {
108121
String userName = getUserName();
@@ -113,18 +126,25 @@ public void getVerificationLink() {
113126
.redirectUri("test-redirect-uri")
114127
.userId(userId)
115128
.build()))
116-
.subscribe(this.testSubscriber());
129+
.map(GetUserVerificationLinkResponse::getVerifyLink)
130+
.subscribe(this.<String>testSubscriber()
131+
.assertThat(location -> assertTrue(location.contains("/verify_user?code="))));
117132
}
118133

119-
@Ignore("TODO: finish story https://www.pivotaltracker.com/projects/816799/stories/122457091 to grant scim.invite scope")
120134
@Test
121135
public void invite() {
122136
this.uaaClient.users()
123137
.invite(InviteUsersRequest.builder()
124138
.email("test-email-address")
125139
.redirectUri("test-redirect-uri")
126140
.build())
127-
.subscribe(this.testSubscriber());
141+
.flatMapIterable(InviteUsersResponse::getFailedInvites)
142+
.single()
143+
.subscribe(this.<Invite>testSubscriber()
144+
.assertThat(invite -> {
145+
assertEquals("test-email-address", invite.getEmail());
146+
assertEquals("provider.ambiguous", invite.getErrorCode());
147+
}));
128148
}
129149

130150
@Test
@@ -136,14 +156,12 @@ public void list() {
136156
.list(ListUsersRequest.builder()
137157
.filter(String.format("id eq \"%s\"", userId))
138158
.build()))
139-
.map(ListUsersResponse::getResources)
140-
.flatMap(Flux::fromIterable)
159+
.flatMapIterable(ListUsersResponse::getResources)
141160
.map(User::getUserName)
142161
.subscribe(this.testSubscriber()
143162
.assertEquals(userName));
144163
}
145164

146-
@Ignore("TODO: finish story https://www.pivotaltracker.com/projects/816799/stories/122457091 to grant scim.userids scope")
147165
@Test
148166
public void lookup() {
149167
String userName = getUserName();
@@ -153,7 +171,10 @@ public void lookup() {
153171
.lookup(LookupUserIdsRequest.builder()
154172
.filter(String.format("id eq \"%s\"", userId))
155173
.build()))
156-
.subscribe(this.testSubscriber());
174+
.flatMapIterable(LookupUserIdsResponse::getResources)
175+
.map(UserId::getUserName)
176+
.subscribe(this.testSubscriber()
177+
.assertEquals(userName));
157178
}
158179

159180
@Test
@@ -200,6 +221,13 @@ private static Mono<String> createUserId(UaaClient uaaClient, String userName) {
200221
.map(CreateUserResponse::getId);
201222
}
202223

224+
private static Mono<String> getUserIdByUsername(UaaClient uaaClient, String username) {
225+
return requestLookupByUsername(uaaClient, username)
226+
.flatMapIterable(LookupUserIdsResponse::getResources)
227+
.map(UserId::getId)
228+
.single();
229+
}
230+
203231
private static Mono<CreateUserResponse> requestCreateUser(UaaClient uaaClient, String userName) {
204232
return uaaClient.users()
205233
.create(CreateUserRequest.builder()
@@ -212,6 +240,7 @@ private static Mono<CreateUserResponse> requestCreateUser(UaaClient uaaClient, S
212240
.givenName("test-given-name")
213241
.build())
214242
.password("test-password")
243+
.verified(false)
215244
.userName(userName)
216245
.build());
217246
}
@@ -223,4 +252,11 @@ private static Mono<ListUsersResponse> requestListUsers(UaaClient uaaClient, Str
223252
.build());
224253
}
225254

255+
private static Mono<LookupUserIdsResponse> requestLookupByUsername(UaaClient uaaClient, String username) {
256+
return uaaClient.users()
257+
.lookup(LookupUserIdsRequest.builder()
258+
.filter(String.format("userName eq \"%s\"", username))
259+
.build());
260+
}
261+
226262
}

0 commit comments

Comments
 (0)