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  }