Skip to content

Commit 2a3d7e8

Browse files
authored
Tests: adjust floors for bidadjustments (#3868)
1 parent 3242f46 commit 2a3d7e8

9 files changed

Lines changed: 1522 additions & 54 deletions

File tree

src/test/groovy/org/prebid/server/functional/model/request/auction/BidAdjustmentRule.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ class BidAdjustmentRule {
1212
@JsonProperty('*')
1313
Map<String, List<AdjustmentRule>> wildcardBidder
1414
Map<String, List<AdjustmentRule>> generic
15+
Map<String, List<AdjustmentRule>> openx
1516
Map<String, List<AdjustmentRule>> alias
1617
}

src/test/groovy/org/prebid/server/functional/model/request/auction/BidRequest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore
44
import groovy.transform.EqualsAndHashCode
55
import groovy.transform.ToString
66
import org.prebid.server.functional.model.Currency
7+
import org.prebid.server.functional.model.response.auction.MediaType
78

89
import static org.prebid.server.functional.model.request.auction.DebugCondition.ENABLED
910
import static org.prebid.server.functional.model.request.auction.DistributionChannel.APP
@@ -57,6 +58,10 @@ class BidRequest {
5758
getDefaultRequest(channel, Imp.getDefaultImpression(AUDIO))
5859
}
5960

61+
static BidRequest getDefaultBidRequest(MediaType mediaType, DistributionChannel channel = SITE) {
62+
getDefaultRequest(channel, Imp.getDefaultImpression(mediaType))
63+
}
64+
6065
static BidRequest getDefaultStoredRequest() {
6166
getDefaultBidRequest().tap {
6267
site = null

src/test/groovy/org/prebid/server/functional/model/response/auction/Bid.groovy

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import org.prebid.server.functional.model.request.auction.Imp
88
import org.prebid.server.functional.util.ObjectMapperWrapper
99
import org.prebid.server.functional.util.PBSUtils
1010

11+
import static groovy.lang.Closure.DELEGATE_FIRST
12+
1113
@ToString(includeNames = true, ignoreNulls = true)
1214
@EqualsAndHashCode
1315
class Bid implements ObjectMapperWrapper {
@@ -70,6 +72,23 @@ class Bid implements ObjectMapperWrapper {
7072
}
7173
}
7274

75+
static List<Bid> getDefaultMultyTypesBids(Imp imp, @DelegatesTo(Bid) Closure commonInit = null) {
76+
List<Bid> bids = []
77+
if (imp.banner) bids << createBid(imp, BidMediaType.BANNER) { adm = null }
78+
if (imp.video) bids << createBid(imp, BidMediaType.VIDEO)
79+
if (imp.nativeObj) bids << createBid(imp, BidMediaType.NATIVE)
80+
if (imp.audio) bids << createBid(imp, BidMediaType.AUDIO) { adm = null }
81+
82+
if (commonInit) {
83+
bids.each { bid ->
84+
commonInit.delegate = bid
85+
commonInit.resolveStrategy = DELEGATE_FIRST
86+
commonInit()
87+
}
88+
}
89+
bids
90+
}
91+
7392
void setAdm(Object adm) {
7493
if (adm instanceof Adm) {
7594
this.adm = encode(adm)
@@ -79,4 +98,15 @@ class Bid implements ObjectMapperWrapper {
7998
this.adm = null
8099
}
81100
}
101+
102+
private static Bid createBid(Imp imp, BidMediaType type, @DelegatesTo(Bid) Closure init = null) {
103+
def bid = getDefaultBid(imp)
104+
bid.mediaType = type
105+
if (init) {
106+
init.delegate = bid
107+
init.resolveStrategy = DELEGATE_FIRST
108+
init()
109+
}
110+
bid
111+
}
82112
}

src/test/groovy/org/prebid/server/functional/model/response/auction/BidMediaType.groovy

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.prebid.server.functional.model.response.auction
22

33
import com.fasterxml.jackson.annotation.JsonValue
4+
import org.prebid.server.functional.model.request.auction.BidAdjustmentMediaType
45

56
enum BidMediaType {
67

@@ -15,4 +16,16 @@ enum BidMediaType {
1516
BidMediaType(Integer value) {
1617
this.value = value
1718
}
19+
20+
static BidMediaType from(BidAdjustmentMediaType mediaType) {
21+
return switch (mediaType) {
22+
case BidAdjustmentMediaType.BANNER -> BANNER
23+
case BidAdjustmentMediaType.VIDEO -> VIDEO
24+
case BidAdjustmentMediaType.VIDEO_IN_STREAM -> VIDEO
25+
case BidAdjustmentMediaType.VIDEO_OUT_STREAM -> VIDEO
26+
case BidAdjustmentMediaType.AUDIO -> AUDIO
27+
case BidAdjustmentMediaType.NATIVE -> NATIVE
28+
default -> throw new IllegalArgumentException("Unknown media type: " + mediaType);
29+
};
30+
}
1831
}

src/test/groovy/org/prebid/server/functional/tests/BaseSpec.groovy

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package org.prebid.server.functional.tests
22

33
import org.prebid.server.functional.model.bidderspecific.BidderRequest
44
import org.prebid.server.functional.model.response.amp.AmpResponse
5+
import org.prebid.server.functional.model.response.auction.Bid
6+
import org.prebid.server.functional.model.response.auction.BidMediaType
57
import org.prebid.server.functional.model.response.auction.BidResponse
68
import org.prebid.server.functional.model.response.auction.BidderCall
79
import org.prebid.server.functional.repository.HibernateRepositoryService
@@ -91,6 +93,10 @@ abstract class BaseSpec extends Specification implements ObjectMapperWrapper {
9193
}
9294
}
9395

96+
protected static List<Bid> getMediaTypedBids(BidResponse bidResponse, BidMediaType mediaType) {
97+
bidResponse.seatbid*.bid.collectMany { it }.findAll { it.mediaType == mediaType }
98+
}
99+
94100
protected static Map<String, List<BidderRequest>> getRequests(AmpResponse ampResponse) {
95101
ampResponse.ext.debug.bidders.collectEntries { bidderName, bidderCalls ->
96102
collectRequestByBidderName(bidderName, bidderCalls)

0 commit comments

Comments
 (0)