2626import org .mockito .Mock ;
2727import org .mockito .junit .jupiter .MockitoExtension ;
2828import org .prebid .server .VertxTest ;
29- import org .prebid .server .bidder .ix .model .request .IxDiag ;
3029import org .prebid .server .bidder .ix .model .response .AuctionConfigExtBidResponse ;
3130import org .prebid .server .bidder .ix .model .response .IxBidResponse ;
3231import org .prebid .server .bidder .ix .model .response .IxExtBidResponse ;
@@ -191,8 +190,10 @@ public void makeHttpRequestsShouldReturnIxDiagWithPbjsVersionIfRequestExtPrebidC
191190 .extracting (HttpRequest ::getPayload )
192191 .extracting (BidRequest ::getExt )
193192 .extracting (ext -> ext .getProperty ("ixdiag" ))
194- .extracting (diagNode -> mapper .treeToValue (diagNode , IxDiag .class ))
195- .containsExactly (IxDiag .of (null , "pbjsv" , null ));
193+ .containsExactly (mapper .createObjectNode ()
194+ .put ("pbsv" , "unknown" )
195+ .put ("pbjsv" , "pbjsv" )
196+ .put ("pbsp" , "java" ));
196197 }
197198
198199 @ Test
@@ -210,8 +211,9 @@ public void makeHttpRequestsShouldReturnIxDiagWithPbsVersion() {
210211 .extracting (HttpRequest ::getPayload )
211212 .extracting (BidRequest ::getExt )
212213 .extracting (ext -> ext .getProperty ("ixdiag" ))
213- .extracting (diagNode -> mapper .treeToValue (diagNode , IxDiag .class ))
214- .containsExactly (IxDiag .of ("pbsv" , null , null ));
214+ .containsExactly (mapper .createObjectNode ()
215+ .put ("pbsv" , "pbsv" )
216+ .put ("pbsp" , "java" ));
215217 }
216218
217219 @ Test
@@ -230,8 +232,51 @@ public void makeHttpRequestsShouldReturnIxDiagWithMultipleSiteIdsWhenMultipleImp
230232 .extracting (HttpRequest ::getPayload )
231233 .extracting (BidRequest ::getExt )
232234 .extracting (ext -> ext .getProperty ("ixdiag" ))
233- .extracting (diagNode -> mapper .treeToValue (diagNode , IxDiag .class ))
234- .containsExactly (IxDiag .of (null , null , "site1, site2" ));
235+ .containsExactly (mapper .createObjectNode ()
236+ .put ("pbsv" , "unknown" )
237+ .put ("pbsp" , "java" )
238+ .put ("multipleSiteIds" , "site1, site2" ));
239+ }
240+
241+ @ Test
242+ public void makeHttpRequestsShouldPassThroughProvidedIxDiagFields () {
243+ // given
244+ given (prebidVersionProvider .getNameVersionRecord ()).willReturn ("pbsv1" );
245+ final ObjectNode givenIxDiag = mapper .createObjectNode ();
246+ givenIxDiag .put ("pbsv" , "pbsv2" );
247+ givenIxDiag .put ("pbjsv" , "pbjsv2" );
248+ givenIxDiag .put ("pbsp" , "go" );
249+ givenIxDiag .put ("multipleSiteIds" , "site1" );
250+ givenIxDiag .put ("property1" , "value" );
251+ givenIxDiag .put ("property2" , 1 );
252+
253+ final BidRequest bidRequest = givenBidRequest (
254+ bidRequestBuilder -> bidRequestBuilder .ext (givenExtRequestWithIxDiag (
255+ "pbjsv1" ,
256+ givenIxDiag )),
257+ List .of (
258+ impBuilder -> impBuilder .ext (givenImpExt ("site1" , null )),
259+ impBuilder -> impBuilder .ext (givenImpExt ("site2" , null ))));
260+
261+ // when
262+ final Result <List <HttpRequest <BidRequest >>> result = target .makeHttpRequests (bidRequest );
263+
264+ // then
265+ assertThat (result .getErrors ()).isEmpty ();
266+
267+ final ObjectNode expectedIxDiag = mapper .createObjectNode ();
268+ expectedIxDiag .put ("pbsv" , "pbsv1" );
269+ expectedIxDiag .put ("pbjsv" , "pbjsv1" );
270+ expectedIxDiag .put ("pbsp" , "java" );
271+ expectedIxDiag .put ("multipleSiteIds" , "site1, site2" );
272+ expectedIxDiag .put ("property1" , "value" );
273+ expectedIxDiag .put ("property2" , 1 );
274+
275+ assertThat (result .getValue ())
276+ .extracting (HttpRequest ::getPayload )
277+ .extracting (BidRequest ::getExt )
278+ .extracting (ext -> ext .getProperty ("ixdiag" ))
279+ .containsExactly (expectedIxDiag );
235280 }
236281
237282 @ Test
@@ -886,6 +931,12 @@ private static ExtRequest givenExtRequest(String pbjsv) {
886931 .build ());
887932 }
888933
934+ private static ExtRequest givenExtRequestWithIxDiag (String pbjsv , ObjectNode ixDiag ) {
935+ final ExtRequest extRequest = givenExtRequest (pbjsv );
936+ extRequest .addProperty ("ixdiag" , ixDiag );
937+ return extRequest ;
938+ }
939+
889940 private static ObjectNode givenImpExt (String siteId , String sid ) {
890941 return mapper .valueToTree (ExtPrebid .of (null , ExtImpIx .of (siteId , null , sid )));
891942 }
0 commit comments