github.com/prebid/prebid-server@v0.275.0/usersync/bidderfilter_test.go (about)

     1  package usersync
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestSpecificBidderFilter(t *testing.T) {
    10  	bidder := "a"
    11  
    12  	testCases := []struct {
    13  		description string
    14  		bidders     []string
    15  		mode        BidderFilterMode
    16  		expected    bool
    17  	}{
    18  		{
    19  			description: "Include - None",
    20  			bidders:     []string{},
    21  			mode:        BidderFilterModeInclude,
    22  			expected:    false,
    23  		},
    24  		{
    25  			description: "Include - One",
    26  			bidders:     []string{bidder},
    27  			mode:        BidderFilterModeInclude,
    28  			expected:    true,
    29  		},
    30  		{
    31  			description: "Include - Many",
    32  			bidders:     []string{"other", bidder},
    33  			mode:        BidderFilterModeInclude,
    34  			expected:    true,
    35  		},
    36  		{
    37  			description: "Include - Other",
    38  			bidders:     []string{"other"},
    39  			mode:        BidderFilterModeInclude,
    40  			expected:    false,
    41  		},
    42  		{
    43  			description: "Exclude - None",
    44  			bidders:     []string{},
    45  			mode:        BidderFilterModeExclude,
    46  			expected:    true,
    47  		},
    48  		{
    49  			description: "Exclude - One",
    50  			bidders:     []string{bidder},
    51  			mode:        BidderFilterModeExclude,
    52  			expected:    false,
    53  		},
    54  		{
    55  			description: "Exclude - Many",
    56  			bidders:     []string{"other", bidder},
    57  			mode:        BidderFilterModeExclude,
    58  			expected:    false,
    59  		},
    60  		{
    61  			description: "Exclude - Other",
    62  			bidders:     []string{"other"},
    63  			mode:        BidderFilterModeExclude,
    64  			expected:    true,
    65  		},
    66  		{
    67  			description: "Invalid Mode",
    68  			bidders:     []string{bidder},
    69  			mode:        BidderFilterMode(-1),
    70  			expected:    false,
    71  		},
    72  	}
    73  
    74  	for _, test := range testCases {
    75  		filter := NewSpecificBidderFilter(test.bidders, test.mode)
    76  		assert.Equal(t, test.expected, filter.Allowed(bidder), test.description)
    77  	}
    78  }
    79  
    80  func TestUniformBidderFilter(t *testing.T) {
    81  	bidder := "a"
    82  
    83  	testCases := []struct {
    84  		description string
    85  		mode        BidderFilterMode
    86  		expected    bool
    87  	}{
    88  		{
    89  			description: "Include",
    90  			mode:        BidderFilterModeInclude,
    91  			expected:    true,
    92  		},
    93  		{
    94  			description: "Exclude",
    95  			mode:        BidderFilterModeExclude,
    96  			expected:    false,
    97  		},
    98  	}
    99  
   100  	for _, test := range testCases {
   101  		filter := NewUniformBidderFilter(test.mode)
   102  		assert.Equal(t, test.expected, filter.Allowed(bidder), test.description)
   103  	}
   104  }