@@ -4,15 +4,16 @@ import code.api.util.APIUtil.OAuth._
44import code .api .util .ApiRole .{CanGetAnyUser , CanGetEntitlementsForAnyUserAtAnyBank , CanValidateUser }
55import code .api .util .ErrorMessages .{UserHasMissingRoles , AuthenticatedUserIsRequired , attemptedToOpenAnEmptyBox }
66import code .api .v3_0_0 .UserJsonV300
7- import code .api .v4_0_0 .UserJsonV400
87import code .api .v5_1_0 .OBPAPI5_1_0 .Implementations5_1_0
98import code .entitlement .Entitlement
109import code .model .UserX
10+ import code .model .dataAccess .AuthUser
1111import code .users .Users
1212import com .github .dwickern .macros .NameOf .nameOf
1313import com .openbankproject .commons .model .ErrorMessage
1414import com .openbankproject .commons .util .ApiVersion
1515import net .liftweb .json .Serialization .write
16+ import net .liftweb .util .Helpers .randomString
1617import org .scalatest .Tag
1718
1819import java .util .UUID
@@ -59,14 +60,37 @@ class UserTest extends V510ServerSetup {
5960 When (" We make a request v5.1.0" )
6061 val request400 = (v5_1_0_Request / " users" / " provider" / user.provider / " username" / user.name ).GET <@ (user1)
6162 val response400 = makeGetRequest(request400)
62- Then (" We get successful response" )
63+ Then (" We get successful response with first_name and last_name fields " )
6364 response400.code should equal(200 )
64- response400.body.extract[UserJsonV400 ]
65+ val json = response400.body.extract[UserWithNamesJsonV510 ]
66+ json.first_name should equal(" " )
67+ json.last_name should equal(" " )
6568 Users .users.vend.deleteResourceUser(user.id.get)
6669 }
6770 }
6871
69-
72+ feature(s " test $ApiEndpoint1 version $VersionOfApi - first_name and last_name populated from AuthUser " ) {
73+ scenario(" We will call the endpoint with an AuthUser that has first and last name set" , ApiEndpoint1 , VersionOfApi ) {
74+ Entitlement .entitlement.vend.addEntitlement(" " , resourceUser1.userId, CanGetAnyUser .toString)
75+ val username = " user.withnames." + UUID .randomUUID.toString.take(8 )
76+ val email = s " $username@example.com "
77+ val user = UserX .createResourceUser(defaultProvider, Some (username), None , Some (username), None , Some (UUID .randomUUID.toString), None ).openOrThrowException(attemptedToOpenAnEmptyBox)
78+ val authUser = AuthUser .create
79+ .email(email).username(username).password(randomString(12 ))
80+ .validated(true ).firstName(" Alice" ).lastName(" Smith" )
81+ .provider(defaultProvider).user(user.userPrimaryKey.value).saveMe()
82+ When (" We make a request v5.1.0" )
83+ val request = (v5_1_0_Request / " users" / " provider" / user.provider / " username" / user.name).GET <@ (user1)
84+ val response = makeGetRequest(request)
85+ Then (" We get first_name and last_name from AuthUser" )
86+ response.code should equal(200 )
87+ val json = response.body.extract[UserWithNamesJsonV510 ]
88+ json.first_name should equal(" Alice" )
89+ json.last_name should equal(" Smith" )
90+ authUser.delete_!
91+ Users .users.vend.deleteResourceUser(user.id.get)
92+ }
93+ }
7094
7195 feature(s " test $ApiEndpoint1 version $VersionOfApi - Authorized access with URL-encoded provider " ) {
7296 scenario(" We will call the endpoint with a provider containing special URL characters (colon, slash)" , ApiEndpoint1 , VersionOfApi ) {
@@ -81,7 +105,7 @@ class UserTest extends V510ServerSetup {
81105 val response = makeGetRequest(request)
82106 Then (" We get successful response - endpoint correctly URL-decodes the provider" )
83107 response.code should equal(200 )
84- response.body.extract[UserJsonV400 ]
108+ response.body.extract[UserWithNamesJsonV510 ]
85109 Users .users.vend.deleteResourceUser(user.id.get)
86110 }
87111 }
0 commit comments