43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
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")
|
|
}
|
|
}
|