github.com/Finschia/finschia-sdk@v0.49.1/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 t.Run(tc.name, func(t *testing.T) { 45 err := validatePermissions(tc.permissions...) 46 if tc.expectPass { 47 require.NoError(t, err, "test case #%d", i) 48 } else { 49 require.Error(t, err, "test case #%d", i) 50 } 51 }) 52 } 53 }