mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 11:47:18 +00:00
Fix Verify User Credential tests
This commit is contained in:
parent
90dcd76d5f
commit
5489dccc2c
@ -13,8 +13,8 @@ import code.setup.DefaultUsers
|
|||||||
import com.github.dwickern.macros.NameOf.nameOf
|
import com.github.dwickern.macros.NameOf.nameOf
|
||||||
import com.openbankproject.commons.model.ErrorMessage
|
import com.openbankproject.commons.model.ErrorMessage
|
||||||
import com.openbankproject.commons.util.ApiVersion
|
import com.openbankproject.commons.util.ApiVersion
|
||||||
|
import net.liftweb.common.Full
|
||||||
import net.liftweb.json.Serialization.write
|
import net.liftweb.json.Serialization.write
|
||||||
import net.liftweb.mapper.By
|
|
||||||
import net.liftweb.util.Helpers.randomString
|
import net.liftweb.util.Helpers.randomString
|
||||||
import org.scalatest.Tag
|
import org.scalatest.Tag
|
||||||
|
|
||||||
@ -27,8 +27,8 @@ import org.scalatest.Tag
|
|||||||
* - Successful credential verification
|
* - Successful credential verification
|
||||||
* - Invalid password (should fail with 401)
|
* - Invalid password (should fail with 401)
|
||||||
* - Invalid username (should fail with 401)
|
* - Invalid username (should fail with 401)
|
||||||
* - Account locked after too many failed attempts
|
|
||||||
* - Provider mismatch
|
* - Provider mismatch
|
||||||
|
* - Invalid JSON format
|
||||||
*/
|
*/
|
||||||
class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
||||||
|
|
||||||
@ -100,8 +100,8 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scenario("Successfully verify valid credentials", ApiEndpoint, VersionOfApi) {
|
scenario("Successfully verify valid credentials", ApiEndpoint, VersionOfApi) {
|
||||||
Given("User has the required entitlement")
|
// Add the required entitlement
|
||||||
Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanVerifyUserCredentials.toString)
|
val addedEntitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanVerifyUserCredentials.toString)
|
||||||
|
|
||||||
When("We verify valid credentials")
|
When("We verify valid credentials")
|
||||||
val postJson = Map(
|
val postJson = Map(
|
||||||
@ -110,7 +110,12 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
"provider" -> Constant.localIdentityProvider
|
"provider" -> Constant.localIdentityProvider
|
||||||
)
|
)
|
||||||
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
||||||
val response = makePostRequest(request, write(postJson))
|
val response = try {
|
||||||
|
makePostRequest(request, write(postJson))
|
||||||
|
} finally {
|
||||||
|
// Clean up entitlement
|
||||||
|
Entitlement.entitlement.vend.deleteEntitlement(addedEntitlement)
|
||||||
|
}
|
||||||
|
|
||||||
Then("We should get a 200")
|
Then("We should get a 200")
|
||||||
response.code should equal(200)
|
response.code should equal(200)
|
||||||
@ -124,8 +129,8 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scenario("Fail to verify with wrong password", ApiEndpoint, VersionOfApi) {
|
scenario("Fail to verify with wrong password", ApiEndpoint, VersionOfApi) {
|
||||||
Given("User has the required entitlement")
|
// Add the required entitlement
|
||||||
// Entitlement already added in previous scenario
|
val addedEntitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanVerifyUserCredentials.toString)
|
||||||
|
|
||||||
When("We verify credentials with wrong password")
|
When("We verify credentials with wrong password")
|
||||||
val postJson = Map(
|
val postJson = Map(
|
||||||
@ -134,20 +139,24 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
"provider" -> Constant.localIdentityProvider
|
"provider" -> Constant.localIdentityProvider
|
||||||
)
|
)
|
||||||
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
||||||
val response = makePostRequest(request, write(postJson))
|
val response = try {
|
||||||
|
makePostRequest(request, write(postJson))
|
||||||
|
} finally {
|
||||||
|
// Reset bad login attempts for this user
|
||||||
|
LoginAttempt.resetBadLoginAttempts(Constant.localIdentityProvider, testUsername)
|
||||||
|
// Clean up entitlement
|
||||||
|
Entitlement.entitlement.vend.deleteEntitlement(addedEntitlement)
|
||||||
|
}
|
||||||
|
|
||||||
Then("We should get a 401")
|
Then("We should get a 401")
|
||||||
response.code should equal(401)
|
response.code should equal(401)
|
||||||
And("The error message should indicate invalid credentials")
|
And("The error message should indicate invalid credentials")
|
||||||
response.body.extract[ErrorMessage].message should include("OBP-20004")
|
response.body.extract[ErrorMessage].message should include("OBP-20004")
|
||||||
|
|
||||||
// Reset bad login attempts for this user
|
|
||||||
LoginAttempt.resetBadLoginAttempts(Constant.localIdentityProvider, testUsername)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scenario("Fail to verify with non-existent username", ApiEndpoint, VersionOfApi) {
|
scenario("Fail to verify with non-existent username", ApiEndpoint, VersionOfApi) {
|
||||||
Given("User has the required entitlement")
|
// Add the required entitlement
|
||||||
// Entitlement already added
|
val addedEntitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanVerifyUserCredentials.toString)
|
||||||
|
|
||||||
When("We verify credentials with non-existent username")
|
When("We verify credentials with non-existent username")
|
||||||
val postJson = Map(
|
val postJson = Map(
|
||||||
@ -156,7 +165,12 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
"provider" -> Constant.localIdentityProvider
|
"provider" -> Constant.localIdentityProvider
|
||||||
)
|
)
|
||||||
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
||||||
val response = makePostRequest(request, write(postJson))
|
val response = try {
|
||||||
|
makePostRequest(request, write(postJson))
|
||||||
|
} finally {
|
||||||
|
// Clean up entitlement
|
||||||
|
Entitlement.entitlement.vend.deleteEntitlement(addedEntitlement)
|
||||||
|
}
|
||||||
|
|
||||||
Then("We should get a 401")
|
Then("We should get a 401")
|
||||||
response.code should equal(401)
|
response.code should equal(401)
|
||||||
@ -164,9 +178,9 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
response.body.extract[ErrorMessage].message should include("OBP-20004")
|
response.body.extract[ErrorMessage].message should include("OBP-20004")
|
||||||
}
|
}
|
||||||
|
|
||||||
scenario("Fail to verify with empty provider (should still work - provider check is optional)", ApiEndpoint, VersionOfApi) {
|
scenario("Successfully verify with empty provider (provider check is optional)", ApiEndpoint, VersionOfApi) {
|
||||||
Given("User has the required entitlement")
|
// Add the required entitlement
|
||||||
// Entitlement already added
|
val addedEntitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanVerifyUserCredentials.toString)
|
||||||
|
|
||||||
When("We verify valid credentials with empty provider")
|
When("We verify valid credentials with empty provider")
|
||||||
val postJson = Map(
|
val postJson = Map(
|
||||||
@ -175,7 +189,12 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
"provider" -> ""
|
"provider" -> ""
|
||||||
)
|
)
|
||||||
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
||||||
val response = makePostRequest(request, write(postJson))
|
val response = try {
|
||||||
|
makePostRequest(request, write(postJson))
|
||||||
|
} finally {
|
||||||
|
// Clean up entitlement
|
||||||
|
Entitlement.entitlement.vend.deleteEntitlement(addedEntitlement)
|
||||||
|
}
|
||||||
|
|
||||||
Then("We should get a 200 (provider check is skipped when empty)")
|
Then("We should get a 200 (provider check is skipped when empty)")
|
||||||
response.code should equal(200)
|
response.code should equal(200)
|
||||||
@ -185,8 +204,8 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scenario("Fail to verify with mismatched provider", ApiEndpoint, VersionOfApi) {
|
scenario("Fail to verify with mismatched provider", ApiEndpoint, VersionOfApi) {
|
||||||
Given("User has the required entitlement")
|
// Add the required entitlement
|
||||||
// Entitlement already added
|
val addedEntitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanVerifyUserCredentials.toString)
|
||||||
|
|
||||||
When("We verify credentials with wrong provider")
|
When("We verify credentials with wrong provider")
|
||||||
val postJson = Map(
|
val postJson = Map(
|
||||||
@ -195,7 +214,12 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
"provider" -> "some_other_provider"
|
"provider" -> "some_other_provider"
|
||||||
)
|
)
|
||||||
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
||||||
val response = makePostRequest(request, write(postJson))
|
val response = try {
|
||||||
|
makePostRequest(request, write(postJson))
|
||||||
|
} finally {
|
||||||
|
// Clean up entitlement
|
||||||
|
Entitlement.entitlement.vend.deleteEntitlement(addedEntitlement)
|
||||||
|
}
|
||||||
|
|
||||||
Then("We should get a 401")
|
Then("We should get a 401")
|
||||||
response.code should equal(401)
|
response.code should equal(401)
|
||||||
@ -204,12 +228,17 @@ class VerifyUserCredentialsTest extends V600ServerSetup with DefaultUsers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scenario("Fail with invalid JSON format", ApiEndpoint, VersionOfApi) {
|
scenario("Fail with invalid JSON format", ApiEndpoint, VersionOfApi) {
|
||||||
Given("User has the required entitlement")
|
// Add the required entitlement
|
||||||
// Entitlement already added
|
val addedEntitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanVerifyUserCredentials.toString)
|
||||||
|
|
||||||
When("We send invalid JSON")
|
When("We send invalid JSON")
|
||||||
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
val request = (v6_0_0_Request / "users" / "verify-credentials").POST <@ (user1)
|
||||||
val response = makePostRequest(request, "{ invalid json }")
|
val response = try {
|
||||||
|
makePostRequest(request, "{ invalid json }")
|
||||||
|
} finally {
|
||||||
|
// Clean up entitlement
|
||||||
|
Entitlement.entitlement.vend.deleteEntitlement(addedEntitlement)
|
||||||
|
}
|
||||||
|
|
||||||
Then("We should get a 400")
|
Then("We should get a 400")
|
||||||
response.code should equal(400)
|
response.code should equal(400)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user