From 55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Thu, 20 Apr 2017 14:58:54 +0100 Subject: PLT-6112: Add some more unit tests to the model package (#6142) * Unit Tests for model/push_response.go * Unit tests for security_bulletin.go * Unit tests for webrtc.go * Unit tests for model/password_recovery.go * Add missing headers. * Unit tests for model/license.go * Tidy up existing tests. * Simplify JSON to/from tests. * Fix gofmt --- model/license_test.go | 179 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 177 insertions(+), 2 deletions(-) (limited to 'model/license_test.go') diff --git a/model/license_test.go b/model/license_test.go index 94a6ad130..1c6a277e8 100644 --- a/model/license_test.go +++ b/model/license_test.go @@ -4,10 +4,83 @@ package model import ( + "strings" "testing" ) -func TestLicenseExpired(t *testing.T) { +func TestLicenseFeaturesToMap(t *testing.T) { + f := Features{} + f.SetDefaults() + + m := f.ToMap() + + CheckTrue(t, m["ldap"].(bool)) + CheckTrue(t, m["mfa"].(bool)) + CheckTrue(t, m["google"].(bool)) + CheckTrue(t, m["office365"].(bool)) + CheckTrue(t, m["compliance"].(bool)) + CheckTrue(t, m["cluster"].(bool)) + CheckTrue(t, m["metrics"].(bool)) + CheckTrue(t, m["custom_brand"].(bool)) + CheckTrue(t, m["mhpns"].(bool)) + CheckTrue(t, m["saml"].(bool)) + CheckTrue(t, m["password"].(bool)) + CheckTrue(t, m["future"].(bool)) +} + +func TestLicenseFeaturesSetDefaults(t *testing.T) { + f := Features{} + f.SetDefaults() + + CheckInt(t, *f.Users, 0) + CheckTrue(t, *f.LDAP) + CheckTrue(t, *f.MFA) + CheckTrue(t, *f.GoogleOAuth) + CheckTrue(t, *f.Office365OAuth) + CheckTrue(t, *f.Compliance) + CheckTrue(t, *f.Cluster) + CheckTrue(t, *f.Metrics) + CheckTrue(t, *f.CustomBrand) + CheckTrue(t, *f.MHPNS) + CheckTrue(t, *f.SAML) + CheckTrue(t, *f.PasswordRequirements) + CheckTrue(t, *f.FutureFeatures) + + f = Features{} + f.SetDefaults() + + *f.Users = 300 + *f.FutureFeatures = false + *f.LDAP = true + *f.MFA = true + *f.GoogleOAuth = true + *f.Office365OAuth = true + *f.Compliance = true + *f.Cluster = true + *f.Metrics = true + *f.CustomBrand = true + *f.MHPNS = true + *f.SAML = true + *f.PasswordRequirements = true + + f.SetDefaults() + + CheckInt(t, *f.Users, 300) + CheckTrue(t, *f.LDAP) + CheckTrue(t, *f.MFA) + CheckTrue(t, *f.GoogleOAuth) + CheckTrue(t, *f.Office365OAuth) + CheckTrue(t, *f.Compliance) + CheckTrue(t, *f.Cluster) + CheckTrue(t, *f.Metrics) + CheckTrue(t, *f.CustomBrand) + CheckTrue(t, *f.MHPNS) + CheckTrue(t, *f.SAML) + CheckTrue(t, *f.PasswordRequirements) + CheckFalse(t, *f.FutureFeatures) +} + +func TestLicenseIsExpired(t *testing.T) { l1 := License{} l1.ExpiresAt = GetMillis() - 1000 if !l1.IsExpired() { @@ -20,7 +93,7 @@ func TestLicenseExpired(t *testing.T) { } } -func TestLicenseStarted(t *testing.T) { +func TestLicenseIsStarted(t *testing.T) { l1 := License{} l1.StartsAt = GetMillis() - 1000 if !l1.IsStarted() { @@ -32,3 +105,105 @@ func TestLicenseStarted(t *testing.T) { t.Fatal("license should not be started") } } + +func TestLicenseToFromJson(t *testing.T) { + f := Features{} + f.SetDefaults() + + l := License{ + Id: NewId(), + IssuedAt: GetMillis(), + StartsAt: GetMillis(), + ExpiresAt: GetMillis(), + Customer: &Customer{ + Id: NewId(), + Name: NewId(), + Email: NewId(), + Company: NewId(), + PhoneNumber: NewId(), + }, + Features: &f, + } + + j := l.ToJson() + + l1 := LicenseFromJson(strings.NewReader(j)) + if l1 == nil { + t.Fatalf("Decoding failed but should have passed.") + } + + CheckString(t, l1.Id, l.Id) + CheckInt64(t, l1.IssuedAt, l.IssuedAt) + CheckInt64(t, l1.StartsAt, l.StartsAt) + CheckInt64(t, l1.ExpiresAt, l.ExpiresAt) + + CheckString(t, l1.Customer.Id, l.Customer.Id) + CheckString(t, l1.Customer.Name, l.Customer.Name) + CheckString(t, l1.Customer.Email, l.Customer.Email) + CheckString(t, l1.Customer.Company, l.Customer.Company) + CheckString(t, l1.Customer.PhoneNumber, l.Customer.PhoneNumber) + + f1 := l1.Features + + CheckInt(t, *f1.Users, *f.Users) + CheckBool(t, *f1.LDAP, *f.LDAP) + CheckBool(t, *f1.MFA, *f.MFA) + CheckBool(t, *f1.GoogleOAuth, *f.GoogleOAuth) + CheckBool(t, *f1.Office365OAuth, *f.Office365OAuth) + CheckBool(t, *f1.Compliance, *f.Compliance) + CheckBool(t, *f1.Cluster, *f.Cluster) + CheckBool(t, *f1.Metrics, *f.Metrics) + CheckBool(t, *f1.CustomBrand, *f.CustomBrand) + CheckBool(t, *f1.MHPNS, *f.MHPNS) + CheckBool(t, *f1.SAML, *f.SAML) + CheckBool(t, *f1.PasswordRequirements, *f.PasswordRequirements) + CheckBool(t, *f1.FutureFeatures, *f.FutureFeatures) + + invalid := `{"asdf` + l2 := LicenseFromJson(strings.NewReader(invalid)) + if l2 != nil { + t.Fatalf("Should have failed but didn't") + } +} + +func TestLicenseRecordIsValid(t *testing.T) { + lr := LicenseRecord{ + CreateAt: GetMillis(), + Bytes: "asdfghjkl;", + } + + if err := lr.IsValid(); err == nil { + t.Fatalf("Should have been invalid") + } + + lr.Id = NewId() + lr.CreateAt = 0 + if err := lr.IsValid(); err == nil { + t.Fatalf("Should have been invalid") + } + + lr.CreateAt = GetMillis() + lr.Bytes = "" + if err := lr.IsValid(); err == nil { + t.Fatalf("Should have been invalid") + } + + lr.Bytes = strings.Repeat("0123456789", 1001) + if err := lr.IsValid(); err == nil { + t.Fatalf("Should have been invalid") + } + + lr.Bytes = "ASDFGHJKL;" + if err := lr.IsValid(); err != nil { + t.Fatal(err) + } +} + +func TestLicenseRecordPreSave(t *testing.T) { + lr := LicenseRecord{} + lr.PreSave() + + if lr.CreateAt == 0 { + t.Fatal("CreateAt should not be zero") + } +} -- cgit v1.2.3-1-g7c22