42 lines
1.6 KiB
Go
42 lines
1.6 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 rules.AgreementTitle != defaultAgreementTitle ||
|
|
rules.AgreementReadSeconds != defaultAgreementReadSeconds ||
|
|
rules.AgreementContent == "" {
|
|
t.Fatalf("unexpected agreement defaults: %+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")
|
|
}
|
|
if _, err := ParseConfigValue(`{"agreement_read_seconds":14}`); err == nil {
|
|
t.Fatal("expected agreement reading time below 15 seconds 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)
|
|
}
|
|
if rules.AgreementReadSeconds != 15 || rules.AgreementTitle == "" || rules.AgreementContent == "" {
|
|
t.Fatalf("unexpected default agreement: %+v", rules)
|
|
}
|
|
}
|