@@ -14,6 +14,8 @@ import (
14
14
mock_metrics "github.com/prebid/prebid-server/v2/modules/pubmatic/openwrap/metrics/mock"
15
15
"github.com/prebid/prebid-server/v2/modules/pubmatic/openwrap/models"
16
16
"github.com/prebid/prebid-server/v2/modules/pubmatic/openwrap/models/nbr"
17
+ "github.com/prebid/prebid-server/v2/modules/pubmatic/openwrap/wakanda"
18
+ "github.com/prebid/prebid-server/v2/openrtb_ext"
17
19
"github.com/prebid/prebid-server/v2/util/ptrutil"
18
20
"github.com/stretchr/testify/assert"
19
21
)
@@ -546,3 +548,204 @@ func TestWloggerRecord_logProfileMetaData(t *testing.T) {
546
548
})
547
549
}
548
550
}
551
+
552
+ func TestSetWakandaWinningBidFlag (t * testing.T ) {
553
+ type args struct {
554
+ wakandaDebug wakanda.WakandaDebug
555
+ response * openrtb2.BidResponse
556
+ }
557
+ tests := []struct {
558
+ name string
559
+ args args
560
+ want wakanda.WakandaDebug
561
+ }{
562
+ {
563
+ name : "all_empty_parameters" ,
564
+ args : args {},
565
+ want : nil ,
566
+ },
567
+ {
568
+ name : "only_wakanda_empty" ,
569
+ args : args {
570
+ wakandaDebug : nil ,
571
+ response : & openrtb2.BidResponse {
572
+ SeatBid : []openrtb2.SeatBid {
573
+ {
574
+ Bid : []openrtb2.Bid {
575
+ {
576
+ Price : 5 ,
577
+ },
578
+ },
579
+ },
580
+ },
581
+ },
582
+ },
583
+ want : nil ,
584
+ },
585
+ {
586
+ name : "only_response_empty" ,
587
+ args : args {
588
+ wakandaDebug : & wakanda.Debug {},
589
+ response : nil ,
590
+ },
591
+ want : & wakanda.Debug {},
592
+ },
593
+ {
594
+ name : "no_seatbid" ,
595
+ args : args {
596
+ wakandaDebug : & wakanda.Debug {},
597
+ response : & openrtb2.BidResponse {},
598
+ },
599
+ want : & wakanda.Debug {},
600
+ },
601
+ {
602
+ name : "no_bid" ,
603
+ args : args {
604
+ wakandaDebug : & wakanda.Debug {},
605
+ response : & openrtb2.BidResponse {
606
+ SeatBid : []openrtb2.SeatBid {
607
+ {},
608
+ },
609
+ },
610
+ },
611
+ want : & wakanda.Debug {},
612
+ },
613
+ {
614
+ name : "no_price" ,
615
+ args : args {
616
+ wakandaDebug : & wakanda.Debug {},
617
+ response : & openrtb2.BidResponse {
618
+ SeatBid : []openrtb2.SeatBid {
619
+ {
620
+ Bid : []openrtb2.Bid {
621
+ {},
622
+ },
623
+ },
624
+ },
625
+ },
626
+ },
627
+ want : & wakanda.Debug {},
628
+ },
629
+ {
630
+ name : "non_zero_price" ,
631
+ args : args {
632
+ wakandaDebug : & wakanda.Debug {},
633
+ response : & openrtb2.BidResponse {
634
+ SeatBid : []openrtb2.SeatBid {
635
+ {
636
+ Bid : []openrtb2.Bid {
637
+ {
638
+ Price : 5 ,
639
+ },
640
+ },
641
+ },
642
+ },
643
+ },
644
+ },
645
+ want : & wakanda.Debug {DebugData : wakanda.DebugData {WinningBid : true }},
646
+ },
647
+ }
648
+ for _ , tt := range tests {
649
+ t .Run (tt .name , func (t * testing.T ) {
650
+ setWakandaWinningBidFlag (tt .args .wakandaDebug , tt .args .response )
651
+ assert .Equal (t , tt .want , tt .args .wakandaDebug )
652
+ })
653
+ }
654
+ }
655
+
656
+ func TestSetWakandaObject (t * testing.T ) {
657
+ type args struct {
658
+ rCtx * models.RequestCtx
659
+ ao * analytics.AuctionObject
660
+ loggerURL string
661
+ }
662
+ testCases := []struct {
663
+ name string
664
+ args args
665
+ want * models.RequestCtx
666
+ }{
667
+ {
668
+ name : "rctx is empty" ,
669
+ args : args {
670
+ rCtx : & models.RequestCtx {},
671
+ ao : & analytics.AuctionObject {},
672
+ loggerURL : "" ,
673
+ },
674
+ want : & models.RequestCtx {},
675
+ },
676
+ {
677
+ name : "wakanda is disabled" ,
678
+ args : args {
679
+ rCtx : & models.RequestCtx {WakandaDebug : & wakanda.Debug {Enabled : false }},
680
+ ao : & analytics.AuctionObject {},
681
+ loggerURL : "" ,
682
+ },
683
+ want : & models.RequestCtx {WakandaDebug : & wakanda.Debug {Enabled : false }},
684
+ },
685
+ {
686
+ name : "wakanda is enabled" ,
687
+ args : args {
688
+ rCtx : & models.RequestCtx {WakandaDebug : & wakanda.Debug {Enabled : true }},
689
+ ao : & analytics.AuctionObject {
690
+ RequestWrapper : & openrtb_ext.RequestWrapper {
691
+ BidRequest : & openrtb2.BidRequest {},
692
+ },
693
+ Response : & openrtb2.BidResponse {},
694
+ },
695
+ loggerURL : "" ,
696
+ },
697
+ want : & models.RequestCtx {WakandaDebug : & wakanda.Debug {Enabled : true , DebugData : wakanda.DebugData {WinningBid : false , HTTPResponseBody : "{\" id\" :\" \" }" , OpenRTB : & openrtb2.BidRequest {}, Logger : json.RawMessage {}}}},
698
+ },
699
+ {
700
+ name : "wakanda enabled with valid flow" ,
701
+ args : args {
702
+ rCtx : & models.RequestCtx {WakandaDebug : & wakanda.Debug {Enabled : true }},
703
+ ao : & analytics.AuctionObject {
704
+ RequestWrapper : & openrtb_ext.RequestWrapper {
705
+ BidRequest : & openrtb2.BidRequest {
706
+ Imp : []openrtb2.Imp {
707
+ {
708
+ ID : "imp_1" ,
709
+ },
710
+ },
711
+ },
712
+ },
713
+ Response : & openrtb2.BidResponse {
714
+ ID : "123" ,
715
+ BidID : "bid-id-1" ,
716
+ Cur : "USD" ,
717
+ SeatBid : []openrtb2.SeatBid {
718
+ {
719
+ Seat : "pubmatic" ,
720
+ Bid : []openrtb2.Bid {
721
+ {
722
+ ID : "bid-id-1" ,
723
+ ImpID : "imp_1" ,
724
+ Price : 5 ,
725
+ Ext : json .RawMessage (`{"signaldata":"{\"id\":\"123\",\"seatbid\":[{\"bid\":[{\"id\":\"bid-id-1\",\"impid\":\"imp_1\",\"price\":5}],\"seat\":\"pubmatic\"}],\"bidid\":\"bid-id-1\",\"cur\":\"USD\",\"ext\":{\"matchedimpression\":{\"appnexus\":50,\"pubmatic\":50}}}\r\n"}` ),
726
+ },
727
+ },
728
+ },
729
+ },
730
+ },
731
+ },
732
+ loggerURL : "" ,
733
+ },
734
+ want : & models.RequestCtx {WakandaDebug : & wakanda.Debug {Enabled : true , DebugData : wakanda.DebugData {WinningBid : true , HTTPResponseBody : "{\" id\" :\" 123\" ,\" seatbid\" :[{\" bid\" :[{\" id\" :\" bid-id-1\" ,\" impid\" :\" imp_1\" ,\" price\" :5,\" ext\" :{\" signaldata\" :\" {\\ \" id\\ \" :\\ \" 123\\ \" ,\\ \" seatbid\\ \" :[{\\ \" bid\\ \" :[{\\ \" id\\ \" :\\ \" bid-id-1\\ \" ,\\ \" impid\\ \" :\\ \" imp_1\\ \" ,\\ \" price\\ \" :5}],\\ \" seat\\ \" :\\ \" pubmatic\\ \" }],\\ \" bidid\\ \" :\\ \" bid-id-1\\ \" ,\\ \" cur\\ \" :\\ \" USD\\ \" ,\\ \" ext\\ \" :{\\ \" matchedimpression\\ \" :{\\ \" appnexus\\ \" :50,\\ \" pubmatic\\ \" :50}}}\\ r\\ n\" }}],\" seat\" :\" pubmatic\" }],\" bidid\" :\" bid-id-1\" ,\" cur\" :\" USD\" }" ,
735
+ Logger : json.RawMessage {},
736
+ OpenRTB : & openrtb2.BidRequest {
737
+ Imp : []openrtb2.Imp {
738
+ {
739
+ ID : "imp_1" ,
740
+ },
741
+ },
742
+ }}}},
743
+ },
744
+ }
745
+ for _ , tt := range testCases {
746
+ t .Run (tt .name , func (t * testing.T ) {
747
+ setWakandaObject (tt .args .rCtx , tt .args .ao , tt .args .loggerURL )
748
+ assert .Equal (t , tt .want , tt .args .rCtx )
749
+ })
750
+ }
751
+ }
0 commit comments