diff --git a/.github/workflows/pr-module-functional-tests.yml b/.github/workflows/pr-module-functional-tests.yml
index 6741e45b1d6..42ba6be69c7 100644
--- a/.github/workflows/pr-module-functional-tests.yml
+++ b/.github/workflows/pr-module-functional-tests.yml
@@ -60,6 +60,7 @@ jobs:
use-actions-summary: 'true'
list-suites: 'failed'
list-tests: 'failed'
+ list-files: 'failed'
fail-on-error: true
fail-on-empty: true
token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/pom.xml b/pom.xml
index 1012e1493ab..f9f2e5b8117 100644
--- a/pom.xml
+++ b/pom.xml
@@ -615,6 +615,7 @@
${project.version}
5
+ false
false
diff --git a/src/test/groovy/org/prebid/server/functional/model/bidder/BidderName.groovy b/src/test/groovy/org/prebid/server/functional/model/bidder/BidderName.groovy
index 1061cf4a348..1ebb874c6a7 100644
--- a/src/test/groovy/org/prebid/server/functional/model/bidder/BidderName.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/bidder/BidderName.groovy
@@ -14,7 +14,7 @@ enum BidderName {
ALIAS_UPPER_CASE("ALIAS"),
GENERIC_CAMEL_CASE("GeNerIc"),
GENERIC("generic"),
- GENER_X("gener_x"),
+ GENER_X("gener-x"),
MAGNITE("magnite"),
APPNEXUS("appnexus"),
MAGNITE_ALIAS("magniteAlias"),
diff --git a/src/test/groovy/org/prebid/server/functional/model/bidder/GeneralBidderAdapter.groovy b/src/test/groovy/org/prebid/server/functional/model/bidder/GeneralBidderAdapter.groovy
index b583363974c..98a8187cf2e 100644
--- a/src/test/groovy/org/prebid/server/functional/model/bidder/GeneralBidderAdapter.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/bidder/GeneralBidderAdapter.groovy
@@ -11,4 +11,6 @@ class GeneralBidderAdapter extends Generic {
String demandSource
@JsonProperty("bc")
BidderName bidderCode
+ @JsonProperty("placement_id")
+ String placementId
}
diff --git a/src/test/groovy/org/prebid/server/functional/model/request/auction/FetchStatus.groovy b/src/test/groovy/org/prebid/server/functional/model/request/auction/AnalyticTagStatus.groovy
similarity index 93%
rename from src/test/groovy/org/prebid/server/functional/model/request/auction/FetchStatus.groovy
rename to src/test/groovy/org/prebid/server/functional/model/request/auction/AnalyticTagStatus.groovy
index 6eec49cf39d..3f6dcaf412e 100644
--- a/src/test/groovy/org/prebid/server/functional/model/request/auction/FetchStatus.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/request/auction/AnalyticTagStatus.groovy
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonValue
import groovy.transform.ToString
@ToString
-enum FetchStatus {
+enum AnalyticTagStatus {
NONE, SUCCESS, TIMEOUT, INPROGRESS, ERROR, SUCCESS_ALLOW, SUCCESS_BLOCK, SKIPPED, RUN
diff --git a/src/test/groovy/org/prebid/server/functional/model/request/auction/Bidder.groovy b/src/test/groovy/org/prebid/server/functional/model/request/auction/Bidder.groovy
index 5ea7a7d3270..246b2993d5b 100644
--- a/src/test/groovy/org/prebid/server/functional/model/request/auction/Bidder.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/request/auction/Bidder.groovy
@@ -15,7 +15,7 @@ class Bidder {
@JsonProperty("ALIAS")
Generic aliasUpperCase
Generic generic
- @JsonProperty("gener_x")
+ @JsonProperty("gener-x")
Generic generX
@JsonProperty("GeNerIc")
Generic genericCamelCase
diff --git a/src/test/groovy/org/prebid/server/functional/model/request/auction/ExtPrebidFloors.groovy b/src/test/groovy/org/prebid/server/functional/model/request/auction/ExtPrebidFloors.groovy
index c0c80038f5c..0ef7a96e7c6 100644
--- a/src/test/groovy/org/prebid/server/functional/model/request/auction/ExtPrebidFloors.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/request/auction/ExtPrebidFloors.groovy
@@ -12,7 +12,7 @@ class ExtPrebidFloors {
Boolean enabled
Location location
- FetchStatus fetchStatus
+ AnalyticTagStatus fetchStatus
Boolean skipped
Currency floorMinCur
BigDecimal floorMin
diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticResult.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticResult.groovy
index a8b737a848a..57d62801746 100644
--- a/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticResult.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticResult.groovy
@@ -4,11 +4,11 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString
-import org.prebid.server.functional.model.request.auction.FetchStatus
+import org.prebid.server.functional.model.request.auction.AnalyticTagStatus
import org.prebid.server.functional.model.request.auction.Imp
-import static org.prebid.server.functional.model.request.auction.FetchStatus.SUCCESS
-import static org.prebid.server.functional.model.request.auction.FetchStatus.SUCCESS_BLOCK
+import static org.prebid.server.functional.model.request.auction.AnalyticTagStatus.SUCCESS
+import static org.prebid.server.functional.model.request.auction.AnalyticTagStatus.SUCCESS_BLOCK
@ToString(includeNames = true, ignoreNulls = true)
@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@@ -16,7 +16,7 @@ import static org.prebid.server.functional.model.request.auction.FetchStatus.SUC
class AnalyticResult {
String name
- FetchStatus status
+ AnalyticTagStatus status
List results
static AnalyticResult buildFromImp(Imp imp) {
diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticTagStatus.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticTagStatus.groovy
new file mode 100644
index 00000000000..f7575677ce3
--- /dev/null
+++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticTagStatus.groovy
@@ -0,0 +1,13 @@
+package org.prebid.server.functional.model.response.auction
+
+import com.fasterxml.jackson.annotation.JsonValue
+
+enum AnalyticTagStatus {
+
+ NONE, LOOKUP, CONTROL, SUCCESS, ERROR, SUCCESS_ALLOW, SUCCESS_BLOCK, SKIPPED, RUN
+
+ @JsonValue
+ String getValue() {
+ name().toLowerCase().replace('_', '-')
+ }
+}
diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivity.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivity.groovy
index 6fd41583617..2ee172e41e3 100644
--- a/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivity.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivity.groovy
@@ -3,13 +3,13 @@ package org.prebid.server.functional.model.response.auction
import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
import groovy.transform.ToString
-import org.prebid.server.functional.model.request.auction.FetchStatus
+import org.prebid.server.functional.model.request.auction.AnalyticTagStatus
@ToString(includeNames = true, ignoreNulls = true)
@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
class AnalyticsTagActivity {
ModuleActivityName name
- FetchStatus status
+ AnalyticTagStatus status
List results
}
diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivityResult.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivityResult.groovy
index a439d6411c2..59d0948519c 100644
--- a/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivityResult.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/AnalyticsTagActivityResult.groovy
@@ -3,13 +3,13 @@ package org.prebid.server.functional.model.response.auction
import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
import groovy.transform.ToString
-import org.prebid.server.functional.model.request.auction.FetchStatus
+import org.prebid.server.functional.model.request.auction.AnalyticTagStatus
@ToString(includeNames = true, ignoreNulls = true)
@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
class AnalyticsTagActivityResult {
- FetchStatus status
+ AnalyticTagStatus status
AnalyticsTagActivityValue values
AppliedTo appliedTo
}
diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy
index 81dcd788b7d..04ac22ee511 100644
--- a/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy
@@ -6,6 +6,7 @@ enum ErrorType {
GENERAL("general"),
GENERIC("generic"),
+ GENER_X("gener-x"),
GENERIC_CAMEL_CASE("GeNerIc"),
MAGNITE("magnite"),
APPNEXUS("appnexus"),
diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/ImpResult.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/ImpResult.groovy
index 8740e415f47..e12db6d5404 100644
--- a/src/test/groovy/org/prebid/server/functional/model/response/auction/ImpResult.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/ImpResult.groovy
@@ -4,14 +4,14 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString
-import org.prebid.server.functional.model.request.auction.FetchStatus
+import org.prebid.server.functional.model.request.auction.AnalyticTagStatus
@ToString(includeNames = true, ignoreNulls = true)
@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@EqualsAndHashCode
class ImpResult {
- FetchStatus status
+ AnalyticTagStatus status
ModuleValue values
AppliedTo appliedTo
}
diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/ModuleActivityName.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/ModuleActivityName.groovy
index 8711bd395c6..10705cc6dcf 100644
--- a/src/test/groovy/org/prebid/server/functional/model/response/auction/ModuleActivityName.groovy
+++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/ModuleActivityName.groovy
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonValue
enum ModuleActivityName {
- ORTB2_BLOCKING('enforce-blocking'),
+ PB_ORTB2_BLOCKING('enforce-blocking'),
REJECT_RICHMEDIA('reject-richmedia'),
AB_TESTING('core-module-abtests')
diff --git a/src/test/groovy/org/prebid/server/functional/testcontainers/PbsConfig.groovy b/src/test/groovy/org/prebid/server/functional/testcontainers/PbsConfig.groovy
index c873c1a03f3..8786d3e6869 100644
--- a/src/test/groovy/org/prebid/server/functional/testcontainers/PbsConfig.groovy
+++ b/src/test/groovy/org/prebid/server/functional/testcontainers/PbsConfig.groovy
@@ -1,6 +1,6 @@
package org.prebid.server.functional.testcontainers
-
+import org.prebid.server.functional.testcontainers.container.PbsContainerConfig
import org.testcontainers.containers.MySQLContainer
import org.testcontainers.containers.PostgreSQLContainer
diff --git a/src/test/groovy/org/prebid/server/functional/testcontainers/PbsServiceFactory.groovy b/src/test/groovy/org/prebid/server/functional/testcontainers/PbsServiceFactory.groovy
index 60ca02ad762..d1c5f8cbbc9 100644
--- a/src/test/groovy/org/prebid/server/functional/testcontainers/PbsServiceFactory.groovy
+++ b/src/test/groovy/org/prebid/server/functional/testcontainers/PbsServiceFactory.groovy
@@ -1,73 +1,104 @@
package org.prebid.server.functional.testcontainers
import org.prebid.server.functional.service.PrebidServerService
-import org.prebid.server.functional.testcontainers.container.NetworkServiceContainer
+import org.prebid.server.functional.testcontainers.container.PbsContainerConfig
import org.prebid.server.functional.testcontainers.container.PrebidServerContainer
-import org.prebid.server.functional.util.SystemProperties
import org.testcontainers.images.builder.Transferable
+import static org.prebid.server.functional.testcontainers.PbsServiceFactory.ContainerPolicy.LRU
+import static org.prebid.server.functional.testcontainers.PbsServiceFactory.ContainerPolicy.PERSISTENT
+import static org.prebid.server.functional.util.SystemProperties.DEBUG_ENABLED
+import static org.prebid.server.functional.util.SystemProperties.MAX_CONTAINER
import static org.prebid.server.functional.util.SystemProperties.USE_FIXED_CONTAINER_PORTS
-// TODO make container instance into a POGO and add the ability for any given container to live through stopContainers()
class PbsServiceFactory {
- private static final Map