diff --git a/src/main/java/org/prebid/server/bidder/ix/IxBidder.java b/src/main/java/org/prebid/server/bidder/ix/IxBidder.java index 5770772c1bd..fcfc8a729a3 100644 --- a/src/main/java/org/prebid/server/bidder/ix/IxBidder.java +++ b/src/main/java/org/prebid/server/bidder/ix/IxBidder.java @@ -146,12 +146,13 @@ private UpdateResult modifyImpBanner(Banner banner) { final List formats = banner.getFormat(); final Integer w = banner.getW(); final Integer h = banner.getH(); + final boolean hasNoFormats = CollectionUtils.isEmpty(formats); - if (CollectionUtils.isEmpty(formats) && h != null && w != null) { + if (hasNoFormats && h != null && w != null) { final List newFormats = Collections.singletonList(Format.builder().w(w).h(h).build()); final Banner modifiedBanner = banner.toBuilder().format(newFormats).build(); return UpdateResult.updated(modifiedBanner); - } else if (formats.size() == 1) { + } else if (!hasNoFormats && formats.size() == 1) { final Format format = formats.getFirst(); final Banner modifiedBanner = banner.toBuilder().w(format.getW()).h(format.getH()).build(); return UpdateResult.updated(modifiedBanner); diff --git a/src/test/java/org/prebid/server/bidder/ix/IxBidderTest.java b/src/test/java/org/prebid/server/bidder/ix/IxBidderTest.java index 051077ab03e..f1138e83133 100644 --- a/src/test/java/org/prebid/server/bidder/ix/IxBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/ix/IxBidderTest.java @@ -148,6 +148,32 @@ public void makeHttpRequestsShouldSetImpBannerFormatsToFormatWithWidthAndHeightI .containsExactly(expectedBanner); } + @Test + public void makeHttpRequestsShouldSetImpBannerFormatsToFormatWithWidthAndHeightIfFormatsAreNullList() { + // given + final BidRequest bidRequest = givenBidRequest( + impBuilder -> impBuilder + .banner(Banner.builder().w(1).h(2).format(null).build()) + .ext(givenImpExt(null, null))); + + // when + final Result>> result = target.makeHttpRequests(bidRequest); + + // then + assertThat(result.getErrors()).isEmpty(); + final Banner expectedBanner = Banner.builder() + .w(1) + .h(2) + .format(singletonList(Format.builder().w(1).h(2).build())) + .build(); + + assertThat(result.getValue()) + .extracting(HttpRequest::getPayload) + .flatExtracting(BidRequest::getImp) + .extracting(Imp::getBanner) + .containsExactly(expectedBanner); + } + @Test public void makeHttpRequestsShouldSetImpBannerWidthAndHeightIfTheyAreAbsentAndBannerHasOnlyOneFormat() { // given