Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ class BidAdjustmentRule {
@JsonProperty('*')
Map<String, List<AdjustmentRule>> wildcardBidder
Map<String, List<AdjustmentRule>> generic
Map<String, List<AdjustmentRule>> openx
Map<String, List<AdjustmentRule>> alias
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString
import org.prebid.server.functional.model.Currency
import org.prebid.server.functional.model.response.auction.MediaType

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

static BidRequest getDefaultBidRequest(MediaType mediaType, DistributionChannel channel = SITE) {
getDefaultRequest(channel, Imp.getDefaultImpression(mediaType))
}

static BidRequest getDefaultStoredRequest() {
getDefaultBidRequest().tap {
site = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import org.prebid.server.functional.model.request.auction.Imp
import org.prebid.server.functional.util.ObjectMapperWrapper
import org.prebid.server.functional.util.PBSUtils

import static groovy.lang.Closure.DELEGATE_FIRST

@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class Bid implements ObjectMapperWrapper {
Expand Down Expand Up @@ -70,6 +72,23 @@ class Bid implements ObjectMapperWrapper {
}
}

static List<Bid> getDefaultMultyTypesBids(Imp imp, @DelegatesTo(Bid) Closure commonInit = null) {
List<Bid> bids = []
if (imp.banner) bids << createBid(imp, BidMediaType.BANNER) { adm = null }
if (imp.video) bids << createBid(imp, BidMediaType.VIDEO)
if (imp.nativeObj) bids << createBid(imp, BidMediaType.NATIVE)
if (imp.audio) bids << createBid(imp, BidMediaType.AUDIO) { adm = null }

if (commonInit) {
bids.each { bid ->
commonInit.delegate = bid
commonInit.resolveStrategy = DELEGATE_FIRST
commonInit()
}
}
bids
}

void setAdm(Object adm) {
if (adm instanceof Adm) {
this.adm = encode(adm)
Expand All @@ -79,4 +98,15 @@ class Bid implements ObjectMapperWrapper {
this.adm = null
}
}

private static Bid createBid(Imp imp, BidMediaType type, @DelegatesTo(Bid) Closure init = null) {
def bid = getDefaultBid(imp)
bid.mediaType = type
if (init) {
init.delegate = bid
init.resolveStrategy = DELEGATE_FIRST
init()
}
bid
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.prebid.server.functional.model.response.auction

import com.fasterxml.jackson.annotation.JsonValue
import org.prebid.server.functional.model.request.auction.BidAdjustmentMediaType

enum BidMediaType {

Expand All @@ -15,4 +16,16 @@ enum BidMediaType {
BidMediaType(Integer value) {
this.value = value
}

static BidMediaType from(BidAdjustmentMediaType mediaType) {
return switch (mediaType) {
case BidAdjustmentMediaType.BANNER -> BANNER
case BidAdjustmentMediaType.VIDEO -> VIDEO
case BidAdjustmentMediaType.VIDEO_IN_STREAM -> VIDEO
case BidAdjustmentMediaType.VIDEO_OUT_STREAM -> VIDEO
case BidAdjustmentMediaType.AUDIO -> AUDIO
case BidAdjustmentMediaType.NATIVE -> NATIVE
default -> throw new IllegalArgumentException("Unknown media type: " + mediaType);
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package org.prebid.server.functional.tests

import org.prebid.server.functional.model.bidderspecific.BidderRequest
import org.prebid.server.functional.model.response.amp.AmpResponse
import org.prebid.server.functional.model.response.auction.Bid
import org.prebid.server.functional.model.response.auction.BidMediaType
import org.prebid.server.functional.model.response.auction.BidResponse
import org.prebid.server.functional.model.response.auction.BidderCall
import org.prebid.server.functional.repository.HibernateRepositoryService
Expand Down Expand Up @@ -91,6 +93,10 @@ abstract class BaseSpec extends Specification implements ObjectMapperWrapper {
}
}

protected static List<Bid> getMediaTypedBids(BidResponse bidResponse, BidMediaType mediaType) {
bidResponse.seatbid*.bid.collectMany { it }.findAll { it.mediaType == mediaType }
}

protected static Map<String, List<BidderRequest>> getRequests(AmpResponse ampResponse) {
ampResponse.ext.debug.bidders.collectEntries { bidderName, bidderCalls ->
collectRequestByBidderName(bidderName, bidderCalls)
Expand Down
Loading