Fix is_valid bug (#3211)

This commit is contained in:
Dev Ojha 2019-01-02 13:14:12 -06:00 committed by Jack Zampolin
parent 5ca8c5bb83
commit 67a1e47c6e
2 changed files with 15 additions and 5 deletions

View File

@ -142,12 +142,13 @@ func (coins Coins) IsValid() bool {
case 0:
return true
case 1:
return coins[0].IsPositive()
default:
if strings.ToLower(coins[0].Denom) != coins[0].Denom {
return false
}
if !coins[0].IsPositive() {
return coins[0].IsPositive()
default:
// Check single coin case
if !(Coins{coins[0]}).IsValid() {
return false
}
lowDenom := coins[0].Denom

View File

@ -255,11 +255,18 @@ func TestCoins(t *testing.T) {
{"mineral", NewInt(1)},
{"tree", NewInt(1)},
}
mixedCase := Coins{
mixedCase1 := Coins{
{"gAs", NewInt(1)},
{"MineraL", NewInt(1)},
{"TREE", NewInt(1)},
}
mixedCase2 := Coins{
{"gAs", NewInt(1)},
{"mineral", NewInt(1)},
}
mixedCase3 := Coins{
{"gAs", NewInt(1)},
}
empty := Coins{
{"gold", NewInt(0)},
}
@ -292,7 +299,9 @@ func TestCoins(t *testing.T) {
}
assert.True(t, good.IsValid(), "Coins are valid")
assert.False(t, mixedCase.IsValid(), "Coins denoms contain upper case characters")
assert.False(t, mixedCase1.IsValid(), "Coins denoms contain upper case characters")
assert.False(t, mixedCase2.IsValid(), "First Coins denoms contain upper case characters")
assert.False(t, mixedCase3.IsValid(), "Single denom in Coins contains upper case characters")
assert.True(t, good.IsPositive(), "Expected coins to be positive: %v", good)
assert.False(t, null.IsPositive(), "Expected coins to not be positive: %v", null)
assert.True(t, good.IsAllGTE(empty), "Expected %v to be >= %v", good, empty)