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{ {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}}, }, privileges: []types.PluginPrivilege{ {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}}, {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, }, result: false, }, "diff-value": { requiredPrivileges: []types.PluginPrivilege{ {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}}, {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "***"}}, }, privileges: []types.PluginPrivilege{ {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}}, {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, }, result: false, }, "diff-order-but-same-value": { requiredPrivileges: []types.PluginPrivilege{ {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}}, {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, }, privileges: []types.PluginPrivilege{ {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, {Name: "Privilege1", Description: "Description", Value: []string{"GHI", "abc", "def"}}, }, 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)) } } }