diff options
author | Frédéric Guillot <fred@miniflux.net> | 2017-11-25 19:06:02 -0800 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2017-11-25 19:06:02 -0800 |
commit | 51f77754660ddcd29f61be293a8e405d8cd3ba18 (patch) | |
tree | c421b1ab2a470e23e3ce6dbf2d09878087ebd614 /model/user_test.go | |
parent | 4560af165e7fa25dddd46f49ad4a0d9f3149336c (diff) |
Add unit tests for models
Diffstat (limited to 'model/user_test.go')
-rw-r--r-- | model/user_test.go | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/model/user_test.go b/model/user_test.go new file mode 100644 index 0000000..769696f --- /dev/null +++ b/model/user_test.go @@ -0,0 +1,76 @@ +// Copyright 2017 Frédéric Guillot. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package model + +import "testing" + +func TestValidateUserCreation(t *testing.T) { + user := &User{} + if err := user.ValidateUserCreation(); err == nil { + t.Error(`An empty user should generate an error`) + } + + user = &User{Username: "test", Password: ""} + if err := user.ValidateUserCreation(); err == nil { + t.Error(`User without password should generate an error`) + } + + user = &User{Username: "test", Password: "a"} + if err := user.ValidateUserCreation(); err == nil { + t.Error(`Passwords shorter than 6 characters should generate an error`) + } + + user = &User{Username: "", Password: "secret"} + if err := user.ValidateUserCreation(); err == nil { + t.Error(`An empty username should generate an error`) + } + + user = &User{Username: "test", Password: "secret"} + if err := user.ValidateUserCreation(); err != nil { + t.Error(`A valid user should not generate any error`) + } +} + +func TestValidateUserModification(t *testing.T) { + user := &User{} + if err := user.ValidateUserModification(); err == nil { + t.Error(`An empty user should generate an error`) + } + + user = &User{ID: 42, Username: "test", Password: "", Theme: "default"} + if err := user.ValidateUserModification(); err != nil { + t.Error(`User without password should not generate an error`) + } + + user = &User{ID: 42, Username: "test", Password: "a", Theme: "default"} + if err := user.ValidateUserModification(); err == nil { + t.Error(`Passwords shorter than 6 characters should generate an error`) + } + + user = &User{ID: 42, Username: "", Password: "secret", Theme: "default"} + if err := user.ValidateUserModification(); err == nil { + t.Error(`An empty username should generate an error`) + } + + user = &User{ID: -1, Username: "test", Password: "secret", Theme: "default"} + if err := user.ValidateUserModification(); err == nil { + t.Error(`An invalid userID should generate an error`) + } + + user = &User{ID: 0, Username: "test", Password: "secret", Theme: "default"} + if err := user.ValidateUserModification(); err == nil { + t.Error(`An invalid userID should generate an error`) + } + + user = &User{ID: 42, Username: "test", Password: "secret", Theme: "invalid"} + if err := user.ValidateUserModification(); err == nil { + t.Error(`An invalid theme should generate an error`) + } + + user = &User{ID: 42, Username: "test", Password: "secret", Theme: "default"} + if err := user.ValidateUserModification(); err != nil { + t.Error(`A valid user should not generate any error`) + } +} |