Skip to content

Commit 0f62f16

Browse files
committed
Add units
1 parent e73a6b0 commit 0f62f16

9 files changed

Lines changed: 314 additions & 59 deletions

File tree

src/test/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleanerTest.java

Lines changed: 312 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,22 @@
1010
import org.prebid.server.auction.model.BidderRequest;
1111
import org.prebid.server.bidder.model.Result;
1212
import org.prebid.server.proto.openrtb.ext.request.ExtRequest;
13+
import org.prebid.server.proto.openrtb.ext.request.ExtRequestBidAdjustmentFactors;
1314
import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebid;
15+
import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidAlternateBidderCodes;
16+
import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidAlternateBidderCodesBidder;
17+
import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidCache;
18+
import org.prebid.server.proto.openrtb.ext.request.ImpMediaType;
1419

20+
import java.math.BigDecimal;
21+
import java.util.EnumMap;
22+
import java.util.Map;
23+
import java.util.function.UnaryOperator;
24+
25+
import static java.util.Collections.emptyList;
26+
import static java.util.Collections.emptyMap;
27+
import static java.util.Collections.singleton;
28+
import static java.util.function.UnaryOperator.identity;
1529
import static org.assertj.core.api.Assertions.assertThat;
1630

1731
@ExtendWith(MockitoExtension.class)
@@ -29,7 +43,7 @@ public void setUp() {
2943
@Test
3044
public void processShouldReturnSameRequest() {
3145
// given
32-
final BidderRequest bidderRequest = givenBidderRequest(null);
46+
final BidderRequest bidderRequest = givenBidderRequest(identity());
3347

3448
// when
3549
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
@@ -40,9 +54,243 @@ public void processShouldReturnSameRequest() {
4054
}
4155

4256
@Test
43-
public void processShouldReturnCleanedRequest() {
57+
public void processShouldCleanBidAdjustmentFactors() {
58+
// given
59+
final EnumMap<ImpMediaType, Map<String, BigDecimal>> mediaTypes = new EnumMap<>(ImpMediaType.class);
60+
mediaTypes.put(ImpMediaType.banner, Map.of("other", BigDecimal.ONE));
61+
mediaTypes.put(ImpMediaType.video, Map.of(
62+
"other", BigDecimal.ONE,
63+
"biddEr", BigDecimal.ONE));
64+
final ExtRequestBidAdjustmentFactors factors = ExtRequestBidAdjustmentFactors.builder()
65+
.mediatypes(mediaTypes)
66+
.build();
67+
factors.addFactor("bIdder", BigDecimal.ONE);
68+
69+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustmentfactors(factors));
70+
71+
// when
72+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
73+
74+
// then
75+
assertThat(result.getValue())
76+
.extracting(BidderRequest::getBidRequest)
77+
.extracting(BidRequest::getExt)
78+
.extracting(ExtRequest::getPrebid)
79+
.extracting(ExtRequestPrebid::getBidadjustmentfactors)
80+
.satisfies(factorsResult -> {
81+
assertThat(factorsResult.getAdjustments()).containsExactly(Map.entry("bIdder", BigDecimal.ONE));
82+
assertThat(factorsResult.getMediatypes()).containsExactly(
83+
Map.entry(ImpMediaType.video, Map.of("biddEr", BigDecimal.ONE)));
84+
});
85+
assertThat(result.getErrors()).isEmpty();
86+
}
87+
88+
@Test
89+
public void processShouldRemoveBidAdjustmentFactors() {
90+
// given
91+
final EnumMap<ImpMediaType, Map<String, BigDecimal>> mediaTypes = new EnumMap<>(ImpMediaType.class);
92+
mediaTypes.put(ImpMediaType.banner, Map.of("other", BigDecimal.ONE));
93+
final ExtRequestBidAdjustmentFactors factors = ExtRequestBidAdjustmentFactors.builder()
94+
.mediatypes(mediaTypes)
95+
.build();
96+
factors.addFactor("other", BigDecimal.ONE);
97+
98+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustmentfactors(factors));
99+
100+
// when
101+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
102+
103+
// then
104+
assertThat(result.getValue())
105+
.extracting(BidderRequest::getBidRequest)
106+
.extracting(BidRequest::getExt)
107+
.extracting(ExtRequest::getPrebid)
108+
.extracting(ExtRequestPrebid::getBidadjustmentfactors)
109+
.isNull();
110+
assertThat(result.getErrors()).isEmpty();
111+
}
112+
113+
@Test
114+
public void processShouldCleanBidAdjustments() {
115+
// given
116+
final ObjectNode bidAdjustments = mapper.valueToTree(Map.of(
117+
"banner", Map.of("other", 1),
118+
"video", Map.of("other", 1, "biddEr", 1)));
119+
120+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustments(bidAdjustments));
121+
122+
// when
123+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
124+
125+
// then
126+
assertThat(result.getValue())
127+
.extracting(BidderRequest::getBidRequest)
128+
.extracting(BidRequest::getExt)
129+
.extracting(ExtRequest::getPrebid)
130+
.extracting(ExtRequestPrebid::getBidadjustments)
131+
.isEqualTo(mapper.valueToTree(Map.of("video", Map.of("biddEr", 1))));
132+
assertThat(result.getErrors()).isEmpty();
133+
}
134+
135+
@Test
136+
public void processShouldRemoveBidAdjustments() {
137+
// given
138+
final ObjectNode bidAdjustments = mapper.valueToTree(Map.of("banner", Map.of("other", 1)));
139+
140+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustments(bidAdjustments));
141+
142+
// when
143+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
144+
145+
// then
146+
assertThat(result.getValue())
147+
.extracting(BidderRequest::getBidRequest)
148+
.extracting(BidRequest::getExt)
149+
.extracting(ExtRequest::getPrebid)
150+
.extracting(ExtRequestPrebid::getBidadjustments)
151+
.isNull();
152+
assertThat(result.getErrors()).isEmpty();
153+
}
154+
155+
@Test
156+
public void processShouldCleanAlternateBidderCodes() {
157+
// given
158+
final ExtRequestPrebidAlternateBidderCodes codes = ExtRequestPrebidAlternateBidderCodes.of(
159+
true, Map.of(
160+
"other", ExtRequestPrebidAlternateBidderCodesBidder.of(true, singleton("otherV")),
161+
"biddEr", ExtRequestPrebidAlternateBidderCodesBidder.of(true, singleton("bidderV"))));
162+
163+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.alternateBidderCodes(codes));
164+
165+
// when
166+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
167+
168+
// then
169+
assertThat(result.getValue())
170+
.extracting(BidderRequest::getBidRequest)
171+
.extracting(BidRequest::getExt)
172+
.extracting(ExtRequest::getPrebid)
173+
.extracting(ExtRequestPrebid::getAlternateBidderCodes)
174+
.isEqualTo(ExtRequestPrebidAlternateBidderCodes.of(true, Map.of(
175+
"biddEr", ExtRequestPrebidAlternateBidderCodesBidder.of(true, singleton("bidderV")))));
176+
assertThat(result.getErrors()).isEmpty();
177+
}
178+
179+
@Test
180+
public void processShouldRemoveReturnAllBidStatus() {
181+
// given
182+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.returnallbidstatus(true));
183+
184+
// when
185+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
186+
187+
// then
188+
assertThat(result.getValue())
189+
.extracting(BidderRequest::getBidRequest)
190+
.extracting(BidRequest::getExt)
191+
.extracting(ExtRequest::getPrebid)
192+
.extracting(ExtRequestPrebid::getReturnallbidstatus)
193+
.isNull();
194+
assertThat(result.getErrors()).isEmpty();
195+
}
196+
197+
@Test
198+
public void processShouldRemoveAliasGvlIds() {
199+
// given
200+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.aliasgvlids(emptyMap()));
201+
202+
// when
203+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
204+
205+
// then
206+
assertThat(result.getValue())
207+
.extracting(BidderRequest::getBidRequest)
208+
.extracting(BidRequest::getExt)
209+
.extracting(ExtRequest::getPrebid)
210+
.extracting(ExtRequestPrebid::getAliasgvlids)
211+
.isNull();
212+
assertThat(result.getErrors()).isEmpty();
213+
}
214+
215+
@Test
216+
public void processShouldRemoveAdServerTargeting() {
217+
// given
218+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.adservertargeting(emptyList()));
219+
220+
// when
221+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
222+
223+
// then
224+
assertThat(result.getValue())
225+
.extracting(BidderRequest::getBidRequest)
226+
.extracting(BidRequest::getExt)
227+
.extracting(ExtRequest::getPrebid)
228+
.extracting(ExtRequestPrebid::getAdservertargeting)
229+
.isNull();
230+
assertThat(result.getErrors()).isEmpty();
231+
}
232+
233+
@Test
234+
public void processShouldRemoveCache() {
235+
// given
236+
final BidderRequest bidderRequest = givenBidderRequest(
237+
extPrebid -> extPrebid.cache(ExtRequestPrebidCache.EMPTY));
238+
239+
// when
240+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
241+
242+
// then
243+
assertThat(result.getValue())
244+
.extracting(BidderRequest::getBidRequest)
245+
.extracting(BidRequest::getExt)
246+
.extracting(ExtRequest::getPrebid)
247+
.extracting(ExtRequestPrebid::getCache)
248+
.isNull();
249+
assertThat(result.getErrors()).isEmpty();
250+
}
251+
252+
@Test
253+
public void processShouldRemoveEvents() {
254+
// given
255+
final BidderRequest bidderRequest = givenBidderRequest(
256+
extPrebid -> extPrebid.events(mapper.createObjectNode()));
257+
258+
// when
259+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
260+
261+
// then
262+
assertThat(result.getValue())
263+
.extracting(BidderRequest::getBidRequest)
264+
.extracting(BidRequest::getExt)
265+
.extracting(ExtRequest::getPrebid)
266+
.extracting(ExtRequestPrebid::getEvents)
267+
.isNull();
268+
assertThat(result.getErrors()).isEmpty();
269+
}
270+
271+
@Test
272+
public void processShouldRemoveNoSale() {
273+
// given
274+
final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.nosale(emptyList()));
275+
276+
// when
277+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
278+
279+
// then
280+
assertThat(result.getValue())
281+
.extracting(BidderRequest::getBidRequest)
282+
.extracting(BidRequest::getExt)
283+
.extracting(ExtRequest::getPrebid)
284+
.extracting(ExtRequestPrebid::getNosale)
285+
.isNull();
286+
assertThat(result.getErrors()).isEmpty();
287+
}
288+
289+
@Test
290+
public void processShouldRemoveBidderControls() {
44291
// given
45-
final BidderRequest bidderRequest = givenBidderRequest(mapper.createObjectNode());
292+
final BidderRequest bidderRequest = givenBidderRequest(
293+
extPrebid -> extPrebid.biddercontrols(mapper.createObjectNode()));
46294

47295
// when
48296
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
@@ -57,12 +305,69 @@ public void processShouldReturnCleanedRequest() {
57305
assertThat(result.getErrors()).isEmpty();
58306
}
59307

60-
private static BidderRequest givenBidderRequest(ObjectNode bidderControls) {
308+
@Test
309+
public void processShouldRemoveAnalytics() {
310+
// given
311+
final BidderRequest bidderRequest = givenBidderRequest(
312+
extPrebid -> extPrebid.analytics(mapper.createObjectNode()));
313+
314+
// when
315+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
316+
317+
// then
318+
assertThat(result.getValue())
319+
.extracting(BidderRequest::getBidRequest)
320+
.extracting(BidRequest::getExt)
321+
.extracting(ExtRequest::getPrebid)
322+
.extracting(ExtRequestPrebid::getAnalytics)
323+
.isNull();
324+
assertThat(result.getErrors()).isEmpty();
325+
}
326+
327+
@Test
328+
public void processShouldRemovePassthrough() {
329+
// given
330+
final BidderRequest bidderRequest = givenBidderRequest(
331+
extPrebid -> extPrebid.passthrough(mapper.createObjectNode()));
332+
333+
// when
334+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
335+
336+
// then
337+
assertThat(result.getValue())
338+
.extracting(BidderRequest::getBidRequest)
339+
.extracting(BidRequest::getExt)
340+
.extracting(ExtRequest::getPrebid)
341+
.extracting(ExtRequestPrebid::getPassthrough)
342+
.isNull();
343+
assertThat(result.getErrors()).isEmpty();
344+
}
345+
346+
@Test
347+
public void processShouldRemoveKvps() {
348+
// given
349+
final BidderRequest bidderRequest = givenBidderRequest(
350+
extPrebid -> extPrebid.kvps(mapper.createObjectNode()));
351+
352+
// when
353+
final Result<BidderRequest> result = target.process(bidderRequest, null, null).result();
354+
355+
// then
356+
assertThat(result.getValue())
357+
.extracting(BidderRequest::getBidRequest)
358+
.extracting(BidRequest::getExt)
359+
.extracting(ExtRequest::getPrebid)
360+
.extracting(ExtRequestPrebid::getKvps)
361+
.isNull();
362+
assertThat(result.getErrors()).isEmpty();
363+
}
364+
365+
private static BidderRequest givenBidderRequest(
366+
UnaryOperator<ExtRequestPrebid.ExtRequestPrebidBuilder> extPrebidCustomizer) {
367+
61368
return BidderRequest.builder()
62369
.bidRequest(BidRequest.builder()
63-
.ext(ExtRequest.of(ExtRequestPrebid.builder()
64-
.biddercontrols(bidderControls)
65-
.build()))
370+
.ext(ExtRequest.of(extPrebidCustomizer.apply(ExtRequestPrebid.builder()).build()))
66371
.build())
67372
.bidder(BIDDER)
68373
.build();

src/test/java/org/prebid/server/it/ApplicationTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,14 @@ public void openrtb2MultiBidAuctionShouldRespondWithMoreThanOneBid() throws IOEx
130130

131131
WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/genericAlias-exchange"))
132132
.withRequestBody(equalToJson(
133-
jsonFrom(
134-
"openrtb2/multi_bid/test-genericAlias-bid-request-1.json"
135-
)))
133+
jsonFrom("openrtb2/multi_bid/test-genericAlias-bid-request-1.json")))
136134
.willReturn(aResponse().withBody(jsonFrom(
137135
"openrtb2/multi_bid/test-genericAlias-bid-response-1.json"))));
138136

139137
// pre-bid cache
140138
WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/cache"))
141139
.withRequestBody(equalToBidCacheRequest(
142-
jsonFrom(
143-
"openrtb2/multi_bid/test-cache-generic-genericAlias-request.json"
144-
)))
140+
jsonFrom("openrtb2/multi_bid/test-cache-generic-genericAlias-request.json")))
145141
.willReturn(aResponse()
146142
.withTransformers("cache-response-transformer")
147143
.withTransformerParameter("matcherName",

src/test/resources/org/prebid/server/it/amp/test-generic-bid-request.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,6 @@
104104
"storedrequest": {
105105
"id": "test-amp-stored-request"
106106
},
107-
"cache": {
108-
"bids": {}
109-
},
110107
"auctiontimestamp": 0,
111108
"amp": {
112109
"data": {
@@ -124,13 +121,6 @@
124121
"account": "accountId"
125122
}
126123
},
127-
"adservertargeting": [
128-
{
129-
"key": "static_keyword1",
130-
"source": "static",
131-
"value": "static_value1"
132-
}
133-
],
134124
"channel": {
135125
"name": "amp"
136126
},

0 commit comments

Comments
 (0)