1
0
mirror of https://github.com/alexedwards/scs.git synced 2025-07-13 01:00:17 +02:00
Files
scs/mem/engine/engine_test.go

102 lines
2.3 KiB
Go
Raw Normal View History

2016-08-08 19:06:16 +02:00
package engine
import (
"bytes"
"testing"
"time"
"github.com/alexedwards/scs"
)
func TestNew(t *testing.T) {
e := New()
_, ok := interface{}(e).(scs.Engine)
if ok == false {
t.Fatalf("got %v: expected %v", ok, true)
}
if len(e.Cache.Items()) > 0 {
t.Fatalf("got %d: expected %d", len(e.Cache.Items()), 0)
}
}
func TestFindValues(t *testing.T) {
e := New()
e.Cache.Set("test_session_token", []byte("encoded_data"), 0)
b, found, err := e.FindValues("test_session_token")
if err != nil {
t.Fatalf("got %v: expected %v", err, nil)
}
if found != true {
t.Fatalf("got %v: expected %v", found, true)
}
if bytes.Equal(b, []byte("encoded_data")) == false {
t.Fatalf("got %v: expected %v", b, []byte("encoded_data"))
}
b, found, err = e.FindValues("missing_session_token")
if err != nil {
t.Fatalf("got %v: expected %v", err, nil)
}
if found != false {
t.Fatalf("got %v: expected %v", found, false)
}
if b != nil {
t.Fatalf("got %v: expected %v", b, nil)
}
}
func TestFindBadData(t *testing.T) {
e := New()
e.Cache.Set("test_session_token", "not_a_byte_slice", 0)
_, _, err := e.FindValues("test_session_token")
if err != ErrTypeAssertionFailed {
t.Fatalf("got %v: expected %v", err, ErrTypeAssertionFailed)
}
}
func TestExpiry(t *testing.T) {
e := New()
err := e.Save("test_session_token", []byte("encoded_data"), time.Now().Add(100*time.Millisecond))
if err != nil {
t.Fatalf("got %v: expected %v", err, nil)
}
2016-08-08 19:06:16 +02:00
_, found, _ := e.FindValues("test_session_token")
if found != true {
t.Fatalf("got %v: expected %v", found, true)
}
time.Sleep(100 * time.Millisecond)
_, found, _ = e.FindValues("test_session_token")
if found != false {
t.Fatalf("got %v: expected %v", found, false)
}
}
func TestSave(t *testing.T) {
e := New()
err := e.Save("test_session_token", []byte("encoded_data"), time.Now().Add(time.Minute))
2016-08-08 19:06:16 +02:00
if err != nil {
t.Fatalf("got %v: expected %v", err, nil)
}
if len(e.Cache.Items()) != 1 {
t.Fatalf("got %d: expected %d", len(e.Cache.Items()), 1)
}
}
func TestDelete(t *testing.T) {
e := New()
e.Cache.Set("test_session_token", []byte("encoded_data"), 0)
err := e.Delete("test_session_token")
if err != nil {
t.Fatalf("got %v: expected %v", err, nil)
}
if len(e.Cache.Items()) != 0 {
t.Fatalf("got %d: expected %d", len(e.Cache.Items()), 0)
}
}