cosmos-sdk/x/ibc/testing/chain_test.go

48 lines
1.4 KiB
Go

package ibctesting_test
import (
"testing"
"github.com/stretchr/testify/require"
tmtypes "github.com/tendermint/tendermint/types"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
ibctesting "github.com/cosmos/cosmos-sdk/x/ibc/testing"
"github.com/cosmos/cosmos-sdk/x/ibc/testing/mock"
)
func TestCreateSortedSignerArray(t *testing.T) {
privVal1 := mock.NewPV()
pubKey1, err := privVal1.GetPubKey()
require.NoError(t, err)
privVal2 := mock.NewPV()
pubKey2, err := privVal2.GetPubKey()
require.NoError(t, err)
validator1 := tmtypes.NewValidator(pubKey1.(cryptotypes.IntoTmPubKey).AsTmPubKey(), 1)
validator2 := tmtypes.NewValidator(pubKey2.(cryptotypes.IntoTmPubKey).AsTmPubKey(), 2)
expected := []tmtypes.PrivValidator{privVal2, privVal1}
actual := ibctesting.CreateSortedSignerArray(privVal1, privVal2, validator1, validator2)
require.Equal(t, expected, actual)
// swap order
actual = ibctesting.CreateSortedSignerArray(privVal2, privVal1, validator2, validator1)
require.Equal(t, expected, actual)
// smaller address
validator1.Address = []byte{1}
validator2.VotingPower = 1
expected = []tmtypes.PrivValidator{privVal1, privVal2}
actual = ibctesting.CreateSortedSignerArray(privVal1, privVal2, validator1, validator2)
require.Equal(t, expected, actual)
// swap order
actual = ibctesting.CreateSortedSignerArray(privVal2, privVal1, validator2, validator1)
require.Equal(t, expected, actual)
}