package lexicomai import "testing" func TestParseLicense(t *testing.T) { l, err := ParseLicense([]byte(`{"service":"cls","expire":"2045-01-01","licenses":0,"key":"abc"}`)) if err != nil { t.Fatalf("ParseLicense error: %v", err) } if l.Service != "cls" || l.Expire != "2045-01-01" || l.Licenses != 0 || l.Key != "abc" { t.Errorf("unexpected license %+v", l) } if _, err := ParseLicense([]byte(`{}`)); err == nil { t.Error("empty license should error (missing service)") } if _, err := ParseLicense([]byte(`not json`)); err == nil { t.Error("malformed license should error") } } func TestVerifyFields(t *testing.T) { good := &License{Service: "cls", Expire: "2099-01-01", Licenses: 5, Key: "k"} if notes := good.VerifyFields("cls"); len(notes) != 0 { t.Errorf("good license warnings: %v", notes) } wrong := &License{Service: "spr", Expire: "2099-01-01", Licenses: 5} if notes := wrong.VerifyFields("cls"); len(notes) == 0 { t.Error("wrong service should warn") } expired := &License{Service: "cls", Expire: "2000-01-01", Licenses: 5} if notes := expired.VerifyFields("cls"); len(notes) == 0 { t.Error("expired license should warn") } noSeats := &License{Service: "cls", Expire: "2099-01-01", Licenses: 0} if notes := noSeats.VerifyFields("cls"); len(notes) == 0 { t.Error("0 seats should warn") } }