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 @@ -14,6 +14,7 @@ class AppNexus implements BidderAdapter {
String trafficSourceCode
Boolean isAmp
String hbSource
Double reserve

static AppNexus getDefault() {
new AppNexus().tap {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.prebid.server.functional.tests

import org.prebid.server.functional.model.bidder.AppNexus
import org.prebid.server.functional.model.bidder.BidderName
import org.prebid.server.functional.model.bidder.Generic
import org.prebid.server.functional.model.db.Account
Expand All @@ -23,6 +24,7 @@ import org.prebid.server.functional.model.request.auction.Native
import org.prebid.server.functional.model.request.auction.PrebidOptions
import org.prebid.server.functional.model.request.auction.PrebidStoredRequest
import org.prebid.server.functional.model.request.auction.Site
import org.prebid.server.functional.model.request.auction.Source
import org.prebid.server.functional.model.request.auction.Targeting
import org.prebid.server.functional.model.request.vtrack.VtrackRequest
import org.prebid.server.functional.model.request.vtrack.xml.Vast
Expand All @@ -37,7 +39,6 @@ import static org.prebid.server.functional.model.Currency.CHF
import static org.prebid.server.functional.model.Currency.EUR
import static org.prebid.server.functional.model.Currency.JPY
import static org.prebid.server.functional.model.Currency.USD
import static org.prebid.server.functional.model.bidder.BidderName.ALIAS
import static org.prebid.server.functional.model.bidder.BidderName.ALIAS_UPPER_CASE
import static org.prebid.server.functional.model.bidder.BidderName.AMX
import static org.prebid.server.functional.model.bidder.BidderName.APPNEXUS
Expand Down Expand Up @@ -1740,4 +1741,53 @@ class BidderParamsSpec extends BaseSpec {
cleanup: "Stop and remove pbs container"
pbsServiceFactory.removeContainer(pbsConfig)
}

def "PBS should merge stored imp with appnexus bidder requested when reserve field specified"() {
given: "Pbs default config with appnexus"
def pbsConfig = ["adapters.${APPNEXUS.value}.enabled" : "true",
"adapters.${APPNEXUS.value}.endpoint": "$networkServiceContainer.rootUri/auction".toString()]
def defaultPbsService = pbsServiceFactory.getService(pbsConfig)

and: "Default stored request with specified stored imps and request"
def storedRequestId = PBSUtils.randomString
def bidRequest = BidRequest.getDefaultBidRequest().tap {
imp[0].ext.prebid.bidder.generic = null
imp[0].ext.prebid.bidder.appNexus = AppNexus.getDefault().tap {
reserve = PBSUtils.getRandomDecimal() as Double
}
imp[0].ext.prebid.storedRequest = new PrebidStoredRequest(id: PBSUtils.randomString)
ext.prebid.storedRequest = new PrebidStoredRequest(id: storedRequestId)
}

and: "Save storedImp into DB"
def storedImp = StoredImp.getStoredImp(bidRequest).tap {
impData = Imp.defaultImpression
}
storedImpDao.save(storedImp)

and: "Save stored request with source.tid and cur"
def storedBidRequest = new BidRequest(cur: [USD], source: new Source(tid: PBSUtils.randomString))
def storedRequest = StoredRequest.getStoredRequest(storedRequestId, storedBidRequest)
storedRequestDao.save(storedRequest)

and: "Default basic bid with bid.ext"
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest, APPNEXUS).tap {
seatbid[0].bid[0].ext = new BidExt()
}
bidder.setResponse(bidRequest.id, bidResponse)

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

then: "Bid response should contain appnexus and generic bidder"
assert response.seatbid.size() == 2
assert response.seatbid.seat.sort() == [APPNEXUS, BidderName.GENERIC].sort()

and: "Bidder requests should perform two bidder call"
def bidderRequests = bidder.getBidderRequests(bidRequest.id)
assert bidderRequests.size() == 2

cleanup: "Stop and remove pbs container"
pbsServiceFactory.removeContainer(pbsConfig)
}
}
Loading