@@ -0,0 +1,21 @@
|
||||
package model
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestExactMoney(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
input string
|
||||
minor int64
|
||||
formatted string
|
||||
}{{"0", 0, "0.00"}, {"0.01", 1, "0.01"}, {"100000.10", 10000010, "100000.10"}, {"3.1", 310, "3.10"}, {"1000000000.00", 100000000000, "1000000000.00"}} {
|
||||
amount, err := ParseMoney(tc.input)
|
||||
if err != nil || amount != tc.minor || FormatMoney(amount) != tc.formatted {
|
||||
t.Fatalf("%s: amount=%d err=%v", tc.input, amount, err)
|
||||
}
|
||||
}
|
||||
for _, input := range []string{"-1", "1.001", "1e3", "NaN", " 1", "01", "1.", "1000000000.01", "999999999999999999999", ""} {
|
||||
if _, err := ParseMoney(input); err == nil {
|
||||
t.Fatalf("accepted invalid amount %q", input)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user