diff --git a/src/main/java/org/prebid/server/bidder/mobkoi/MobkoiBidder.java b/src/main/java/org/prebid/server/bidder/mobkoi/MobkoiBidder.java index dbf82da1b4f..699f9dca4c6 100644 --- a/src/main/java/org/prebid/server/bidder/mobkoi/MobkoiBidder.java +++ b/src/main/java/org/prebid/server/bidder/mobkoi/MobkoiBidder.java @@ -75,14 +75,14 @@ private ExtImpMobkoi parseExtImp(Imp imp) { } private Imp modifyImp(Imp firstImp, ExtImpMobkoi extImpMobkoi) { - if (StringUtils.isNotBlank(firstImp.getTagid())) { - return firstImp; - } - if (StringUtils.isNotBlank(extImpMobkoi.getPlacementId())) { return firstImp.toBuilder().tagid(extImpMobkoi.getPlacementId()).build(); } + if (StringUtils.isNotBlank(firstImp.getTagid())) { + return firstImp; + } + throw new PreBidException("invalid because it comes with neither request.imp[0].tagId nor " + "req.imp[0].ext.Bidder.placementId"); } diff --git a/src/test/java/org/prebid/server/bidder/mobkoi/MobkoiBidderTest.java b/src/test/java/org/prebid/server/bidder/mobkoi/MobkoiBidderTest.java index 7d46ce2a0a8..027d6ceea69 100644 --- a/src/test/java/org/prebid/server/bidder/mobkoi/MobkoiBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/mobkoi/MobkoiBidderTest.java @@ -91,10 +91,46 @@ public void makeHttpRequestsShouldAddPlacementIdOnlyInFirstImpressionTagId() { assertThat(result.getValue()) .extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class)) .flatExtracting(BidRequest::getImp) - .extracting(imp -> imp.getTagid()) + .extracting(Imp::getTagid) .containsExactly("pid", null); } + @Test + public void makeHttpRequestsShouldOverrideTagIdWithPlacementId() { + // given + final ObjectNode mobkoiExt = impExt("pid"); + final Imp givenImp = givenImp(impBuilder -> impBuilder.tagid("tagId").ext(mobkoiExt)); + final BidRequest bidRequest = BidRequest.builder().imp(asList(givenImp)).build(); + + // when + final Result>> result = target.makeHttpRequests(bidRequest); + + // then + assertThat(result.getValue()) + .extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class)) + .flatExtracting(BidRequest::getImp) + .extracting(Imp::getTagid) + .containsExactly("pid"); + } + + @Test + public void makeHttpRequestsShouldKeepOriginalTagIdWhenPlacementIdMissing() { + // given + final ObjectNode mobkoiExt = impExt(null); + final Imp givenImp = givenImp(impBuilder -> impBuilder.tagid("tagId").ext(mobkoiExt)); + final BidRequest bidRequest = BidRequest.builder().imp(asList(givenImp)).build(); + + // when + final Result>> result = target.makeHttpRequests(bidRequest); + + // then + assertThat(result.getValue()) + .extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class)) + .flatExtracting(BidRequest::getImp) + .extracting(Imp::getTagid) + .containsExactly("tagId"); + } + @Test public void makeHttpRequestsShouldOverrideUserExtAndSetConsent() { // given