mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 19:16:53 +00:00
test/Add guard at the endpoint createBank v4.0.0
This commit is contained in:
parent
31c48c1d3b
commit
e5f5f49ea8
@ -458,7 +458,7 @@ object ErrorMessages {
|
||||
val atmsNotFound = "OBP-33002: No ATMs available."
|
||||
|
||||
// Bank related messages
|
||||
val bankCodeAlreadyExists = "OBP-34000: Bank code already exists. Please specify a different value."
|
||||
val bankIdAlreadyExists = "OBP-34000: Bank Id already exists. Please specify a different value."
|
||||
|
||||
// Consents
|
||||
val ConsentNotFound = "OBP-35001: Consent not found by CONSENT_ID. "
|
||||
|
||||
@ -144,8 +144,8 @@ trait APIMethods500 {
|
||||
!bank.id.contains(" ")
|
||||
}
|
||||
(banks, callContext) <- NewStyle.function.getBanks(cc.callContext)
|
||||
_ <- Helper.booleanToFuture(failMsg = ErrorMessages.bankCodeAlreadyExists, cc=cc.callContext) {
|
||||
banks.filter(_.bankId.value == bank.bank_code).isEmpty == false
|
||||
_ <- Helper.booleanToFuture(failMsg = ErrorMessages.bankIdAlreadyExists, cc=cc.callContext) {
|
||||
!banks.exists { b => Some(b.bankId.value) == bank.id }
|
||||
}
|
||||
(success, callContext) <- NewStyle.function.createOrUpdateBank(
|
||||
bank.id.getOrElse(APIUtil.generateUUID()),
|
||||
|
||||
@ -4,7 +4,7 @@ import code.api.Constant.{INCOMING_SETTLEMENT_ACCOUNT_ID, OUTGOING_SETTLEMENT_AC
|
||||
import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.postBankJson500
|
||||
import code.api.util.ApiRole.CanCreateBank
|
||||
import code.api.util.ErrorMessages.UserHasMissingRoles
|
||||
import code.api.util.{ApiRole, ErrorMessages, NewStyle}
|
||||
import code.api.util.{APIUtil, ApiRole, ErrorMessages, NewStyle}
|
||||
import code.api.util.APIUtil.OAuth._
|
||||
import code.api.v5_0_0.APIMethods500.Implementations5_0_0
|
||||
import code.entitlement.Entitlement
|
||||
@ -66,19 +66,20 @@ class BankTests extends V500ServerSetupAsync with DefaultUsers {
|
||||
When("We add required entitlement")
|
||||
Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, ApiRole.CanCreateBank.toString)
|
||||
And("We make the request")
|
||||
val bankId = postBankJson500.id.getOrElse("some_bank_id")
|
||||
val postBank = postBankJson500.copy(id = Some(APIUtil.generateUUID()))
|
||||
val bankId = postBank.id.getOrElse("some_bank_id")
|
||||
val request = (v5_0_0_Request / "banks").POST <@ (user1)
|
||||
val response = for {
|
||||
before <- NewStyle.function.getEntitlementsByUserId(resourceUser1.userId, None) map {
|
||||
_.exists( e => e.roleName == ApiRole.CanCreateEntitlementAtOneBank.toString && e.bankId == bankId)
|
||||
}
|
||||
response: APIResponse <- makePostRequestAsync(request, write(postBankJson500))
|
||||
response: APIResponse <- makePostRequestAsync(request, write(postBank))
|
||||
after <- NewStyle.function.getEntitlementsByUserId(resourceUser1.userId, None) map {
|
||||
_.exists( e => e.roleName == ApiRole.CanCreateEntitlementAtOneBank.toString && e.bankId == bankId)
|
||||
}
|
||||
requestGet = (v5_0_0_Request / "banks" / bankId).GET <@ (user1)
|
||||
responseGet <- makeGetRequestAsync(requestGet)
|
||||
secondResponse: APIResponse <- makePostRequestAsync(request, write(postBankJson500))
|
||||
secondResponse: APIResponse <- makePostRequestAsync(request, write(postBank))
|
||||
} yield (before, after, response, responseGet, secondResponse)
|
||||
Then("We should get a 201")
|
||||
response flatMap { r =>
|
||||
@ -86,15 +87,15 @@ class BankTests extends V500ServerSetupAsync with DefaultUsers {
|
||||
r._2 should equal(true) // After we create a bank there is a role CanCreateEntitlementAtOneBank
|
||||
r._3.code should equal(201)
|
||||
Then("Default settlement accounts should be created")
|
||||
val defaultOutgoingAccount = NewStyle.function.checkBankAccountExists(BankId(postBankJson500.id.getOrElse("")), AccountId(OUTGOING_SETTLEMENT_ACCOUNT_ID), None)
|
||||
val defaultIncomingAccount = NewStyle.function.checkBankAccountExists(BankId(postBankJson500.id.getOrElse("")), AccountId(INCOMING_SETTLEMENT_ACCOUNT_ID), None)
|
||||
val defaultOutgoingAccount = NewStyle.function.checkBankAccountExists(BankId(postBank.id.getOrElse("")), AccountId(OUTGOING_SETTLEMENT_ACCOUNT_ID), None)
|
||||
val defaultIncomingAccount = NewStyle.function.checkBankAccountExists(BankId(postBank.id.getOrElse("")), AccountId(INCOMING_SETTLEMENT_ACCOUNT_ID), None)
|
||||
defaultOutgoingAccount.map(account => account._1.accountId.value should equal(OUTGOING_SETTLEMENT_ACCOUNT_ID))
|
||||
defaultIncomingAccount.map(account => account._1.accountId.value should equal(INCOMING_SETTLEMENT_ACCOUNT_ID))
|
||||
Then("We should get a 200")
|
||||
r._4.code should equal(200)
|
||||
r._4.body.extract[BankJson500].bank_code should equal(postBankJson500.bank_code)
|
||||
r._4.body.extract[BankJson500].bank_code should equal(postBank.bank_code)
|
||||
r._5.code should equal(400)
|
||||
r._5.body.extract[ErrorMessage].message should equal(ErrorMessages.bankCodeAlreadyExists)
|
||||
r._5.body.extract[ErrorMessage].message should equal(ErrorMessages.bankIdAlreadyExists)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user