refactor/(api): use ApiVersion constants instead of hardcoded strings

- Replace hardcoded API version strings with ApiVersion constants in JSON factories and API methods
- Add new ApiVersion constants for Bahrain OBF and AU Open Banking
- Update test to use ApiVersion constants for version strings
- Ensure consistency and maintainability across API version references
This commit is contained in:
hongwei 2026-01-28 14:49:40 +01:00
parent 8e52e20c86
commit b29f21232e
9 changed files with 175 additions and 146 deletions

View File

@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints} import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable import code.util.Helper.MdcLoggable
import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion} import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus}
import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.ArrayBuffer
@ -47,7 +47,7 @@ This file defines which endpoints from all the versions are available in v1
*/ */
object ApiCollector extends OBPRestHelper with MdcLoggable with ScannedApis { object ApiCollector extends OBPRestHelper with MdcLoggable with ScannedApis {
//please modify these three parameter if it is not correct. //please modify these three parameter if it is not correct.
override val apiVersion = ScannedApiVersion("cds-au", "AU", "v1.0.0") override val apiVersion = ApiVersion.auOpenBankingV100
val versionStatus = ApiVersionStatus.DRAFT.toString val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints = private[this] val endpoints =

View File

@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints} import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.{ScannedApis} import code.api.util.{ScannedApis}
import code.util.Helper.MdcLoggable import code.util.Helper.MdcLoggable
import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion} import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus}
import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.ArrayBuffer
@ -45,7 +45,7 @@ import scala.collection.mutable.ArrayBuffer
This file defines which endpoints from all the versions are available in v1 This file defines which endpoints from all the versions are available in v1
*/ */
object ApiCollector extends OBPRestHelper with MdcLoggable with ScannedApis { object ApiCollector extends OBPRestHelper with MdcLoggable with ScannedApis {
override val apiVersion = ScannedApiVersion("BAHRAIN-OBF", "BAHRAIN-OBF", "v1.0.0") override val apiVersion = ApiVersion.bahrainObfV100
val versionStatus = ApiVersionStatus.DRAFT.toString val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints = private[this] val endpoints =

View File

@ -4019,7 +4019,7 @@ object SwaggerDefinitionsJSON {
lazy val topApiJson = TopApiJson( lazy val topApiJson = TopApiJson(
count = 7076, count = 7076,
Implemented_by_partial_function = "getBanks", Implemented_by_partial_function = "getBanks",
implemented_in_version = "v1.2.1" implemented_in_version = ApiVersion.v1_2_1.toString
) )
lazy val topApisJson = TopApisJson(List(topApiJson)) lazy val topApisJson = TopApisJson(List(topApiJson))
@ -4130,7 +4130,7 @@ object SwaggerDefinitionsJSON {
lazy val callLimitPostJsonV600 = CallLimitPostJsonV600( lazy val callLimitPostJsonV600 = CallLimitPostJsonV600(
from_date = DateWithDayExampleObject, from_date = DateWithDayExampleObject,
to_date = DateWithDayExampleObject, to_date = DateWithDayExampleObject,
api_version = Some("v6.0.0"), api_version = Some(ApiVersion.v6_0_0.toString),
api_name = Some("getConsumerCallLimits"), api_name = Some("getConsumerCallLimits"),
bank_id = None, bank_id = None,
per_second_call_limit = "100", per_second_call_limit = "100",
@ -4145,7 +4145,7 @@ object SwaggerDefinitionsJSON {
rate_limiting_id = "80e1e0b2-d8bf-4f85-a579-e69ef36e3305", rate_limiting_id = "80e1e0b2-d8bf-4f85-a579-e69ef36e3305",
from_date = DateWithDayExampleObject, from_date = DateWithDayExampleObject,
to_date = DateWithDayExampleObject, to_date = DateWithDayExampleObject,
api_version = Some("v6.0.0"), api_version = Some(ApiVersion.v6_0_0.toString),
api_name = Some("getConsumerCallLimits"), api_name = Some("getConsumerCallLimits"),
bank_id = None, bank_id = None,
per_second_call_limit = "100", per_second_call_limit = "100",
@ -5129,7 +5129,7 @@ object SwaggerDefinitionsJSON {
user_id = userIdExample.value, user_id = userIdExample.value,
allowed_attempts =3, allowed_attempts =3,
challenge_type = ChallengeType.OBP_TRANSACTION_REQUEST_CHALLENGE.toString, challenge_type = ChallengeType.OBP_TRANSACTION_REQUEST_CHALLENGE.toString,
link = "/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge" link = s"/obp/${ApiVersion.v4_0_0}/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"
) )
lazy val transactionRequestWithChargeJSON400 = TransactionRequestWithChargeJSON400( lazy val transactionRequestWithChargeJSON400 = TransactionRequestWithChargeJSON400(
id = "4050046c-63b3-4868-8a22-14b4181d33a6", id = "4050046c-63b3-4868-8a22-14b4181d33a6",

View File

@ -1283,7 +1283,7 @@ object JSONFactory400 {
).mkString("") ).mkString("")
val otpViaApiPath = Constant.HostName + List( val otpViaApiPath = Constant.HostName + List(
"/obp/v4.0.0/banks/", s"/obp/${ApiVersion.v4_0_0}/banks/",
stringOrNull(tr.from.bank_id), stringOrNull(tr.from.bank_id),
"/accounts/", "/accounts/",
stringOrNull(tr.from.account_id), stringOrNull(tr.from.account_id),
@ -2072,4 +2072,3 @@ object JSONFactory400 {
} }
} }
} }

View File

@ -1800,18 +1800,18 @@ trait APIMethods600 {
ListResult( ListResult(
"scanned_api_versions", "scanned_api_versions",
List( List(
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v1.2.1", fully_qualified_version = "OBPv1.2.1", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v1_2_1.toString, fully_qualified_version = ApiVersion.v1_2_1.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v1.3.0", fully_qualified_version = "OBPv1.3.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v1_3_0.toString, fully_qualified_version = ApiVersion.v1_3_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v1.4.0", fully_qualified_version = "OBPv1.4.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v1_4_0.toString, fully_qualified_version = ApiVersion.v1_4_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v2.0.0", fully_qualified_version = "OBPv2.0.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v2_0_0.toString, fully_qualified_version = ApiVersion.v2_0_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v2.1.0", fully_qualified_version = "OBPv2.1.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v2_1_0.toString, fully_qualified_version = ApiVersion.v2_1_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v2.2.0", fully_qualified_version = "OBPv2.2.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v2_2_0.toString, fully_qualified_version = ApiVersion.v2_2_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v3.0.0", fully_qualified_version = "OBPv3.0.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v3_0_0.toString, fully_qualified_version = ApiVersion.v3_0_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v3.1.0", fully_qualified_version = "OBPv3.1.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v3_1_0.toString, fully_qualified_version = ApiVersion.v3_1_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v4.0.0", fully_qualified_version = "OBPv4.0.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v4_0_0.toString, fully_qualified_version = ApiVersion.v4_0_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v5.0.0", fully_qualified_version = "OBPv5.0.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v5_0_0.toString, fully_qualified_version = ApiVersion.v5_0_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v5.1.0", fully_qualified_version = "OBPv5.1.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v5_1_0.toString, fully_qualified_version = ApiVersion.v5_1_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = "v6.0.0", fully_qualified_version = "OBPv6.0.0", is_active = true), ScannedApiVersionJsonV600(url_prefix = "obp", api_standard = "OBP", api_short_version = ApiVersion.v6_0_0.toString, fully_qualified_version = ApiVersion.v6_0_0.fullyQualifiedVersion, is_active = true),
ScannedApiVersionJsonV600(url_prefix = "berlin-group", api_standard = "BG", api_short_version = "v1.3", fully_qualified_version = "BGv1.3", is_active = false) ScannedApiVersionJsonV600(url_prefix = "berlin-group", api_standard = "BG", api_short_version = "v1.3", fully_qualified_version = "BGv1.3", is_active = false)
) )
), ),
@ -4289,7 +4289,7 @@ trait APIMethods600 {
lazy val getWebUiProp: OBPEndpoint = { lazy val getWebUiProp: OBPEndpoint = {
case "webui-props" :: webUiPropName :: Nil JsonGet req => { case "webui-props" :: webUiPropName :: Nil JsonGet req => {
cc => implicit val ec = EndpointContext(Some(cc)) cc => implicit val ec = EndpointContext(Some(cc))
logger.info(s"========== GET /obp/v6.0.0/webui-props/$webUiPropName (SINGLE PROP) called ==========") logger.info(s"========== GET /obp/${ApiVersion.v6_0_0}/webui-props/$webUiPropName (SINGLE PROP) called ==========")
val active = ObpS.param("active").getOrElse("false") val active = ObpS.param("active").getOrElse("false")
for { for {
invalidMsg <- Future(s"""$InvalidFilterParameterFormat `active` must be a boolean, but current `active` value is: ${active} """) invalidMsg <- Future(s"""$InvalidFilterParameterFormat `active` must be a boolean, but current `active` value is: ${active} """)
@ -4391,7 +4391,7 @@ trait APIMethods600 {
case "webui-props":: Nil JsonGet req => { case "webui-props":: Nil JsonGet req => {
cc => implicit val ec = EndpointContext(Some(cc)) cc => implicit val ec = EndpointContext(Some(cc))
val what = ObpS.param("what").getOrElse("active") val what = ObpS.param("what").getOrElse("active")
logger.info(s"========== GET /obp/v6.0.0/webui-props (ALL PROPS) called with what=$what ==========") logger.info(s"========== GET /obp/${ApiVersion.v6_0_0}/webui-props (ALL PROPS) called with what=$what ==========")
for { for {
callContext <- Future.successful(cc.callContext) callContext <- Future.successful(cc.callContext)
_ <- NewStyle.function.tryons(s"""$InvalidFilterParameterFormat `what` must be one of: active, database, config. Current value: $what""", 400, callContext) { _ <- NewStyle.function.tryons(s"""$InvalidFilterParameterFormat `what` must be one of: active, database, config. Current value: $what""", 400, callContext) {
@ -4417,11 +4417,11 @@ trait APIMethods600 {
explicitWebUiPropsWithSource ++ configPropsNotInDatabase explicitWebUiPropsWithSource ++ configPropsNotInDatabase
} }
} yield { } yield {
logger.info(s"========== GET /obp/v6.0.0/webui-props returning ${result.size} records ==========") logger.info(s"========== GET /obp/${ApiVersion.v6_0_0}/webui-props returning ${result.size} records ==========")
result.foreach { prop => result.foreach { prop =>
logger.info(s" - name: ${prop.name}, value: ${prop.value}, webUiPropsId: ${prop.webUiPropsId}") logger.info(s" - name: ${prop.name}, value: ${prop.value}, webUiPropsId: ${prop.webUiPropsId}")
} }
logger.info(s"========== END GET /obp/v6.0.0/webui-props ==========") logger.info(s"========== END GET /obp/${ApiVersion.v6_0_0}/webui-props ==========")
(ListResult("webui_props", result), HttpCode.`200`(callContext)) (ListResult("webui_props", result), HttpCode.`200`(callContext))
} }
} }
@ -6983,11 +6983,11 @@ trait APIMethods600 {
schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject],
_links = Some(DynamicEntityLinksJsonV600( _links = Some(DynamicEntityLinksJsonV600(
related = List( related = List(
RelatedLinkJsonV600("list", "/obp/v6.0.0/my/customer_preferences", "GET"), RelatedLinkJsonV600("list", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences", "GET"),
RelatedLinkJsonV600("create", "/obp/v6.0.0/my/customer_preferences", "POST"), RelatedLinkJsonV600("create", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences", "POST"),
RelatedLinkJsonV600("read", "/obp/v6.0.0/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "GET"), RelatedLinkJsonV600("read", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "GET"),
RelatedLinkJsonV600("update", "/obp/v6.0.0/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "PUT"), RelatedLinkJsonV600("update", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "PUT"),
RelatedLinkJsonV600("delete", "/obp/v6.0.0/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "DELETE") RelatedLinkJsonV600("delete", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "DELETE")
) )
)) ))
) )
@ -7047,11 +7047,11 @@ trait APIMethods600 {
schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject],
_links = Some(DynamicEntityLinksJsonV600( _links = Some(DynamicEntityLinksJsonV600(
related = List( related = List(
RelatedLinkJsonV600("list", "/obp/v6.0.0/my/customer_preferences", "GET"), RelatedLinkJsonV600("list", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences", "GET"),
RelatedLinkJsonV600("create", "/obp/v6.0.0/my/customer_preferences", "POST"), RelatedLinkJsonV600("create", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences", "POST"),
RelatedLinkJsonV600("read", "/obp/v6.0.0/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "GET"), RelatedLinkJsonV600("read", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "GET"),
RelatedLinkJsonV600("update", "/obp/v6.0.0/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "PUT"), RelatedLinkJsonV600("update", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "PUT"),
RelatedLinkJsonV600("delete", "/obp/v6.0.0/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "DELETE") RelatedLinkJsonV600("delete", s"/obp/${ApiVersion.v6_0_0}/my/customer_preferences/CUSTOMER_PREFERENCES_ID", "DELETE")
) )
)) ))
) )

View File

@ -38,6 +38,7 @@ import com.openbankproject.commons.model.{
CustomerAttribute, CustomerAttribute,
_ _
} }
import com.openbankproject.commons.util.ApiVersion
import net.liftweb.common.Box import net.liftweb.common.Box
import java.util.Date import java.util.Date
@ -1430,8 +1431,8 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable {
val entityName = entity.entityName val entityName = entity.entityName
val idPlaceholder = StringHelpers.snakify(entityName + "Id").toUpperCase() val idPlaceholder = StringHelpers.snakify(entityName + "Id").toUpperCase()
val baseUrl = entity.bankId match { val baseUrl = entity.bankId match {
case Some(bankId) => s"/obp/v6.0.0/banks/$bankId/my/$entityName" case Some(bankId) => s"/obp/${ApiVersion.v6_0_0}/banks/$bankId/my/$entityName"
case None => s"/obp/v6.0.0/my/$entityName" case None => s"/obp/${ApiVersion.v6_0_0}/my/$entityName"
} }
val links = DynamicEntityLinksJsonV600( val links = DynamicEntityLinksJsonV600(

View File

@ -1,16 +1,19 @@
package code.api.ResourceDocs1_4_0 package code.api.ResourceDocs1_4_0
import code.setup.{PropsReset, ServerSetup} import code.setup.{PropsReset, ServerSetup}
import com.openbankproject.commons.util.ApiVersion
import net.liftweb.json.JsonAST.{JArray, JNothing, JNull, JString} import net.liftweb.json.JsonAST.{JArray, JNothing, JNull, JString}
class ResourceDocsTechnologyTest extends ServerSetup with PropsReset { class ResourceDocsTechnologyTest extends ServerSetup with PropsReset {
private val v600 = ApiVersion.v6_0_0.toString
private val v500 = ApiVersion.v5_0_0.toString
feature("ResourceDocs implemented_by.technology") { feature("ResourceDocs implemented_by.technology") {
scenario("v6.0.0 resource-docs should include implemented_by.technology") { scenario(s"$v600 resource-docs should include implemented_by.technology") {
setPropsValues("resource_docs_requires_role" -> "false") setPropsValues("resource_docs_requires_role" -> "false")
val request = (baseRequest / "obp" / "v6.0.0" / "resource-docs" / "v6.0.0" / "obp").GET val request = (baseRequest / "obp" / v600 / "resource-docs" / v600 / "obp").GET
val response = makeGetRequest(request) val response = makeGetRequest(request)
response.code should equal(200) response.code should equal(200)
@ -23,10 +26,10 @@ class ResourceDocsTechnologyTest extends ServerSetup with PropsReset {
} }
} }
scenario("v5.0.0 resource-docs should not include implemented_by.technology") { scenario(s"$v500 resource-docs should not include implemented_by.technology") {
setPropsValues("resource_docs_requires_role" -> "false") setPropsValues("resource_docs_requires_role" -> "false")
val request = (baseRequest / "obp" / "v5.0.0" / "resource-docs" / "v5.0.0" / "obp").GET val request = (baseRequest / "obp" / v500 / "resource-docs" / v500 / "obp").GET
val response = makeGetRequest(request) val response = makeGetRequest(request)
response.code should equal(200) response.code should equal(200)
@ -43,4 +46,3 @@ class ResourceDocsTechnologyTest extends ServerSetup with PropsReset {
} }
} }
} }

View File

@ -22,6 +22,31 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
object ApiEndpoint1 extends Tag(nameOf(ImplementationsResourceDocs.getResourceDocsObp)) object ApiEndpoint1 extends Tag(nameOf(ImplementationsResourceDocs.getResourceDocsObp))
object ApiEndpoint2 extends Tag(nameOf(ImplementationsResourceDocs.getBankLevelDynamicResourceDocsObp)) object ApiEndpoint2 extends Tag(nameOf(ImplementationsResourceDocs.getBankLevelDynamicResourceDocsObp))
private val v600 = ApiVersion.v6_0_0.toString
private val fq600 = ApiVersion.v6_0_0.fullyQualifiedVersion
private val v510 = ApiVersion.v5_1_0.toString
private val fq510 = ApiVersion.v5_1_0.fullyQualifiedVersion
private val v500 = ApiVersion.v5_0_0.toString
private val fq500 = ApiVersion.v5_0_0.fullyQualifiedVersion
private val v400 = ApiVersion.v4_0_0.toString
private val fq400 = ApiVersion.v4_0_0.fullyQualifiedVersion
private val v310 = ApiVersion.v3_1_0.toString
private val fq310 = ApiVersion.v3_1_0.fullyQualifiedVersion
private val v300 = ApiVersion.v3_0_0.toString
private val fq300 = ApiVersion.v3_0_0.fullyQualifiedVersion
private val v220 = ApiVersion.v2_2_0.toString
private val fq220 = ApiVersion.v2_2_0.fullyQualifiedVersion
private val v210 = ApiVersion.v2_1_0.toString
private val fq210 = ApiVersion.v2_1_0.fullyQualifiedVersion
private val v200 = ApiVersion.v2_0_0.toString
private val fq200 = ApiVersion.v2_0_0.fullyQualifiedVersion
private val v140 = ApiVersion.v1_4_0.toString
private val fq140 = ApiVersion.v1_4_0.fullyQualifiedVersion
private val v130 = ApiVersion.v1_3_0.toString
private val fq130 = ApiVersion.v1_3_0.fullyQualifiedVersion
private val v121 = ApiVersion.v1_2_1.toString
private val fq121 = ApiVersion.v1_2_1.fullyQualifiedVersion
override def beforeEach() = { override def beforeEach() = {
super.beforeEach() super.beforeEach()
setPropsValues( setPropsValues(
@ -73,8 +98,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
feature(s"test ${ApiEndpoint1.name} ") { feature(s"test ${ApiEndpoint1.name} ") {
scenario(s"We will test ${ApiEndpoint1.name} Api -v6.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v600", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "obp").GET val requestGetObp = (ResourceDocsV6_0Request / "resource-docs" / v600 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -83,8 +108,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
//This should not throw any exceptions //This should not throw any exceptions
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv6.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq600", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV6_0Request / "resource-docs" / "OBPv6.0.0" / "obp").GET val requestGetObp = (ResourceDocsV6_0Request / "resource-docs" / fq600 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -92,8 +117,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
//This should not throw any exceptions //This should not throw any exceptions
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v5.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v500", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV5_0Request / "resource-docs" / "v5.0.0" / "obp").GET val requestGetObp = (ResourceDocsV5_0Request / "resource-docs" / v500 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -104,52 +129,52 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
} }
scenario("Test OpenAPI endpoint with valid parameters", ApiEndpoint1, VersionOfApi) { scenario("Test OpenAPI endpoint with valid parameters", ApiEndpoint1, VersionOfApi) {
val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "openapi").GET <<? List(("content", "static"), ("tags", "Account")) val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / v600 / "openapi").GET <<? List(("content", "static"), ("tags", "Account"))
val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI) val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI)
responseGetOpenAPI.code should equal(200) responseGetOpenAPI.code should equal(200)
} }
scenario("Test OpenAPI endpoint with invalid content parameter", ApiEndpoint1, VersionOfApi) { scenario("Test OpenAPI endpoint with invalid content parameter", ApiEndpoint1, VersionOfApi) {
val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "openapi").GET <<? List(("content", "invalid")) val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / v600 / "openapi").GET <<? List(("content", "invalid"))
val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI) val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI)
responseGetOpenAPI.code should equal(400) responseGetOpenAPI.code should equal(400)
responseGetOpenAPI.body.toString should include("OBP-10052") responseGetOpenAPI.body.toString should include("OBP-10052")
} }
scenario("Test OpenAPI endpoint with empty tags parameter", ApiEndpoint1, VersionOfApi) { scenario("Test OpenAPI endpoint with empty tags parameter", ApiEndpoint1, VersionOfApi) {
val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "openapi").GET <<? List(("tags", "")) val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / v600 / "openapi").GET <<? List(("tags", ""))
val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI) val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI)
responseGetOpenAPI.code should equal(400) responseGetOpenAPI.code should equal(400)
responseGetOpenAPI.body.toString should include("OBP-10053") responseGetOpenAPI.body.toString should include("OBP-10053")
} }
scenario("Test OpenAPI endpoint with empty functions parameter", ApiEndpoint1, VersionOfApi) { scenario("Test OpenAPI endpoint with empty functions parameter", ApiEndpoint1, VersionOfApi) {
val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "openapi").GET <<? List(("functions", "")) val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / v600 / "openapi").GET <<? List(("functions", ""))
val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI) val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI)
responseGetOpenAPI.code should equal(400) responseGetOpenAPI.code should equal(400)
responseGetOpenAPI.body.toString should include("OBP-10054") responseGetOpenAPI.body.toString should include("OBP-10054")
} }
scenario("Test OpenAPI endpoint with valid multiple tags", ApiEndpoint1, VersionOfApi) { scenario("Test OpenAPI endpoint with valid multiple tags", ApiEndpoint1, VersionOfApi) {
val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "openapi").GET <<? List(("tags", "Account,Bank"), ("content", "static")) val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / v600 / "openapi").GET <<? List(("tags", "Account,Bank"), ("content", "static"))
val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI) val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI)
responseGetOpenAPI.code should equal(200) responseGetOpenAPI.code should equal(200)
} }
scenario("Test OpenAPI endpoint with Account-Firehose tag and static content", ApiEndpoint1, VersionOfApi) { scenario("Test OpenAPI endpoint with Account-Firehose tag and static content", ApiEndpoint1, VersionOfApi) {
val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "openapi").GET <<? List(("content", "static"), ("tags", "Account-Firehose")) val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / v600 / "openapi").GET <<? List(("content", "static"), ("tags", "Account-Firehose"))
val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI) val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI)
responseGetOpenAPI.code should equal(200) responseGetOpenAPI.code should equal(200)
} }
scenario("Test OpenAPI endpoint with empty api-collection-id parameter", ApiEndpoint1, VersionOfApi) { scenario("Test OpenAPI endpoint with empty api-collection-id parameter", ApiEndpoint1, VersionOfApi) {
val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / "v6.0.0" / "openapi").GET <<? List(("api-collection-id", "")) val requestGetOpenAPI = (ResourceDocsV6_0Request / "resource-docs" / v600 / "openapi").GET <<? List(("api-collection-id", ""))
val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI) val responseGetOpenAPI = makeGetRequest(requestGetOpenAPI)
responseGetOpenAPI.code should equal(400) responseGetOpenAPI.code should equal(400)
responseGetOpenAPI.body.toString should include(InvalidApiCollectionIdParameter) responseGetOpenAPI.body.toString should include(InvalidApiCollectionIdParameter)
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v5.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v510", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV5_0Request / "resource-docs" / "v5.1.0" / "obp").GET val requestGetObp = (ResourceDocsV5_0Request / "resource-docs" / v510 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -158,8 +183,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv5.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq500", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV5_0Request / "resource-docs" / "OBPv5.0.0" / "obp").GET val requestGetObp = (ResourceDocsV5_0Request / "resource-docs" / fq500 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -168,8 +193,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v4.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v400", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v4.0.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v400 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -178,8 +203,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv4.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq400", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv4.0.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq400 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -188,8 +213,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v3.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v310", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v3.1.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v310 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -199,8 +224,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv3.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq310", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv3.1.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq310 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -209,8 +234,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v3.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v300", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v3.0.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v300 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -219,8 +244,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv3.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq300", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv3.0.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq300 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -229,8 +254,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v2.2.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v220", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v2.2.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v220 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -239,8 +264,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv2.2.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq220", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv2.2.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq220 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -249,8 +274,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v2.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v210", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v2.1.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v210 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -259,8 +284,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv2.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq210", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv2.1.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq210 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -269,8 +294,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v2.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v200", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v2.0.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v200 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -279,8 +304,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv2.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq200", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv2.0.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq200 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -289,16 +314,16 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v1.4.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v140", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v1.4.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v140 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
responseGetObp.body.extract[ResourceDocsJson] responseGetObp.body.extract[ResourceDocsJson]
responseGetObp.code should equal(200) responseGetObp.code should equal(200)
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv1.4.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq140", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv1.4.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq140 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -307,8 +332,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v1.3.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v130", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v1.3.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v130 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -317,8 +342,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv1.3.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq130", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv1.3.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq130 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -327,8 +352,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v1.2.1", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v121", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v1.2.1" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v121 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -337,8 +362,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -OBPv1.2.1", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$fq121", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "OBPv1.2.1" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / fq121 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -387,11 +412,11 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v4.0.0 - resource_docs_requires_role props", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v400 - resource_docs_requires_role props", ApiEndpoint1, VersionOfApi) {
setPropsValues( setPropsValues(
"resource_docs_requires_role" -> "true", "resource_docs_requires_role" -> "true",
) )
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v4.0.0" / "obp").GET val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v400 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -399,11 +424,11 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseGetObp.toString contains(AuthenticatedUserIsRequired) should be (true) responseGetObp.toString contains(AuthenticatedUserIsRequired) should be (true)
} }
scenario(s"We will test ${ApiEndpoint1.name} Api -v4.0.0 - resource_docs_requires_role props- login in user", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint1.name} Api -$v400 - resource_docs_requires_role props- login in user", ApiEndpoint1, VersionOfApi) {
setPropsValues( setPropsValues(
"resource_docs_requires_role" -> "true", "resource_docs_requires_role" -> "true",
) )
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v4.0.0" / "obp").GET <@ (user1) val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / v400 / "obp").GET <@ (user1)
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -415,8 +440,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
} }
feature(s"test ${ApiEndpoint2.name} ") { feature(s"test ${ApiEndpoint2.name} ") {
scenario(s"We will test ${ApiEndpoint2.name} Api -v6.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v600", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v6.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v600 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -424,8 +449,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
//This should not throw any exceptions //This should not throw any exceptions
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv6.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq600", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv6.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq600 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -433,8 +458,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
//This should not throw any exceptions //This should not throw any exceptions
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v5.0.0/v4.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v500/$v400", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v5.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v500 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -443,8 +468,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v4.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v400", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v4.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v400 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -453,8 +478,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv4.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq400", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv4.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq400 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -463,8 +488,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v3.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v310", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v3.1.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v310 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -474,8 +499,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv3.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq310", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv3.1.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq310 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -484,8 +509,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v3.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v300", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v3.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v300 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -494,8 +519,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv3.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq300", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv3.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq300 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -504,8 +529,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v2.2.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v220", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v2.2.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v220 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -514,8 +539,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv2.2.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq220", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv2.2.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq220 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -524,8 +549,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v2.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v210", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v2.1.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v210 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -534,8 +559,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv2.1.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq210", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv2.1.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq210 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -544,8 +569,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v2.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v200", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v2.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v200 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -554,8 +579,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv2.0.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq200", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv2.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq200 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -564,16 +589,16 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v1.4.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v140", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v1.4.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v140 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
responseGetObp.body.extract[ResourceDocsJson] responseGetObp.body.extract[ResourceDocsJson]
responseGetObp.code should equal(200) responseGetObp.code should equal(200)
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv1.4.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq140", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv1.4.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq140 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -582,8 +607,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v1.3.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v130", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v1.3.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v130 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -592,8 +617,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv1.3.0", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq130", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv1.3.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq130 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -602,8 +627,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v1.2.1", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v121", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v1.2.1" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v121 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -612,8 +637,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -OBPv1.2.1", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$fq121", ApiEndpoint1, VersionOfApi) {
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "OBPv1.2.1" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / fq121 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -662,11 +687,11 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description)) responseDocs.resource_docs.map(responseDoc => stringToNodeSeq(responseDoc.description))
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v4.0.0 - resource_docs_requires_role props", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v400 - resource_docs_requires_role props", ApiEndpoint1, VersionOfApi) {
setPropsValues( setPropsValues(
"resource_docs_requires_role" -> "true", "resource_docs_requires_role" -> "true",
) )
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v4.0.0" / "obp").GET val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v400 / "obp").GET
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
@ -674,11 +699,11 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
responseGetObp.toString contains(AuthenticatedUserIsRequired) should be (true) responseGetObp.toString contains(AuthenticatedUserIsRequired) should be (true)
} }
scenario(s"We will test ${ApiEndpoint2.name} Api -v4.0.0 - resource_docs_requires_role props- login in user", ApiEndpoint1, VersionOfApi) { scenario(s"We will test ${ApiEndpoint2.name} Api -$v400 - resource_docs_requires_role props- login in user", ApiEndpoint1, VersionOfApi) {
setPropsValues( setPropsValues(
"resource_docs_requires_role" -> "true", "resource_docs_requires_role" -> "true",
) )
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v4.0.0" / "obp").GET <@ (user1) val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / v400 / "obp").GET <@ (user1)
val responseGetObp = makeGetRequest(requestGetObp) val responseGetObp = makeGetRequest(requestGetObp)
And("We should get 200 and the response can be extract to case classes") And("We should get 200 and the response can be extract to case classes")
val responseDocs = responseGetObp.body.extract[ResourceDocsJson] val responseDocs = responseGetObp.body.extract[ResourceDocsJson]

View File

@ -143,6 +143,8 @@ object ApiVersion {
val berlinGroupV13 = ScannedApiVersion("berlin-group", "BG", "v1.3") val berlinGroupV13 = ScannedApiVersion("berlin-group", "BG", "v1.3")
val mxofV100 = ScannedApiVersion("mxof", "MXOF", "v1.0.0") val mxofV100 = ScannedApiVersion("mxof", "MXOF", "v1.0.0")
val cnbv9 = ScannedApiVersion("CNBV9", "CNBV9", "v1.0.0") val cnbv9 = ScannedApiVersion("CNBV9", "CNBV9", "v1.0.0")
val bahrainObfV100 = ScannedApiVersion("BAHRAIN-OBF", "BAHRAIN-OBF", "v1.0.0")
val auOpenBankingV100 = ScannedApiVersion("cds-au", "AU", "v1.0.0")
/** /**
* the ApiPathZero value must be got by obp-api project, so here is a workaround, let obp-api project modify this value * the ApiPathZero value must be got by obp-api project, so here is a workaround, let obp-api project modify this value