|
1 |
| -package coins_test |
| 1 | +package coins |
2 | 2 |
|
3 | 3 | import (
|
4 | 4 | "testing"
|
5 | 5 |
|
6 | 6 | "github.com/stretchr/testify/require"
|
7 |
| - |
8 |
| - "cosmossdk.io/client/v2/internal/coins" |
9 | 7 | )
|
10 | 8 |
|
11 |
| -func TestDecodeCoin(t *testing.T) { |
| 9 | +func Test_parseCoin(t *testing.T) { |
| 10 | + tests := []struct { |
| 11 | + name string |
| 12 | + input string |
| 13 | + amount string |
| 14 | + denom string |
| 15 | + err string |
| 16 | + }{ |
| 17 | + { |
| 18 | + name: "ok", |
| 19 | + input: "1000stake", |
| 20 | + amount: "1000", |
| 21 | + denom: "stake", |
| 22 | + }, |
| 23 | + { |
| 24 | + name: "empty", |
| 25 | + input: "", |
| 26 | + err: "empty input when parsing coin", |
| 27 | + }, |
| 28 | + { |
| 29 | + name: "empty denom", |
| 30 | + input: "1000", |
| 31 | + err: "invalid input format", |
| 32 | + }, |
| 33 | + { |
| 34 | + name: "empty amount", |
| 35 | + input: "stake", |
| 36 | + err: "invalid input format", |
| 37 | + }, |
| 38 | + { |
| 39 | + name: "<denom><amount> format", |
| 40 | + input: "stake1000", |
| 41 | + err: "invalid input format", |
| 42 | + }, |
| 43 | + } |
| 44 | + for _, tt := range tests { |
| 45 | + t.Run(tt.name, func(t *testing.T) { |
| 46 | + amount, denom, err := parseCoin(tt.input) |
| 47 | + if tt.err != "" { |
| 48 | + require.Error(t, err) |
| 49 | + require.Contains(t, err.Error(), tt.err) |
| 50 | + } else { |
| 51 | + require.NoError(t, err) |
| 52 | + require.Equal(t, tt.amount, amount) |
| 53 | + require.Equal(t, tt.denom, denom) |
| 54 | + } |
| 55 | + }) |
| 56 | + } |
| 57 | +} |
| 58 | + |
| 59 | +func TestParseCoin(t *testing.T) { |
| 60 | + encodedCoin := "1000000000foo" |
| 61 | + coin, err := ParseCoin(encodedCoin) |
| 62 | + require.NoError(t, err) |
| 63 | + require.Equal(t, "1000000000", coin.Amount) |
| 64 | + require.Equal(t, "foo", coin.Denom) |
| 65 | +} |
| 66 | + |
| 67 | +func TestParseDecCoin(t *testing.T) { |
12 | 68 | encodedCoin := "1000000000foo"
|
13 |
| - coin, err := coins.ParseCoin(encodedCoin) |
| 69 | + coin, err := ParseDecCoin(encodedCoin) |
14 | 70 | require.NoError(t, err)
|
15 | 71 | require.Equal(t, "1000000000", coin.Amount)
|
16 | 72 | require.Equal(t, "foo", coin.Denom)
|
|
0 commit comments