Skip to content

Commit 12e4909

Browse files
authored
Test: stored imp and stored request (#3928)
1 parent 460ec7a commit 12e4909

2 files changed

Lines changed: 52 additions & 1 deletion

File tree

src/test/groovy/org/prebid/server/functional/model/bidder/AppNexus.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class AppNexus implements BidderAdapter {
1414
String trafficSourceCode
1515
Boolean isAmp
1616
String hbSource
17+
Double reserve
1718

1819
static AppNexus getDefault() {
1920
new AppNexus().tap {

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

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.prebid.server.functional.tests
22

3+
import org.prebid.server.functional.model.bidder.AppNexus
34
import org.prebid.server.functional.model.bidder.BidderName
45
import org.prebid.server.functional.model.bidder.Generic
56
import org.prebid.server.functional.model.db.Account
@@ -23,6 +24,7 @@ import org.prebid.server.functional.model.request.auction.Native
2324
import org.prebid.server.functional.model.request.auction.PrebidOptions
2425
import org.prebid.server.functional.model.request.auction.PrebidStoredRequest
2526
import org.prebid.server.functional.model.request.auction.Site
27+
import org.prebid.server.functional.model.request.auction.Source
2628
import org.prebid.server.functional.model.request.auction.Targeting
2729
import org.prebid.server.functional.model.request.vtrack.VtrackRequest
2830
import org.prebid.server.functional.model.request.vtrack.xml.Vast
@@ -37,7 +39,6 @@ import static org.prebid.server.functional.model.Currency.CHF
3739
import static org.prebid.server.functional.model.Currency.EUR
3840
import static org.prebid.server.functional.model.Currency.JPY
3941
import static org.prebid.server.functional.model.Currency.USD
40-
import static org.prebid.server.functional.model.bidder.BidderName.ALIAS
4142
import static org.prebid.server.functional.model.bidder.BidderName.ALIAS_UPPER_CASE
4243
import static org.prebid.server.functional.model.bidder.BidderName.AMX
4344
import static org.prebid.server.functional.model.bidder.BidderName.APPNEXUS
@@ -1740,4 +1741,53 @@ class BidderParamsSpec extends BaseSpec {
17401741
cleanup: "Stop and remove pbs container"
17411742
pbsServiceFactory.removeContainer(pbsConfig)
17421743
}
1744+
1745+
def "PBS should merge stored imp with appnexus bidder requested when reserve field specified"() {
1746+
given: "Pbs default config with appnexus"
1747+
def pbsConfig = ["adapters.${APPNEXUS.value}.enabled" : "true",
1748+
"adapters.${APPNEXUS.value}.endpoint": "$networkServiceContainer.rootUri/auction".toString()]
1749+
def defaultPbsService = pbsServiceFactory.getService(pbsConfig)
1750+
1751+
and: "Default stored request with specified stored imps and request"
1752+
def storedRequestId = PBSUtils.randomString
1753+
def bidRequest = BidRequest.getDefaultBidRequest().tap {
1754+
imp[0].ext.prebid.bidder.generic = null
1755+
imp[0].ext.prebid.bidder.appNexus = AppNexus.getDefault().tap {
1756+
reserve = PBSUtils.getRandomDecimal() as Double
1757+
}
1758+
imp[0].ext.prebid.storedRequest = new PrebidStoredRequest(id: PBSUtils.randomString)
1759+
ext.prebid.storedRequest = new PrebidStoredRequest(id: storedRequestId)
1760+
}
1761+
1762+
and: "Save storedImp into DB"
1763+
def storedImp = StoredImp.getStoredImp(bidRequest).tap {
1764+
impData = Imp.defaultImpression
1765+
}
1766+
storedImpDao.save(storedImp)
1767+
1768+
and: "Save stored request with source.tid and cur"
1769+
def storedBidRequest = new BidRequest(cur: [USD], source: new Source(tid: PBSUtils.randomString))
1770+
def storedRequest = StoredRequest.getStoredRequest(storedRequestId, storedBidRequest)
1771+
storedRequestDao.save(storedRequest)
1772+
1773+
and: "Default basic bid with bid.ext"
1774+
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest, APPNEXUS).tap {
1775+
seatbid[0].bid[0].ext = new BidExt()
1776+
}
1777+
bidder.setResponse(bidRequest.id, bidResponse)
1778+
1779+
when: "PBS processes auction request"
1780+
def response = defaultPbsService.sendAuctionRequest(bidRequest)
1781+
1782+
then: "Bid response should contain appnexus and generic bidder"
1783+
assert response.seatbid.size() == 2
1784+
assert response.seatbid.seat.sort() == [APPNEXUS, BidderName.GENERIC].sort()
1785+
1786+
and: "Bidder requests should perform two bidder call"
1787+
def bidderRequests = bidder.getBidderRequests(bidRequest.id)
1788+
assert bidderRequests.size() == 2
1789+
1790+
cleanup: "Stop and remove pbs container"
1791+
pbsServiceFactory.removeContainer(pbsConfig)
1792+
}
17431793
}

0 commit comments

Comments
 (0)