diff options
author | George Goldberg <george@gberg.me> | 2017-04-20 14:58:54 +0100 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-04-20 09:58:54 -0400 |
commit | 55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023 (patch) | |
tree | 312f6a9c42c8f153168df8f960b613666777f64a /model/license_test.go | |
parent | 8723f61f4540c74d5c755d7f9532f8fe199ccb6f (diff) | |
download | chat-55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023.tar.gz chat-55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023.tar.bz2 chat-55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023.zip |
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
Diffstat (limited to 'model/license_test.go')
-rw-r--r-- | model/license_test.go | 179 |
1 files changed, 177 insertions, 2 deletions
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") + } +} |