Skip to content

Commit 9362d62

Browse files
committed
Update after review
1 parent 8ef28a5 commit 9362d62

2 files changed

Lines changed: 57 additions & 97 deletions

File tree

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,29 @@
11
package org.prebid.server.functional.model.request.auction
22

3+
import com.fasterxml.jackson.annotation.JsonValue
34
import groovy.transform.ToString
45

56
@ToString(includeNames = true, ignoreNulls = true)
67
class SiteExt {
78

8-
Integer amp
9+
Amp amp
910
SiteExtData data
1011

1112
static SiteExt getFPDSiteExt() {
1213
new SiteExt(data: SiteExtData.FPDSiteExtData)
1314
}
15+
16+
@ToString(includeNames = true, ignoreNulls = true)
17+
enum Amp {
18+
19+
FROM_AMP(1),
20+
NOT_FROM_AMP(0)
21+
22+
@JsonValue
23+
final int code
24+
25+
Amp(Integer code) {
26+
this.code == code
27+
}
28+
}
1429
}

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

Lines changed: 41 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.prebid.server.functional.tests
22

33
import org.prebid.server.functional.model.ChannelType
4-
import org.prebid.server.functional.model.bidder.BidderName
54
import org.prebid.server.functional.model.bidder.Generic
65
import org.prebid.server.functional.model.config.AlternateBidderCodes
76
import org.prebid.server.functional.model.config.CodesBidderConfig
@@ -47,8 +46,10 @@ import org.prebid.server.functional.model.response.auction.BidResponse
4746
import org.prebid.server.functional.util.PBSUtils
4847

4948
import static org.prebid.server.functional.model.Currency.USD
49+
import static org.prebid.server.functional.model.bidder.BidderName.ALIAS
5050
import static org.prebid.server.functional.model.bidder.BidderName.OPENX
5151
import static org.prebid.server.functional.model.bidder.BidderName.RUBICON
52+
import static org.prebid.server.functional.model.bidder.BidderName.GENERIC
5253
import static org.prebid.server.functional.model.mock.services.currencyconversion.CurrencyConversionRatesResponse.defaultConversionRates
5354
import static org.prebid.server.functional.model.request.auction.AdjustmentType.MULTIPLIER
5455
import static org.prebid.server.functional.model.request.auction.BidAdjustmentMediaType.BANNER
@@ -62,17 +63,14 @@ import static org.prebid.server.functional.util.PBSUtils.getRandomDecimal
6263

6364
class BidderFieldDisplayBehaviorSpec extends BaseSpec {
6465

65-
private static final WILDCARD = "*"
66+
private static final String WILDCARD = "*"
6667

6768
def "PBS should pass ext.prebid.createTids to bidder request"() {
6869
given: "Default bid request"
6970
def bidRequest = BidRequest.defaultBidRequest.tap {
7071
ext.prebid.createTids = PBSUtils.randomBoolean
7172
}
7273

73-
and: "Default bid response"
74-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
75-
bidder.setResponse(bidRequest.id, bidResponse)
7674

7775
when: "PBS processes auction request"
7876
defaultPbsService.sendAuctionRequest(bidRequest)
@@ -88,10 +86,6 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
8886
ext.prebid.returnAllBidStatus = true
8987
}
9088

91-
and: "Default bid response"
92-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
93-
bidder.setResponse(bidRequest.id, bidResponse)
94-
9589
when: "PBS processes auction request"
9690
defaultPbsService.sendAuctionRequest(bidRequest)
9791

@@ -105,14 +99,10 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
10599
def bidRequest = BidRequest.defaultBidRequest.tap {
106100
imp[0].ext.prebid.bidder.alias = new Generic()
107101
imp[0].ext.prebid.bidder.generic = null
108-
ext.prebid.aliasgvlids = [(BidderName.ALIAS.value): PBSUtils.randomNumber]
109-
ext.prebid.aliases = [(BidderName.ALIAS.value): BidderName.GENERIC]
102+
ext.prebid.aliasgvlids = [(ALIAS.value): PBSUtils.randomNumber]
103+
ext.prebid.aliases = [(ALIAS.value): GENERIC]
110104
}
111105

112-
and: "Default bid response"
113-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
114-
bidder.setResponse(bidRequest.id, bidResponse)
115-
116106
when: "PBS processes auction request"
117107
defaultPbsService.sendAuctionRequest(bidRequest)
118108

@@ -138,10 +128,6 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
138128
}
139129
}
140130

141-
and: "Default bid response"
142-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
143-
bidder.setResponse(bidRequest.id, bidResponse)
144-
145131
when: "PBS processes auction request"
146132
defaultPbsService.sendAuctionRequest(bidRequest)
147133

@@ -156,10 +142,6 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
156142
ext.prebid.supportDeals = PBSUtils.randomBoolean
157143
}
158144

159-
and: "Default bid response"
160-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
161-
bidder.setResponse(bidRequest.id, bidResponse)
162-
163145
when: "PBS processes auction request"
164146
defaultPbsService.sendAuctionRequest(bidRequest)
165147

@@ -174,10 +156,6 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
174156
ext.prebid.cache = new PrebidCache(winningOnly: PBSUtils.randomBoolean)
175157
}
176158

177-
and: "Default bid response"
178-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
179-
bidder.setResponse(bidRequest.id, bidResponse)
180-
181159
when: "PBS processes auction request"
182160
defaultPbsService.sendAuctionRequest(bidRequest)
183161

@@ -193,10 +171,6 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
193171
ext.prebid.channel = new Channel(name: channelType)
194172
}
195173

196-
and: "Default bid response"
197-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
198-
bidder.setResponse(bidRequest.id, bidResponse)
199-
200174
when: "PBS processes auction request"
201175
defaultPbsService.sendAuctionRequest(bidRequest)
202176

@@ -227,8 +201,8 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
227201
def "PBS shouldn't pass ext.prebid.data.{bidders,eidpermissions} to bidder request"() {
228202
given: "Default bid request"
229203
def bidRequest = BidRequest.defaultBidRequest.tap {
230-
ext.prebid.data = new ExtRequestPrebidData(bidders: [BidderName.GENERIC.value],
231-
eidpermissions: [new EidPermission(source: PBSUtils.randomString, bidders: [BidderName.GENERIC])])
204+
ext.prebid.data = new ExtRequestPrebidData(bidders: [GENERIC.value],
205+
eidpermissions: [new EidPermission(source: PBSUtils.randomString, bidders: [GENERIC])])
232206
}
233207

234208
when: "PBS processes auction request"
@@ -302,57 +276,42 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
302276
assert bidderRequest.ext.prebid.amp == bidRequest.ext.prebid.amp
303277
}
304278

305-
def "PBS should copy imp level passThrough to bidresponse.seatbid[].bid[].ext.prebid.passThrough when the passThrough is present"() {
306-
given: "Default bid request with passThrough"
307-
def randomString = PBSUtils.randomString
308-
def passThrough = [(randomString): randomString]
309-
def bidRequest = BidRequest.defaultBidRequest.tap {
310-
imp[0].ext.prebid.passThrough = passThrough
311-
}
312-
313-
when: "PBS processes auction request"
314-
def response = defaultPbsService.sendAuctionRequest(bidRequest)
315-
316-
then: "Bidder request shouldn't contain the same passThrough as on request"
317-
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
318-
assert !bidderRequest.ext.prebid.passThrough
319-
320-
and: "Response should contain the same passThrough as on request"
321-
assert response.seatbid.first().bid.first().ext.prebid.passThrough == passThrough
322-
323-
and: "Response shouldn't contain in ext.prebid.passThrough"
324-
assert !response.ext.prebid.passThrough
325-
}
326-
327-
def "PBS should copy global level passThrough object to bidresponse.ext.prebid.passThrough when passThrough is present"() {
279+
def "PBS should pass passThrough object to ext.prebid.passThrough when passThrough is present"() {
328280
given: "Default bid request with passThrough"
329-
def randomString = PBSUtils.randomString
330-
def passThrough = [(randomString): randomString]
331281
def bidRequest = BidRequest.defaultBidRequest.tap {
332-
ext.prebid.passThrough = passThrough
282+
it.ext.prebid.passThrough = requestPassThrough
283+
it.imp[0].ext.prebid.passThrough = impPassThrough
333284
}
334285

335286
when: "PBS processes auction request"
336287
def response = defaultPbsService.sendAuctionRequest(bidRequest)
337288

338-
then: "Response shouldn't contain the same passThrough as on request"
339-
assert !response.seatbid.first().bid.first().ext.prebid.passThrough
289+
then: "Response should contain the same passThrough as on request"
290+
assert response.seatbid.first().bid.first().ext.prebid.passThrough == impPassThrough
340291

341292
and: "Response should contain in ext.prebid.passThrough"
342-
assert response.ext.prebid.passThrough == passThrough
293+
assert response.ext.prebid.passThrough == requestPassThrough
343294

344295
and: "Bidder request shouldn't contain the same passThrough as on request"
345296
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
346297
assert !bidderRequest.ext.prebid.passThrough
298+
299+
where:
300+
impPassThrough | requestPassThrough
301+
[(PBSUtils.randomString): PBSUtils.randomString] | [(PBSUtils.randomString): PBSUtils.randomString]
302+
null | [(PBSUtils.randomString): PBSUtils.randomString]
303+
[(PBSUtils.randomString): PBSUtils.randomString] | null
347304
}
348305

349306
def "PBS auction should pass ext.prebid.sdk requested to bidder request when sdk specified"() {
350307
given: "Default bid request with ext.prebid.sdk"
308+
def renderers = [new Renderer().tap {
309+
it.name = PBSUtils.randomString
310+
it.version = PBSUtils.randomString
311+
it.data = new RendererData(any: PBSUtils.randomString)
312+
}]
351313
def bidRequest = BidRequest.defaultBidRequest.tap {
352-
ext.prebid.sdk = new Sdk(renderers: [new Renderer(
353-
name: PBSUtils.randomString,
354-
version: PBSUtils.randomString,
355-
data: new RendererData(any: PBSUtils.randomString))])
314+
it.ext.prebid.sdk = new Sdk(renderers: renderers)
356315
}
357316

358317
when: "PBS processes auction request"
@@ -361,9 +320,9 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
361320
then: "Bidder request should contain sdk value same in request"
362321
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
363322
verifyAll(bidderRequest.ext.prebid.sdk.renderers) {
364-
it.name == bidRequest.ext.prebid.sdk.renderers.name
365-
it.version == bidRequest.ext.prebid.sdk.renderers.version
366-
it.data.any == bidRequest.ext.prebid.sdk.renderers.data.any
323+
it.name == renderers.name
324+
it.version == renderers.version
325+
it.data.any == renderers.data.any
367326
}
368327
}
369328

@@ -400,8 +359,8 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
400359
def bidRequest = BidRequest.defaultBidRequest.tap {
401360
ext.prebid.alternateBidderCodes = new AlternateBidderCodes().tap {
402361
it.enabled = true
403-
it.bidders = [(BidderName.GENERIC): new CodesBidderConfig(enabled: true, allowedBidderCodes: [BidderName.GENERIC]),
404-
(RUBICON) : new CodesBidderConfig(enabled: true, allowedBidderCodes: [RUBICON])]
362+
it.bidders = [(GENERIC): new CodesBidderConfig(enabled: true, allowedBidderCodes: [GENERIC]),
363+
(RUBICON): new CodesBidderConfig(enabled: true, allowedBidderCodes: [RUBICON])]
405364
}
406365
}
407366

@@ -411,15 +370,15 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
411370
then: "Bidder request should contain ext.prebid.alternateBidderCodes"
412371
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
413372
assert bidderRequest.ext.prebid.alternateBidderCodes.enabled == bidRequest.ext.prebid.alternateBidderCodes.enabled
414-
assert bidderRequest.ext.prebid.alternateBidderCodes.bidders == [(BidderName.GENERIC): new CodesBidderConfig(enabled: true)]
373+
assert bidderRequest.ext.prebid.alternateBidderCodes.bidders == [(GENERIC): new CodesBidderConfig(enabled: true)]
415374
}
416375

417376
def "PBS should pass user.ext to bidder request when user.ext specified"() {
418377
given: "Default basic BidRequest with generic bidder"
419378
def userExt = new UserExt().tap {
420379
fcapids = [PBSUtils.randomString]
421380
time = new UserTime(userdow: PBSUtils.randomNumber, userhour: PBSUtils.randomNumber)
422-
prebid = new UserExtPrebid(buyeruids: [(BidderName.GENERIC): PBSUtils.randomString])
381+
prebid = new UserExtPrebid(buyeruids: [(GENERIC): PBSUtils.randomString])
423382
consentedProvidersSettings = new ConsentedProvidersSettings(consentedProviders: PBSUtils.randomString)
424383
}
425384
def bidRequest = BidRequest.defaultBidRequest.tap {
@@ -444,7 +403,7 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
444403
def "PBS should pass site.ext to bidder request when site.ext specified"() {
445404
given: "Default basic BidRequest with generic bidder"
446405
def bidRequest = BidRequest.defaultBidRequest.tap {
447-
site.ext = new SiteExt(amp: 0, data: new SiteExtData(id: PBSUtils.randomString))
406+
site.ext = new SiteExt(amp: PBSUtils.getRandomEnum(SiteExt.Amp), data: new SiteExtData(id: PBSUtils.randomString))
448407
}
449408

450409
when: "PBS processes auction request"
@@ -493,14 +452,10 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
493452
def "PBS shouldn't pass ext.prebid.bidderConfig to bidder request when bidderConfig specified"() {
494453
given: "Default bid request"
495454
def bidRequest = BidRequest.defaultBidRequest.tap {
496-
ext.prebid.bidderConfig = [new ExtPrebidBidderConfig(bidders: [BidderName.GENERIC], config:
455+
ext.prebid.bidderConfig = [new ExtPrebidBidderConfig(bidders: [GENERIC], config:
497456
new BidderConfig(ortb2: new BidderConfigOrtb(site: Site.configFPDSite, user: User.configFPDUser)))]
498457
}
499458

500-
and: "Default bid response"
501-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
502-
bidder.setResponse(bidRequest.id, bidResponse)
503-
504459
when: "PBS processes auction request"
505460
defaultPbsService.sendAuctionRequest(bidRequest)
506461

@@ -562,7 +517,7 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
562517

563518
and: "Set maxbids = 2 for generic and rubicon bidder"
564519
def maxBids = 2
565-
def genericMultiBid = new MultiBid(bidder: BidderName.GENERIC, maxBids: maxBids, targetBidderCodePrefix: PBSUtils.randomString)
520+
def genericMultiBid = new MultiBid(bidder: GENERIC, maxBids: maxBids, targetBidderCodePrefix: PBSUtils.randomString)
566521
def rubiconMultiBid = new MultiBid(bidder: RUBICON, maxBids: maxBids, targetBidderCodePrefix: PBSUtils.randomString)
567522
bidRequest.ext.prebid.multibid = [genericMultiBid, rubiconMultiBid]
568523

@@ -594,46 +549,36 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
594549
imp.first.bidFloorCur = currency
595550
}
596551

597-
and: "Default bid response"
598-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
599-
bidder.setResponse(bidRequest.id, bidResponse)
600-
601552
when: "PBS processes auction request"
602553
defaultPbsService.sendAuctionRequest(bidRequest)
603554

604555
then: "Bidder request should contain generic bid adjustments"
605556
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
606557
assert bidderRequest.ext.prebid.bidAdjustments.version == bidRequest.ext.prebid.bidAdjustments.version
607-
assert bidderRequest.ext.prebid.bidAdjustments.mediaType[BANNER].generic == bidRequest.ext.prebid.bidAdjustments.mediaType[BANNER].generic
558+
assert bidderRequest.ext.prebid.bidAdjustments.mediaType[BANNER].generic == rule.generic
608559

609560
and: "Bidder request shouldn't contain openx bid adjustments"
610561
assert !bidderRequest.ext.prebid.bidAdjustments.mediaType[BANNER].openx
611562
}
612563

613564
def "PBS should pass ext.prebid.bidAdjustmentFactors only bidder related entry for each bidder"() {
614565
given: "Default bid request with bid adjustment"
615-
def bidAdjustment = getRandomDecimal()
566+
def genericBidAdjustment = randomDecimal
616567
def bidRequest = BidRequest.getDefaultBidRequest(SITE).tap {
617568
ext.prebid.bidAdjustmentFactors = new BidAdjustmentFactors().tap {
618-
adjustments = [(BidderName.GENERIC): bidAdjustment, (OPENX): bidAdjustment]
619-
mediaTypes = [(BANNER): [(BidderName.GENERIC): mediaTypeBidAdjustment],
569+
adjustments = [(GENERIC): genericBidAdjustment, (OPENX): randomDecimal]
570+
mediaTypes = [(BANNER): [(GENERIC): mediaTypeBidAdjustment],
620571
(VIDEO) : [(OPENX): mediaTypeBidAdjustment]]
621572
}
622573
}
623574

624-
and: "Default bid response"
625-
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
626-
bidder.setResponse(bidRequest.id, bidResponse)
627-
628575
when: "PBS processes auction request"
629576
defaultPbsService.sendAuctionRequest(bidRequest)
630577

631578
then: "Bidder request should contain generic bid adjustment factors"
632579
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
633-
assert bidderRequest.ext.prebid.bidAdjustmentFactors.adjustments[BidderName.GENERIC]
634-
== bidRequest.ext.prebid.bidAdjustmentFactors.adjustments[BidderName.GENERIC]
635-
assert bidderRequest.ext.prebid.bidAdjustmentFactors.mediaTypes[BANNER][BidderName.GENERIC]
636-
== bidRequest.ext.prebid.bidAdjustmentFactors.mediaTypes[BANNER][BidderName.GENERIC]
580+
assert bidderRequest.ext.prebid.bidAdjustmentFactors.adjustments[GENERIC] == genericBidAdjustment
581+
assert bidderRequest.ext.prebid.bidAdjustmentFactors.mediaTypes[BANNER][GENERIC] == mediaTypeBidAdjustment
637582

638583
and: "Bidder request shouldn't contain opneX bid adjustment factors for generic call"
639584
assert !bidderRequest?.ext?.prebid?.bidAdjustmentFactors?.adjustments[OPENX]

0 commit comments

Comments
 (0)