Skip to content

Commit e17e46b

Browse files
Trimming publisher ID before passing in Pubmatic bidder (prebid#1163)
1 parent 97ea117 commit e17e46b

File tree

3 files changed

+36
-14
lines changed

3 files changed

+36
-14
lines changed

src/main/java/org/prebid/server/bidder/pubmatic/PubmaticBidder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ private HttpRequest<BidRequest> makeRequest(BidRequest bidRequest, List<Imp> imp
202202
final String pubId = extImpPubmatics.stream()
203203
.map(ExtImpPubmatic::getPublisherId)
204204
.filter(Objects::nonNull)
205+
.map(String::trim)
205206
.findFirst().orElse(null);
206207

207208
if (bidRequest.getSite() != null) {

src/test/java/org/prebid/server/bidder/pubmatic/PubmaticBidderTest.java

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ public void makeHttpRequestsShouldSetAudioToNullIfPresent() {
208208
// then
209209
assertThat(result.getErrors()).isEmpty();
210210
assertThat(result.getValue()).hasSize(1)
211-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
211+
.extracting(HttpRequest::getPayload)
212212
.flatExtracting(BidRequest::getImp)
213213
.extracting(Imp::getAudio).containsNull();
214214
}
@@ -224,12 +224,12 @@ public void makeHttpRequestsShouldSetBannerWidthAndHeightFromAdSlot() {
224224
// then
225225
assertThat(result.getErrors()).isEmpty();
226226
assertThat(result.getValue()).hasSize(1)
227-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
227+
.extracting(HttpRequest::getPayload)
228228
.flatExtracting(BidRequest::getImp)
229229
.extracting(Imp::getBanner)
230230
.extracting(Banner::getH).containsOnly(250);
231231
assertThat(result.getValue())
232-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
232+
.extracting(HttpRequest::getPayload)
233233
.flatExtracting(BidRequest::getImp)
234234
.extracting(Imp::getBanner)
235235
.extracting(Banner::getW).containsOnly(300);
@@ -246,7 +246,7 @@ public void makeHttpRequestsShouldSetImpExtNullIfKeywordsAreNull() {
246246
// then
247247
assertThat(result.getErrors()).isEmpty();
248248
assertThat(result.getValue()).hasSize(1)
249-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
249+
.extracting(HttpRequest::getPayload)
250250
.flatExtracting(BidRequest::getImp)
251251
.extracting(Imp::getExt).containsNull();
252252
}
@@ -264,7 +264,7 @@ public void makeHttpRequestsShouldSetImpExtNullIfKeywordsAreEmpty() {
264264
// then
265265
assertThat(result.getErrors()).isEmpty();
266266
assertThat(result.getValue()).hasSize(1)
267-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
267+
.extracting(HttpRequest::getPayload)
268268
.flatExtracting(BidRequest::getImp)
269269
.extracting(Imp::getExt).containsNull();
270270
}
@@ -284,7 +284,7 @@ public void makeHttpRequestsShouldSetImpExtFromKeywords() throws IOException {
284284
// then
285285
assertThat(result.getErrors()).isEmpty();
286286
assertThat(result.getValue()).hasSize(1)
287-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
287+
.extracting(HttpRequest::getPayload)
288288
.flatExtracting(BidRequest::getImp)
289289
.extracting(Imp::getExt)
290290
.containsOnly(mapper.readValue("{\"key2\":\"value1,value2\"}", ObjectNode.class));
@@ -306,7 +306,7 @@ public void makeHttpRequestsShouldSetImpExtFromKeywordsSkippingKeysWithEmptyValu
306306
// then
307307
assertThat(result.getErrors()).isEmpty();
308308
assertThat(result.getValue()).hasSize(1)
309-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
309+
.extracting(HttpRequest::getPayload)
310310
.flatExtracting(BidRequest::getImp)
311311
.extracting(Imp::getExt)
312312
.containsOnly(mapper.readValue("{\"key2\":\"value1,value2\"}", ObjectNode.class));
@@ -326,7 +326,7 @@ public void makeHttpRequestsShouldSetRequestExtFromWrapExt() {
326326
// then
327327
assertThat(result.getErrors()).isEmpty();
328328
assertThat(result.getValue()).hasSize(1)
329-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
329+
.extracting(HttpRequest::getPayload)
330330
.extracting(BidRequest::getExt)
331331
.containsOnly(jacksonMapper.fillExtension(
332332
ExtRequest.empty(), PubmaticRequestExt.of(mapper.valueToTree(singletonMap("key", 1)))));
@@ -346,7 +346,7 @@ public void makeHttpRequestsShouldNotChangeExtIfWrapExtIsMissing() {
346346
// then
347347
assertThat(result.getErrors()).isEmpty();
348348
assertThat(result.getValue()).hasSize(1)
349-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
349+
.extracting(HttpRequest::getPayload)
350350
.extracting(BidRequest::getExt)
351351
.containsOnly(ExtRequest.empty());
352352
}
@@ -365,13 +365,34 @@ public void makeHttpRequestsShouldSetSitePublisherIdFromImpExtPublisherId() {
365365
// then
366366
assertThat(result.getErrors()).isEmpty();
367367
assertThat(result.getValue()).hasSize(1)
368-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
368+
.extracting(HttpRequest::getPayload)
369369
.extracting(BidRequest::getSite)
370370
.extracting(Site::getPublisher)
371371
.extracting(Publisher::getId)
372372
.containsOnly("pub id");
373373
}
374374

375+
@Test
376+
public void makeHttpRequestsShouldSetTrimmedImpExtPublisherId() {
377+
// given
378+
final BidRequest bidRequest = givenBidRequest(
379+
bidRequestBuilder -> bidRequestBuilder.site(Site.builder().build()),
380+
identity(),
381+
extImpPubmaticBuilder -> extImpPubmaticBuilder.publisherId(" pubId "));
382+
383+
// when
384+
final Result<List<HttpRequest<BidRequest>>> result = pubmaticBidder.makeHttpRequests(bidRequest);
385+
386+
// then
387+
assertThat(result.getErrors()).isEmpty();
388+
assertThat(result.getValue()).hasSize(1)
389+
.extracting(HttpRequest::getPayload)
390+
.extracting(BidRequest::getSite)
391+
.extracting(Site::getPublisher)
392+
.extracting(Publisher::getId)
393+
.containsOnly("pubId");
394+
}
395+
375396
@Test
376397
public void makeHttpRequestsShouldNotSetAppPublisherIdIfSiteIsNotNull() {
377398
// given
@@ -388,7 +409,7 @@ public void makeHttpRequestsShouldNotSetAppPublisherIdIfSiteIsNotNull() {
388409
// then
389410
assertThat(result.getErrors()).isEmpty();
390411
assertThat(result.getValue()).hasSize(1)
391-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
412+
.extracting(HttpRequest::getPayload)
392413
.extracting(BidRequest::getApp)
393414
.extracting(App::getId)
394415
.containsNull();
@@ -408,7 +429,7 @@ public void makeHttpRequestsShouldSetAppPublisherIdIfSiteIsNull() {
408429
// then
409430
assertThat(result.getErrors()).isEmpty();
410431
assertThat(result.getValue()).hasSize(1)
411-
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
432+
.extracting(HttpRequest::getPayload)
412433
.extracting(BidRequest::getApp)
413434
.extracting(App::getPublisher)
414435
.extracting(Publisher::getId)

src/test/resources/org/prebid/server/it/openrtb2/pubmatic/test-auction-pubmatic-request.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"ext": {
1717
"pubmatic": {
1818
"adSlot": "slot9@300x250:zzz",
19-
"publisherId": "publisherId",
19+
"publisherId": " publisherId ",
2020
"keywords": [{
2121
"key": "pmZoneID",
2222
"value": ["Zone1", "Zone2"]
@@ -111,4 +111,4 @@
111111
"gdpr": 0
112112
}
113113
}
114-
}
114+
}

0 commit comments

Comments
 (0)