plugin/manager_test.go
dafeeac4
 package plugin
 
 import (
 	"testing"
 
 	"github.com/docker/docker/api/types"
 )
 
 func TestValidatePrivileges(t *testing.T) {
 	testData := map[string]struct {
 		requiredPrivileges types.PluginPrivileges
 		privileges         types.PluginPrivileges
 		result             bool
 	}{
 		"diff-len": {
 			requiredPrivileges: []types.PluginPrivilege{
2333b39b
 				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}},
dafeeac4
 			},
 			privileges: []types.PluginPrivilege{
2333b39b
 				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}},
 				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
dafeeac4
 			},
 			result: false,
 		},
 		"diff-value": {
 			requiredPrivileges: []types.PluginPrivilege{
2333b39b
 				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}},
 				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "***"}},
dafeeac4
 			},
 			privileges: []types.PluginPrivilege{
2333b39b
 				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}},
 				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
dafeeac4
 			},
 			result: false,
 		},
 		"diff-order-but-same-value": {
 			requiredPrivileges: []types.PluginPrivilege{
2333b39b
 				{Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}},
 				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
dafeeac4
 			},
 			privileges: []types.PluginPrivilege{
2333b39b
 				{Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}},
 				{Name: "Privilege1", Description: "Description", Value: []string{"GHI", "abc", "def"}},
dafeeac4
 			},
 			result: true,
 		},
 	}
 
 	for key, data := range testData {
 		err := validatePrivileges(data.requiredPrivileges, data.privileges)
 		if (err == nil) != data.result {
 			t.Fatalf("Test item %s expected result to be %t, got %t", key, data.result, (err == nil))
 		}
 	}
 }