wasmd/x/wasm/keeper/ibc_test.go

53 lines
1.1 KiB
Go

package keeper
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
sdk "github.com/cosmos/cosmos-sdk/types"
)
func TestContractFromPortID(t *testing.T) {
contractAddr := BuildContractAddressClassic(1, 100)
specs := map[string]struct {
srcPort string
expAddr sdk.AccAddress
expErr bool
}{
"all good": {
srcPort: fmt.Sprintf("wasm.%s", contractAddr.String()),
expAddr: contractAddr,
},
"without prefix": {
srcPort: contractAddr.String(),
expErr: true,
},
"invalid prefix": {
srcPort: fmt.Sprintf("wasmx.%s", contractAddr.String()),
expErr: true,
},
"without separator char": {
srcPort: fmt.Sprintf("wasm%s", contractAddr.String()),
expErr: true,
},
"invalid account": {
srcPort: "wasm.foobar",
expErr: true,
},
}
for name, spec := range specs {
t.Run(name, func(t *testing.T) {
gotAddr, gotErr := ContractFromPortID(spec.srcPort)
if spec.expErr {
require.Error(t, gotErr)
return
}
require.NoError(t, gotErr)
assert.Equal(t, spec.expAddr, gotAddr)
})
}
}