|
55 | 55 | import java.util.function.UnaryOperator; |
56 | 56 |
|
57 | 57 | import static java.util.Arrays.asList; |
| 58 | +import static java.util.Collections.emptyList; |
58 | 59 | import static java.util.Collections.singletonList; |
59 | 60 | import static java.util.function.UnaryOperator.identity; |
60 | 61 | import static org.assertj.core.api.Assertions.assertThat; |
@@ -540,6 +541,86 @@ public void makeBidderResponseShouldReturnAdmContainingImpTrackersAndEventImpTra |
540 | 541 | .containsExactly(mapper.writeValueAsString(expectedNativeResponse)); |
541 | 542 | } |
542 | 543 |
|
| 544 | + @Test |
| 545 | + public void makeBidderResponseShouldReturnAdmContainingEventImpTrackersUrlsWhenImpTrackersAreNull() |
| 546 | + throws JsonProcessingException { |
| 547 | + // given |
| 548 | + final String adm = mapper.writeValueAsString( |
| 549 | + Response.builder() |
| 550 | + .eventtrackers(singletonList( |
| 551 | + EventTracker.builder() |
| 552 | + .event(EventType.IMPRESSION.getValue()) |
| 553 | + .url("eventUrl") |
| 554 | + .build())) |
| 555 | + .build()); |
| 556 | + final BidRequest bidRequest = BidRequest.builder() |
| 557 | + .imp(singletonList(Imp.builder().id("123").xNative(Native.builder().build()).build())) |
| 558 | + .build(); |
| 559 | + final BidderCall<BidRequest> httpCall = givenHttpCall( |
| 560 | + bidRequest, |
| 561 | + mapper.writeValueAsString(givenBidResponse(bidBuilder -> bidBuilder |
| 562 | + .impid("123") |
| 563 | + .adm(adm)))); |
| 564 | + |
| 565 | + // when |
| 566 | + final CompositeBidderResponse result = target.makeBidderResponse(httpCall, bidRequest); |
| 567 | + |
| 568 | + // then |
| 569 | + final Response expectedNativeResponse = Response.builder() |
| 570 | + .imptrackers(asList("eventUrl")) |
| 571 | + .eventtrackers(singletonList(EventTracker.builder() |
| 572 | + .event(EventType.IMPRESSION.getValue()) |
| 573 | + .url("eventUrl") |
| 574 | + .build())) |
| 575 | + .build(); |
| 576 | + |
| 577 | + assertThat(result.getErrors()).isEmpty(); |
| 578 | + assertThat(result.getBids()) |
| 579 | + .extracting(BidderBid::getBid) |
| 580 | + .extracting(Bid::getAdm) |
| 581 | + .containsExactly(mapper.writeValueAsString(expectedNativeResponse)); |
| 582 | + } |
| 583 | + |
| 584 | + @Test |
| 585 | + public void makeBidderResponseShouldReturnAdmWithoutImpTrackers() |
| 586 | + throws JsonProcessingException { |
| 587 | + // given |
| 588 | + final String adm = mapper.writeValueAsString( |
| 589 | + Response.builder() |
| 590 | + .eventtrackers(singletonList( |
| 591 | + EventTracker.builder() |
| 592 | + .event(EventType.VIEWABLE_VIDEO50.getValue()) |
| 593 | + .url("eventUrl") |
| 594 | + .build())) |
| 595 | + .build()); |
| 596 | + final BidRequest bidRequest = BidRequest.builder() |
| 597 | + .imp(singletonList(Imp.builder().id("123").xNative(Native.builder().build()).build())) |
| 598 | + .build(); |
| 599 | + final BidderCall<BidRequest> httpCall = givenHttpCall( |
| 600 | + bidRequest, |
| 601 | + mapper.writeValueAsString(givenBidResponse(bidBuilder -> bidBuilder |
| 602 | + .impid("123") |
| 603 | + .adm(adm)))); |
| 604 | + |
| 605 | + // when |
| 606 | + final CompositeBidderResponse result = target.makeBidderResponse(httpCall, bidRequest); |
| 607 | + |
| 608 | + // then |
| 609 | + final Response expectedNativeResponse = Response.builder() |
| 610 | + .imptrackers(emptyList()) |
| 611 | + .eventtrackers(singletonList(EventTracker.builder() |
| 612 | + .event(EventType.VIEWABLE_VIDEO50.getValue()) |
| 613 | + .url("eventUrl") |
| 614 | + .build())) |
| 615 | + .build(); |
| 616 | + |
| 617 | + assertThat(result.getErrors()).isEmpty(); |
| 618 | + assertThat(result.getBids()) |
| 619 | + .extracting(BidderBid::getBid) |
| 620 | + .extracting(Bid::getAdm) |
| 621 | + .containsExactly(mapper.writeValueAsString(expectedNativeResponse)); |
| 622 | + } |
| 623 | + |
543 | 624 | @Test |
544 | 625 | public void makeBidderResponseShouldReturnAdmContainingOnlyUniqueImpTrackersUrls() throws JsonProcessingException { |
545 | 626 | // given |
|
0 commit comments