Skip to content
Open
Show file tree
Hide file tree
Changes from 5 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
@@ -0,0 +1,11 @@
package org.prebid.server.functional.model.request

import groovy.transform.ToString
import org.prebid.server.functional.model.ChannelType

@ToString(includeNames = true, ignoreNulls = true)
class Channel {

ChannelType name
String version
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ package org.prebid.server.functional.model.request.auction
import com.fasterxml.jackson.annotation.JsonProperty
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.Currency

@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class AdjustmentRule {

@JsonProperty('adjtype')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package org.prebid.server.functional.model.request.auction

import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class AppExt {

AppExtData data
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package org.prebid.server.functional.model.request.auction

import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class AppExtData {

String language
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package org.prebid.server.functional.model.request.auction

import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class AppPrebid {

String source
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package org.prebid.server.functional.model.request.auction

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.util.PBSUtils

@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class BidAdjustment {

Map<BidAdjustmentMediaType, BidAdjustmentRule> mediaType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter
import com.fasterxml.jackson.annotation.JsonAnySetter
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.bidder.BidderName

@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class BidAdjustmentFactors {

@JsonAnySetter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package org.prebid.server.functional.model.request.auction

import com.fasterxml.jackson.annotation.JsonProperty
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class BidAdjustmentRule {

@JsonProperty('*')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ package org.prebid.server.functional.model.request.auction

import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@ToString(includeNames = true, ignoreNulls = true)
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy)
@EqualsAndHashCode
class ConsentedProvidersSettings {

String consentedProviders
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package org.prebid.server.functional.model.request.auction

import com.fasterxml.jackson.annotation.JsonValue
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@ToString
@EqualsAndHashCode
class DeviceExt {

Atts atts
String cdep
DevicePrebid prebid

enum Atts {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.prebid.server.functional.model.request.auction

import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@EqualsAndHashCode
@ToString(includeNames = true, ignoreNulls = true)
class DevicePrebid {

Interstitial interstitial
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package org.prebid.server.functional.model.request.auction

import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@EqualsAndHashCode
@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@ToString(includeNames = true, ignoreNulls = true)
class ImpExtContextDataAdServer {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.prebid.server.functional.model.request.auction

import com.fasterxml.jackson.annotation.JsonProperty
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@EqualsAndHashCode
@ToString(includeNames = true, ignoreNulls = true)
class Interstitial {

@JsonProperty("minwidthperc")
Integer minWidthPercentage
@JsonProperty("minheightperc")
Integer minHeightPercentage
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package org.prebid.server.functional.model.request.auction

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.bidder.BidderName

@ToString(includeNames = true, ignoreNulls = false)
@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@EqualsAndHashCode
class MultiBid {

BidderName bidder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
import groovy.transform.ToString
import org.prebid.server.functional.model.ChannelType
import org.prebid.server.functional.model.bidder.BidderName
import org.prebid.server.functional.model.config.AlternateBidderCodes
import org.prebid.server.functional.model.request.Channel

@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@ToString(includeNames = true, ignoreNulls = true)
Expand All @@ -26,6 +26,8 @@ class Prebid {
ExtRequestPrebidData data
List<ExtPrebidBidderConfig> bidderConfig
List<PrebidSchain> schains
List<String> noSale
Long auctionTimestamp
Amp amp
Channel channel
List<MultiBid> multibid
Expand All @@ -49,10 +51,7 @@ class Prebid {
List<String> profileNames
@JsonProperty("kvps")
Map<String, String> keyValuePairs

static class Channel {

ChannelType name
String version
}
Boolean supportDeals
String integration
Map<String, String> bidders
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package org.prebid.server.functional.model.request.auction

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.Currency

@JsonNaming(PropertyNamingStrategies.LowerCaseStrategy)
@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class PrebidCurrency {

Map<Currency, Map<Currency, BigDecimal>> rates
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package org.prebid.server.functional.model.request.auction

import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString

@ToString(includeNames = true, ignoreNulls = true)
@EqualsAndHashCode
class UserTime {

Integer userdow
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,6 @@ class AmpFpdSpec extends BaseSpec {
def bidderRequest = bidder.getBidderRequest(ampStoredRequest.id)
assert ampStoredRequest.ext.prebid.bidderConfig[0].config.ortb2.site.domain == bidderRequest.site.domain
assert ampStoredRequest.ext.prebid.bidderConfig[0].config.ortb2.user.keywords == bidderRequest.user.keywords

and: "Bidder request shouldn't contain bidder config"
assert !bidderRequest.ext.prebid.bidderConfig
}

def "PBS should populate FPD from root when bidder was defined in prebid data"() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import org.prebid.server.functional.service.PrebidServerException
import org.prebid.server.functional.service.PrebidServerService
import org.prebid.server.functional.util.HttpUtil
import org.prebid.server.functional.util.PBSUtils
import spock.lang.IgnoreRest
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls remove

import spock.lang.Shared

import static org.prebid.server.functional.model.AccountStatus.ACTIVE
Expand Down Expand Up @@ -125,37 +126,6 @@ class AuctionSpec extends BaseSpec {
"invalid-stored-impr" | { bidReq, storedReq -> bidReq.imp[0].ext.prebid.storedRequest = storedReq }
}

def "PBS should copy imp level passThrough to bidresponse.seatbid[].bid[].ext.prebid.passThrough when the passThrough is present"() {
given: "Default bid request with passThrough"
def randomString = PBSUtils.randomString
def passThrough = [(randomString): randomString]
def bidRequest = BidRequest.defaultBidRequest.tap {
imp[0].ext.prebid.passThrough = passThrough
}

when: "Requesting PBS auction"
def response = defaultPbsService.sendAuctionRequest(bidRequest)

then: "BidResponse should contain the same passThrough as on request"
assert response.seatbid.first().bid.first().ext.prebid.passThrough == passThrough
}

def "PBS should copy global level passThrough object to bidresponse.ext.prebid.passThrough when passThrough is present"() {
given: "Default bid request with passThrough"
def randomString = PBSUtils.randomString
def passThrough = [(randomString): randomString]
def bidRequest = BidRequest.defaultBidRequest.tap {
ext.prebid.passThrough = passThrough
}

when: "Requesting PBS auction"
defaultPbsService.sendAuctionRequest(bidRequest)

then: "BidResponse should contain the same passThrough as on request"
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
assert bidderRequest.ext.prebid.passThrough == passThrough
}

def "PBS should populate bidder request buyeruid from buyeruids when buyeruids with appropriate bidder present in request"() {
given: "Bid request with buyeruids"
def buyeruid = PBSUtils.randomString
Expand All @@ -169,6 +139,9 @@ class AuctionSpec extends BaseSpec {
then: "Bidder request should contain buyeruid from the user.ext.prebid.buyeruids"
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
assert bidderRequest?.user?.buyeruid == buyeruid

and: "Bidder request shouldn't contain user.ext.prebid.buyeruids"
assert !bidderRequest.user.ext.prebid.buyeruids
}

def "PBS shouldn't populate bidder request buyeruid from buyeruids when buyeruids without appropriate bidder present in request"() {
Expand Down Expand Up @@ -336,25 +309,6 @@ class AuctionSpec extends BaseSpec {
assert !bidderRequest.ext.prebid.aliases
}

def "PBS auction should pass ext.prebid.sdk requested to bidder request when sdk specified"() {
given: "Default bid request with aliases"
def bidRequest = BidRequest.defaultBidRequest.tap {
ext.prebid.sdk = new Sdk(renderers: [new Renderer(
name: PBSUtils.randomString,
version: PBSUtils.randomString,
data: new RendererData(any: PBSUtils.randomString))])
}

when: "Requesting PBS auction"
defaultPbsService.sendAuctionRequest(bidRequest)

then: "Bidder request should contain sdk value same in request"
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
assert bidderRequest.ext.prebid.sdk.renderers.name == bidRequest.ext.prebid.sdk.renderers.name
assert bidderRequest.ext.prebid.sdk.renderers.version == bidRequest.ext.prebid.sdk.renderers.version
assert bidderRequest.ext.prebid.sdk.renderers.data.any == bidRequest.ext.prebid.sdk.renderers.data.any
}

def "PBS auction should pass meta object to bid response when meta specified "() {
given: "Default bid request with aliases"
def bidRequest = BidRequest.defaultBidRequest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.prebid.server.functional.tests


import org.prebid.server.functional.model.bidder.Generic
import org.prebid.server.functional.model.config.AccountAuctionConfig
import org.prebid.server.functional.model.config.AccountConfig
Expand Down Expand Up @@ -53,6 +52,7 @@ import static org.prebid.server.functional.model.request.auction.VideoPlcmtSubty
import static org.prebid.server.functional.model.response.auction.ErrorType.PREBID
import static org.prebid.server.functional.testcontainers.Dependencies.getNetworkServiceContainer
import static org.prebid.server.functional.util.PBSUtils.getRandomDecimal
import static org.prebid.server.functional.util.PBSUtils.roundDecimal

class BidAdjustmentSpec extends BaseSpec {

Expand Down Expand Up @@ -96,13 +96,17 @@ class BidAdjustmentSpec extends BaseSpec {
assert response?.seatbid?.first?.bid?.first?.price == bidResponse.seatbid.first.bid.first.price *
bidAdjustmentFactor

and: "Bidder request shouldn't contain bid adjustment factors"
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
assert !bidderRequest.ext.prebid.bidAdjustmentFactors

where:
bidAdjustmentFactor << [0.9, 1.1]
}

def "PBS should prefer bid price adjustment based on media type when request has per-media-type bid adjustment factors"() {
given: "Default bid request with bid adjustment"
def bidAdjustment = randomDecimal
def bidAdjustment = roundDecimal(getRandomDecimal(), 0)
def mediaTypeBidAdjustment = bidAdjustmentFactor
def bidRequest = BidRequest.getDefaultBidRequest(SITE).tap {
ext.prebid.bidAdjustmentFactors = new BidAdjustmentFactors().tap {
Expand All @@ -122,6 +126,10 @@ class BidAdjustmentSpec extends BaseSpec {
assert response?.seatbid?.first?.bid?.first?.price == bidResponse.seatbid.first.bid.first.price *
mediaTypeBidAdjustment

and: "Bidder request should contain bid bid adjustment factors"
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
assert bidderRequest.ext.prebid.bidAdjustmentFactors == bidRequest.ext.prebid.bidAdjustmentFactors

where:
bidAdjustmentFactor << [0.9, 1.1]
}
Expand Down Expand Up @@ -235,6 +243,9 @@ class BidAdjustmentSpec extends BaseSpec {
assert bidderRequest.imp.bidFloorCur == [currency]
assert bidderRequest.imp.bidFloor == [impPrice]

and: "Bidder request should contain bid adjustments"
assert bidderRequest.ext.prebid.bidAdjustments == bidRequest.ext.prebid.bidAdjustments

where:
adjustmentType | ruleValue | mediaType | bidRequest
MULTIPLIER | getRandomDecimal(MIN_ADJUST_VALUE, MAX_MULTIPLIER_ADJUST_VALUE) | BANNER | BidRequest.defaultBidRequest
Expand Down
Loading
Loading