github.com/Finschia/finschia-sdk@v0.48.1/x/capability/types/genesis_test.go (about) 1 package types 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestValidateGenesis(t *testing.T) { 10 testCases := []struct { 11 name string 12 malleate func(*GenesisState) 13 expPass bool 14 }{ 15 { 16 name: "default", 17 malleate: func(_ *GenesisState) {}, 18 expPass: true, 19 }, 20 { 21 name: "valid genesis state", 22 malleate: func(genState *GenesisState) { 23 genState.Index = 10 24 genOwner := GenesisOwners{ 25 Index: 1, 26 IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}}, 27 } 28 29 genState.Owners = append(genState.Owners, genOwner) 30 }, 31 expPass: true, 32 }, 33 { 34 name: "initial index is 0", 35 malleate: func(genState *GenesisState) { 36 genState.Index = 0 37 genOwner := GenesisOwners{ 38 Index: 0, 39 IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}}, 40 } 41 42 genState.Owners = append(genState.Owners, genOwner) 43 }, 44 expPass: false, 45 }, 46 47 { 48 name: "blank owner module", 49 malleate: func(genState *GenesisState) { 50 genState.Index = 1 51 genOwner := GenesisOwners{ 52 Index: 1, 53 IndexOwners: CapabilityOwners{[]Owner{{Module: "", Name: "port/transfer"}}}, 54 } 55 56 genState.Owners = append(genState.Owners, genOwner) 57 }, 58 expPass: false, 59 }, 60 { 61 name: "blank owner name", 62 malleate: func(genState *GenesisState) { 63 genState.Index = 1 64 genOwner := GenesisOwners{ 65 Index: 1, 66 IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: ""}}}, 67 } 68 69 genState.Owners = append(genState.Owners, genOwner) 70 }, 71 expPass: false, 72 }, 73 { 74 name: "index above range", 75 malleate: func(genState *GenesisState) { 76 genState.Index = 10 77 genOwner := GenesisOwners{ 78 Index: 12, 79 IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}}, 80 } 81 82 genState.Owners = append(genState.Owners, genOwner) 83 }, 84 expPass: false, 85 }, 86 { 87 name: "index below range", 88 malleate: func(genState *GenesisState) { 89 genState.Index = 10 90 genOwner := GenesisOwners{ 91 Index: 0, 92 IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}}, 93 } 94 95 genState.Owners = append(genState.Owners, genOwner) 96 }, 97 expPass: false, 98 }, 99 { 100 name: "owners are empty", 101 malleate: func(genState *GenesisState) { 102 genState.Index = 10 103 genOwner := GenesisOwners{ 104 Index: 0, 105 IndexOwners: CapabilityOwners{[]Owner{}}, 106 } 107 108 genState.Owners = append(genState.Owners, genOwner) 109 }, 110 expPass: false, 111 }, 112 } 113 114 for _, tc := range testCases { 115 tc := tc 116 genState := DefaultGenesis() 117 tc.malleate(genState) 118 err := genState.Validate() 119 if tc.expPass { 120 require.NoError(t, err, tc.name) 121 } else { 122 require.Error(t, err, tc.name) 123 } 124 } 125 }