2020-04-30 08:07:43 -07:00
|
|
|
package types
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestValidateGenesis(t *testing.T) {
|
|
|
|
testCases := []struct {
|
|
|
|
name string
|
|
|
|
malleate func(*GenesisState)
|
|
|
|
expPass bool
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
name: "default",
|
|
|
|
malleate: func(_ *GenesisState) {},
|
|
|
|
expPass: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "valid genesis state",
|
|
|
|
malleate: func(genState *GenesisState) {
|
|
|
|
genState.Index = 10
|
|
|
|
genOwner := GenesisOwners{
|
2020-08-12 08:48:22 -07:00
|
|
|
Index: 1,
|
|
|
|
IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}},
|
2020-04-30 08:07:43 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
genState.Owners = append(genState.Owners, genOwner)
|
|
|
|
},
|
|
|
|
expPass: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "initial index is 0",
|
|
|
|
malleate: func(genState *GenesisState) {
|
|
|
|
genState.Index = 0
|
|
|
|
genOwner := GenesisOwners{
|
2020-08-12 08:48:22 -07:00
|
|
|
Index: 0,
|
|
|
|
IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}},
|
2020-04-30 08:07:43 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
genState.Owners = append(genState.Owners, genOwner)
|
|
|
|
|
|
|
|
},
|
|
|
|
expPass: false,
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: "blank owner module",
|
|
|
|
malleate: func(genState *GenesisState) {
|
|
|
|
genState.Index = 1
|
|
|
|
genOwner := GenesisOwners{
|
2020-08-12 08:48:22 -07:00
|
|
|
Index: 1,
|
|
|
|
IndexOwners: CapabilityOwners{[]Owner{{Module: "", Name: "port/transfer"}}},
|
2020-04-30 08:07:43 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
genState.Owners = append(genState.Owners, genOwner)
|
|
|
|
|
|
|
|
},
|
|
|
|
expPass: false,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "blank owner name",
|
|
|
|
malleate: func(genState *GenesisState) {
|
|
|
|
genState.Index = 1
|
|
|
|
genOwner := GenesisOwners{
|
2020-08-12 08:48:22 -07:00
|
|
|
Index: 1,
|
|
|
|
IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: ""}}},
|
2020-04-30 08:07:43 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
genState.Owners = append(genState.Owners, genOwner)
|
|
|
|
|
|
|
|
},
|
|
|
|
expPass: false,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "index above range",
|
|
|
|
malleate: func(genState *GenesisState) {
|
|
|
|
genState.Index = 10
|
|
|
|
genOwner := GenesisOwners{
|
2020-08-12 08:48:22 -07:00
|
|
|
Index: 12,
|
|
|
|
IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}},
|
2020-04-30 08:07:43 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
genState.Owners = append(genState.Owners, genOwner)
|
|
|
|
|
|
|
|
},
|
|
|
|
expPass: false,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "index below range",
|
|
|
|
malleate: func(genState *GenesisState) {
|
|
|
|
genState.Index = 10
|
|
|
|
genOwner := GenesisOwners{
|
2020-08-12 08:48:22 -07:00
|
|
|
Index: 0,
|
|
|
|
IndexOwners: CapabilityOwners{[]Owner{{Module: "ibc", Name: "port/transfer"}}},
|
2020-04-30 08:07:43 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
genState.Owners = append(genState.Owners, genOwner)
|
|
|
|
|
|
|
|
},
|
|
|
|
expPass: false,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "owners are empty",
|
|
|
|
malleate: func(genState *GenesisState) {
|
|
|
|
genState.Index = 10
|
|
|
|
genOwner := GenesisOwners{
|
2020-08-12 08:48:22 -07:00
|
|
|
Index: 0,
|
|
|
|
IndexOwners: CapabilityOwners{[]Owner{}},
|
2020-04-30 08:07:43 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
genState.Owners = append(genState.Owners, genOwner)
|
|
|
|
|
|
|
|
},
|
|
|
|
expPass: false,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tc := range testCases {
|
|
|
|
tc := tc
|
|
|
|
genState := DefaultGenesis()
|
2020-08-11 07:22:30 -07:00
|
|
|
tc.malleate(genState)
|
2020-04-30 08:07:43 -07:00
|
|
|
err := genState.Validate()
|
|
|
|
if tc.expPass {
|
|
|
|
require.NoError(t, err, tc.name)
|
|
|
|
} else {
|
|
|
|
require.Error(t, err, tc.name)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|