providers/session: Some more tests

This commit is contained in:
Sasha Koshka 2024-12-20 22:49:22 -05:00
parent 4f0364bb49
commit 5d7375a9e3

View File

@ -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 {