diff --git a/providers/session/session_test.go b/providers/session/session_test.go index 3bc0531..ae48154 100644 --- a/providers/session/session_test.go +++ b/providers/session/session_test.go @@ -1,9 +1,31 @@ package session import "io" +import "time" import "reflect" import "testing" +import "github.com/google/uuid" import "git.tebibyte.media/sashakoshka/step" +import "git.tebibyte.media/sashakoshka/go-util/sync" + +func TestSession (test *testing.T) { + future := time.Now().Add(5 * time.Minute) + sessions := make(sessionMap) + sessionLocker := usync.NewRWLocker(sessions) + state := state { sessions: &sessionLocker } + session, err := state.newSession(uuid.New(), future) + if err != nil { test.Fatal(err) } + + if len(sessions) != 0 { test.Fatal("incorrect len(sessions):", sessions) } + _, err = session.Set("some key", "some value") + if err != nil { test.Fatal(err) } + if len(sessions) != 1 { test.Fatal("incorrect len(sessions):", sessions) } + value, err := session.Get("some key") + if err != nil { test.Fatal(err) } + if value.(string) != "some value" { test.Fatal("not equal") } + session.Clear() + if len(sessions) != 0 { test.Fatal("incorrect len(sessions):", sessions) } +} func TestEnsafenValue (test *testing.T) { items := []any {