Files
core/iam/identity/user_test.go
2023-09-18 15:18:21 +02:00

147 lines
2.6 KiB
Go

package identity
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestUserName(t *testing.T) {
user := User{}
err := user.Validate()
require.Error(t, err)
user.Name = "foobar_5"
err = user.Validate()
require.NoError(t, err)
user.Name = "foobar:5"
err = user.Validate()
require.NoError(t, err)
user.Name = "$foob:ar"
err = user.Validate()
require.Error(t, err)
}
func TestUserAlias(t *testing.T) {
user := User{
Name: "foober",
}
err := user.Validate()
require.NoError(t, err)
user.Alias = "foobar"
err = user.Validate()
require.NoError(t, err)
user.Alias = "$foob:ar"
err = user.Validate()
require.Error(t, err)
}
func TestUserListAdd(t *testing.T) {
l := NewUserList()
_, err := l.Get("foobar")
require.Error(t, err)
err = l.Add(User{Name: "foobar"})
require.NoError(t, err)
_, err = l.Get("foobar")
require.NoError(t, err)
err = l.Add(User{Name: "foobaz", Alias: "foobar"})
require.Error(t, err)
err = l.Add(User{Name: "foobaz", Alias: "foobaz"})
require.NoError(t, err)
err = l.Add(User{Name: "barfoo", Alias: "foobaz"})
require.Error(t, err)
}
func TestUserListDelete(t *testing.T) {
l := NewUserList()
_, err := l.Get("foobar")
require.Error(t, err)
err = l.Add(User{Name: "foobar"})
require.NoError(t, err)
_, err = l.Get("foobar")
require.NoError(t, err)
l.Delete("foobar")
require.NoError(t, err)
_, err = l.Get("foobar")
require.Error(t, err)
err = l.Add(User{Name: "foobar", Alias: "foobaz"})
require.NoError(t, err)
_, err = l.Get("foobaz")
require.NoError(t, err)
l.Delete("foobaz")
require.NoError(t, err)
_, err = l.Get("foobaz")
require.Error(t, err)
}
func TestUserListUpdate(t *testing.T) {
l := NewUserList()
err := l.Add(User{Name: "foobar"})
require.NoError(t, err)
err = l.Update("foobaz", User{Name: "foobar"})
require.Error(t, err)
err = l.Update("foobar", User{Name: "foobaz", Alias: "fooboz"})
require.NoError(t, err)
_, err = l.Get("foobar")
require.Error(t, err)
_, err = l.Get("foobaz")
require.NoError(t, err)
_, err = l.Get("fooboz")
require.NoError(t, err)
err = l.Add(User{Name: "foobar"})
require.NoError(t, err)
err = l.Update("foobaz", User{Name: "foobar"})
require.Error(t, err)
err = l.Update("fooboz", User{Name: "fooboz"})
require.NoError(t, err)
_, err = l.Get("foobaz")
require.Error(t, err)
}
func TestUserListList(t *testing.T) {
l := NewUserList()
err := l.Add(User{Name: "foobar", Alias: "foobaz"})
require.NoError(t, err)
users := l.List()
require.Equal(t, 1, len(users))
err = l.Add(User{Name: "barfoo", Alias: "bazfoo"})
require.NoError(t, err)
users = l.List()
require.Equal(t, 2, len(users))
}