test/Add signing basket tests WIP 3

This commit is contained in:
Marko Milić 2024-03-11 14:31:14 +01:00
parent 43d740a9eb
commit 45e968fbbf

View File

@ -1,12 +1,13 @@
package code.api.berlin.group.v1_3
import code.api.berlin.group.ConstantsBG
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{ErrorMessagesBG, PostSigningBasketJsonV13, SigningBasketGetResponseJson, SigningBasketResponseJson}
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{AuthorisationJsonV13, ErrorMessagesBG, PostSigningBasketJsonV13, ScaStatusJsonV13, SigningBasketGetResponseJson, SigningBasketResponseJson, StartPaymentAuthorisationJson}
import code.api.builder.SigningBasketsApi.APIMethods_SigningBasketsApi
import code.api.util.APIUtil.OAuth._
import code.api.util.ErrorMessages._
import code.setup.{APIResponse, DefaultUsers}
import com.github.dwickern.macros.NameOf.nameOf
import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatus
import org.scalatest.Tag
class SigningBasketServiceSBSApiTest extends BerlinGroupServerSetupV1_3 with DefaultUsers {
@ -15,6 +16,9 @@ class SigningBasketServiceSBSApiTest extends BerlinGroupServerSetupV1_3 with Def
object getSigningBasket extends Tag(nameOf(APIMethods_SigningBasketsApi.getSigningBasket))
object getSigningBasketStatus extends Tag(nameOf(APIMethods_SigningBasketsApi.getSigningBasketStatus))
object deleteSigningBasket extends Tag(nameOf(APIMethods_SigningBasketsApi.deleteSigningBasket))
object startSigningBasketAuthorisation extends Tag(nameOf(APIMethods_SigningBasketsApi.startSigningBasketAuthorisation))
object getSigningBasketScaStatus extends Tag(nameOf(APIMethods_SigningBasketsApi.getSigningBasketScaStatus))
object getSigningBasketAuthorisation extends Tag(nameOf(APIMethods_SigningBasketsApi.getSigningBasketAuthorisation))
feature(s"test the BG v1.3 - ${createSigningBasket.name}") {
scenario("Failed Case - Unauthenticated Access", BerlinGroupV1_3, SBS, createSigningBasket) {
@ -111,9 +115,47 @@ class SigningBasketServiceSBSApiTest extends BerlinGroupServerSetupV1_3 with Def
}
}
feature(s"test the BG v1.3 - ${startSigningBasketAuthorisation.name}") {
scenario("Failed Case - Unauthenticated Access", BerlinGroupV1_3, SBS, startSigningBasketAuthorisation) {
val postJson = s"""{}""".stripMargin
val request = (V1_3_BG / "signing-baskets" / "basketId" / "authorisations").POST
val response = makePostRequest(request, postJson)
Then("We should get a 401 ")
response.code should equal(401)
val error = s"$UserNotLoggedIn"
And("error should be " + error)
response.body.extract[ErrorMessagesBG].tppMessages.head.text should startWith(error)
}
}
feature(s"BG v1.3 - $createSigningBasket, $getSigningBasket, $getSigningBasketStatus, $deleteSigningBasket") {
scenario("Authentication User, test succeed", BerlinGroupV1_3, SBS, createSigningBasket, getSigningBasket, getSigningBasketStatus, deleteSigningBasket) {
feature(s"test the BG v1.3 - ${getSigningBasketScaStatus.name}") {
scenario("Failed Case - Unauthenticated Access", BerlinGroupV1_3, SBS, getSigningBasketScaStatus) {
val requestGet = (V1_3_BG / "signing-baskets" / "basketId" / "authorisations" / "authorisationId").GET
val responseGet = makeGetRequest(requestGet)
Then("We should get a 401 ")
responseGet.code should equal(401)
val error = s"$UserNotLoggedIn"
And("error should be " + error)
responseGet.body.extract[ErrorMessagesBG].tppMessages.head.text should startWith(error)
}
}
feature(s"test the BG v1.3 - ${getSigningBasketAuthorisation.name}") {
scenario("Failed Case - Unauthenticated Access", BerlinGroupV1_3, SBS, getSigningBasketAuthorisation) {
val requestGet = (V1_3_BG / "signing-baskets" / "basketId" / "authorisations").GET
val responseGet = makeGetRequest(requestGet)
Then("We should get a 401 ")
responseGet.code should equal(401)
val error = s"$UserNotLoggedIn"
And("error should be " + error)
responseGet.body.extract[ErrorMessagesBG].tppMessages.head.text should startWith(error)
}
}
feature(s"BG v1.3 - $createSigningBasket, $getSigningBasket, $getSigningBasketStatus, $deleteSigningBasket, $startSigningBasketAuthorisation, $getSigningBasketAuthorisation") {
scenario("Authentication User, test succeed", BerlinGroupV1_3, SBS, createSigningBasket, getSigningBasket, getSigningBasketStatus, deleteSigningBasket, startSigningBasketAuthorisation, getSigningBasketAuthorisation) {
// Create Signing Basket
val postJson =
s"""{
| "paymentIds": [
@ -129,6 +171,7 @@ class SigningBasketServiceSBSApiTest extends BerlinGroupServerSetupV1_3 with Def
val basketId = response.body.extract[SigningBasketResponseJson].basketId
// Get Signing Basket
Then(s"We test the $getSigningBasket")
val requestGet = (V1_3_BG / "signing-baskets" / basketId).GET <@ (user1)
val responseGet = makeGetRequest(requestGet)
@ -136,6 +179,7 @@ class SigningBasketServiceSBSApiTest extends BerlinGroupServerSetupV1_3 with Def
responseGet.body.extract[SigningBasketGetResponseJson].transactionStatus should
be(ConstantsBG.SigningBasketsStatus.RCVD.toString.toLowerCase())
// Get Signing Basket Status
Then(s"We test the $getSigningBasketStatus")
val requestGetStatus = (V1_3_BG / "signing-baskets" / basketId / "status").GET <@ (user1)
var responseGetStatus = makeGetRequest(requestGetStatus)
@ -143,6 +187,7 @@ class SigningBasketServiceSBSApiTest extends BerlinGroupServerSetupV1_3 with Def
responseGetStatus.body.extract[SigningBasketGetResponseJson].transactionStatus should
be(ConstantsBG.SigningBasketsStatus.RCVD.toString.toLowerCase())
// Delete Signing Basket
val requestDelete = (V1_3_BG / "signing-baskets" / basketId).DELETE <@ (user1)
val responseDelete = makeDeleteRequest(requestDelete)
responseDelete.code should be(204)
@ -151,6 +196,31 @@ class SigningBasketServiceSBSApiTest extends BerlinGroupServerSetupV1_3 with Def
responseGetStatus.code should be(200)
responseGetStatus.body.extract[SigningBasketGetResponseJson].transactionStatus should
be(ConstantsBG.SigningBasketsStatus.CANC.toString.toLowerCase())
// Start Signing Basket Auth Flow
val postJsonAuth = s"""{}""".stripMargin
val requestAuth = (V1_3_BG / "signing-baskets" / basketId / "authorisations").POST <@ (user1)
val responseAuth = makePostRequest(requestAuth, postJsonAuth)
Then("We should get a 201 ")
responseAuth.code should equal(201)
responseAuth.body.extract[StartPaymentAuthorisationJson].scaStatus should
be(StrongCustomerAuthenticationStatus.received.toString)
val authorisationId = responseAuth.body.extract[StartPaymentAuthorisationJson].authorisationId
// Get Signing Basket Auth Flow Status
val requestAuthStatus = (V1_3_BG / "signing-baskets" / basketId / "authorisations" / authorisationId).GET <@ (user1)
val responseAuthStatus = makeGetRequest(requestAuthStatus)
Then("We should get a 200 ")
responseAuthStatus.code should equal(200)
responseAuthStatus.body.extract[ScaStatusJsonV13].scaStatus should
be(responseAuth.body.extract[StartPaymentAuthorisationJson].scaStatus)
// Get Signing Basket Authorisations
val requestGetAuths = (V1_3_BG / "signing-baskets" / "basketId" / "authorisations").GET <@ (user1)
val responseGetAuths = makeGetRequest(requestGetAuths)
Then("We should get a 200 ")
responseGetAuths.code should equal(200)
responseGetAuths.body.extract[AuthorisationJsonV13]
}
}