github.com/Finschia/finschia-sdk@v0.48.1/x/capability/simulation/decoder_test.go (about)

     1  package simulation_test
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/Finschia/finschia-sdk/simapp"
    10  	sdk "github.com/Finschia/finschia-sdk/types"
    11  	"github.com/Finschia/finschia-sdk/types/kv"
    12  	"github.com/Finschia/finschia-sdk/x/capability/simulation"
    13  	"github.com/Finschia/finschia-sdk/x/capability/types"
    14  )
    15  
    16  func TestDecodeStore(t *testing.T) {
    17  	cdc := simapp.MakeTestEncodingConfig().Marshaler
    18  	dec := simulation.NewDecodeStore(cdc)
    19  
    20  	capOwners := types.CapabilityOwners{
    21  		Owners: []types.Owner{{Module: "transfer", Name: "ports/transfer"}},
    22  	}
    23  
    24  	kvPairs := kv.Pairs{
    25  		Pairs: []kv.Pair{
    26  			{
    27  				Key:   types.KeyIndex,
    28  				Value: sdk.Uint64ToBigEndian(10),
    29  			},
    30  			{
    31  				Key:   types.KeyPrefixIndexCapability,
    32  				Value: cdc.MustMarshal(&capOwners),
    33  			},
    34  			{
    35  				Key:   []byte{0x99},
    36  				Value: []byte{0x99},
    37  			},
    38  		},
    39  	}
    40  	tests := []struct {
    41  		name        string
    42  		expectedLog string
    43  	}{
    44  		{"Index", "Index A: 10\nIndex B: 10\n"},
    45  		{"CapabilityOwners", fmt.Sprintf("CapabilityOwners A: %v\nCapabilityOwners B: %v\n", capOwners, capOwners)},
    46  		{"other", ""},
    47  	}
    48  
    49  	for i, tt := range tests {
    50  		i, tt := i, tt
    51  		t.Run(tt.name, func(t *testing.T) {
    52  			switch i {
    53  			case len(tests) - 1:
    54  				require.Panics(t, func() { dec(kvPairs.Pairs[i], kvPairs.Pairs[i]) }, tt.name)
    55  			default:
    56  				require.Equal(t, tt.expectedLog, dec(kvPairs.Pairs[i], kvPairs.Pairs[i]), tt.name)
    57  			}
    58  		})
    59  	}
    60  }