31 lines
1.1 KiB
Go
31 lines
1.1 KiB
Go
package qualityowner
|
|
|
|
import "testing"
|
|
|
|
func TestParseConfigValueDefaultsAndValidation(t *testing.T) {
|
|
rules, err := ParseConfigValue(`{"insurance_fee_bps":800,"premium_insurance_fee_bps":400}`)
|
|
if err != nil {
|
|
t.Fatalf("ParseConfigValue() error = %v", err)
|
|
}
|
|
if rules.DepositAmountCent != defaultDepositCent || rules.InsuranceFeeBps != 800 || rules.PremiumInsuranceFeeBps != 400 {
|
|
t.Fatalf("unexpected rules: %+v", rules)
|
|
}
|
|
|
|
if _, err := ParseConfigValue(`{"deposit_amount_cent":20000,"insurance_fee_bps":400,"premium_insurance_fee_bps":800}`); err == nil {
|
|
t.Fatal("expected premium rate above normal rate to be rejected")
|
|
}
|
|
if _, err := ParseConfigValue(`{"deposit_amount_cent":0}`); err == nil {
|
|
t.Fatal("expected zero deposit to be rejected")
|
|
}
|
|
}
|
|
|
|
func TestDefaultConfigValueCanBeParsed(t *testing.T) {
|
|
rules, err := ParseConfigValue(DefaultConfigValue())
|
|
if err != nil {
|
|
t.Fatalf("ParseConfigValue(DefaultConfigValue()) error = %v", err)
|
|
}
|
|
if rules.DepositAmountCent != 20000 || rules.InsuranceFeeBps != 800 || rules.PremiumInsuranceFeeBps != 400 {
|
|
t.Fatalf("unexpected default rules: %+v", rules)
|
|
}
|
|
}
|