github.com/cosmos/cosmos-sdk@v0.50.10/x/auth/types/permissions_test.go (about) 1 package types 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestHasPermission(t *testing.T) { 10 emptyPermAddr := NewPermissionsForAddress("empty", []string{}) 11 has := emptyPermAddr.HasPermission(Minter) 12 require.False(t, has) 13 14 cases := []struct { 15 permission string 16 expectHas bool 17 }{ 18 {Minter, true}, 19 {Burner, true}, 20 {Staking, true}, 21 {"random", false}, 22 {"", false}, 23 } 24 permAddr := NewPermissionsForAddress("test", []string{Minter, Burner, Staking}) 25 for i, tc := range cases { 26 has = permAddr.HasPermission(tc.permission) 27 require.Equal(t, tc.expectHas, has, "test case #%d", i) 28 } 29 } 30 31 func TestValidatePermissions(t *testing.T) { 32 cases := []struct { 33 name string 34 permissions []string 35 expectPass bool 36 }{ 37 {"no permissions", []string{}, true}, 38 {"valid permission", []string{Minter}, true}, 39 {"invalid permission", []string{""}, false}, 40 {"invalid and valid permission", []string{Staking, ""}, false}, 41 } 42 43 for i, tc := range cases { 44 i, tc := i, tc 45 t.Run(tc.name, func(t *testing.T) { 46 err := validatePermissions(tc.permissions...) 47 if tc.expectPass { 48 require.NoError(t, err, "test case #%d", i) 49 } else { 50 require.Error(t, err, "test case #%d", i) 51 } 52 }) 53 } 54 }