From f6d8a141dd4dd04ebce2787629d20a5c316eedea Mon Sep 17 00:00:00 2001 From: Kenan Gillet Date: Fri, 28 Feb 2020 14:42:58 -0800 Subject: [PATCH] openx adapter: forward bid response currency in openx adapter if set it was always set to the default USD before --- adapters/openx/openx.go | 5 +++++ adapters/openx/openx_test.go | 37 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/adapters/openx/openx.go b/adapters/openx/openx.go index dd176813820..63e8e697869 100644 --- a/adapters/openx/openx.go +++ b/adapters/openx/openx.go @@ -169,6 +169,11 @@ func (a *OpenxAdapter) MakeBids(internalRequest *openrtb.BidRequest, externalReq bidResponse := adapters.NewBidderResponseWithBidsCapacity(5) + // overrride default currency + if bidResp.Cur != "" { + bidResponse.Currency = bidResp.Cur + } + for _, sb := range bidResp.SeatBid { for i := range sb.Bid { bidResponse.Bids = append(bidResponse.Bids, &adapters.TypedBid{ diff --git a/adapters/openx/openx_test.go b/adapters/openx/openx_test.go index f7765d846ad..f79eb062531 100644 --- a/adapters/openx/openx_test.go +++ b/adapters/openx/openx_test.go @@ -1,11 +1,48 @@ package openx import ( + "encoding/json" "testing" + "github.com/mxmCherry/openrtb" + "github.com/prebid/prebid-server/adapters" "github.com/prebid/prebid-server/adapters/adapterstest" + "github.com/stretchr/testify/assert" ) func TestJsonSamples(t *testing.T) { adapterstest.RunJSONBidderTest(t, "openxtest", NewOpenxBidder("http://rtb.openx.net/prebid")) } + +func TestResponseWithCurrencies(t *testing.T) { + assertCurrencyInBidResponse(t, "USD", nil) + + currency := "USD" + assertCurrencyInBidResponse(t, "USD", ¤cy) + + currency = "EUR" + assertCurrencyInBidResponse(t, "EUR", ¤cy) +} + +func assertCurrencyInBidResponse(t *testing.T, expectedCurrency string, currency *string) { + + bidder := NewOpenxBidder("http://rtb.openx.net/prebid") + prebidRequest := &openrtb.BidRequest{ + Imp: []openrtb.Imp{}, + } + mockedBidResponse := &openrtb.BidResponse{} + if currency != nil { + mockedBidResponse.Cur = *currency + } + body, _ := json.Marshal(mockedBidResponse) + responseData := &adapters.ResponseData{ + StatusCode: 200, + Body: body, + } + bidResponse, errs := bidder.MakeBids(prebidRequest, nil, responseData) + + if errs != nil { + t.Fatalf("Failed to make bids %v", errs) + } + assert.Equal(t, expectedCurrency, bidResponse.Currency) +}