github.com/docker/docker@v299999999.0.0-20200612211812-aaf470eca7b5+incompatible/plugin/manager_test.go (about)

     1  package plugin // import "github.com/docker/docker/plugin"
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/docker/docker/api/types"
     7  )
     8  
     9  func TestValidatePrivileges(t *testing.T) {
    10  	testData := map[string]struct {
    11  		requiredPrivileges types.PluginPrivileges
    12  		privileges         types.PluginPrivileges
    13  		result             bool
    14  	}{
    15  		"diff-len": {
    16  			requiredPrivileges: []types.PluginPrivilege{
    17  				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}},
    18  			},
    19  			privileges: []types.PluginPrivilege{
    20  				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}},
    21  				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
    22  			},
    23  			result: false,
    24  		},
    25  		"diff-value": {
    26  			requiredPrivileges: []types.PluginPrivilege{
    27  				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}},
    28  				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "***"}},
    29  			},
    30  			privileges: []types.PluginPrivilege{
    31  				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}},
    32  				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
    33  			},
    34  			result: false,
    35  		},
    36  		"diff-order-but-same-value": {
    37  			requiredPrivileges: []types.PluginPrivilege{
    38  				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}},
    39  				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
    40  			},
    41  			privileges: []types.PluginPrivilege{
    42  				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
    43  				{Name: "Privilege1", Description: "Description", Value: []string{"GHI", "abc", "def"}},
    44  			},
    45  			result: true,
    46  		},
    47  	}
    48  
    49  	for key, data := range testData {
    50  		err := validatePrivileges(data.requiredPrivileges, data.privileges)
    51  		if (err == nil) != data.result {
    52  			t.Fatalf("Test item %s expected result to be %t, got %t", key, data.result, (err == nil))
    53  		}
    54  	}
    55  }