76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
package redis_sentinel
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/beego/beego/v2/adapter/session"
|
|
)
|
|
|
|
func TestRedisSentinel(t *testing.T) {
|
|
sessionConfig := &session.ManagerConfig{
|
|
CookieName: "gosessionid",
|
|
EnableSetCookie: true,
|
|
Gclifetime: 3600,
|
|
Maxlifetime: 3600,
|
|
Secure: false,
|
|
CookieLifeTime: 3600,
|
|
ProviderConfig: "127.0.0.1:6379,100,,0,master",
|
|
}
|
|
globalSessions, e := session.NewManager("redis_sentinel", sessionConfig)
|
|
|
|
if e != nil {
|
|
t.Log(e)
|
|
return
|
|
}
|
|
|
|
go globalSessions.GC()
|
|
|
|
r, _ := http.NewRequest("GET", "/", nil)
|
|
w := httptest.NewRecorder()
|
|
|
|
sess, err := globalSessions.SessionStart(w, r)
|
|
assert.Nil(t, err)
|
|
defer sess.SessionRelease(w)
|
|
|
|
// SET AND GET
|
|
err = sess.Set("username", "astaxie")
|
|
assert.Nil(t, err)
|
|
username := sess.Get("username")
|
|
assert.Equal(t, "astaxie", username)
|
|
|
|
// DELETE
|
|
err = sess.Delete("username")
|
|
assert.Nil(t, err)
|
|
|
|
username = sess.Get("username")
|
|
assert.Nil(t, username)
|
|
|
|
// FLUSH
|
|
err = sess.Set("username", "astaxie")
|
|
assert.Nil(t, err)
|
|
|
|
err = sess.Set("password", "1qaz2wsx")
|
|
assert.Nil(t, err)
|
|
|
|
username = sess.Get("username")
|
|
assert.Equal(t, "astaxie", username)
|
|
|
|
password := sess.Get("password")
|
|
assert.Equal(t, "1qaz2wsx", password)
|
|
|
|
err = sess.Flush()
|
|
assert.Nil(t, err)
|
|
|
|
username = sess.Get("username")
|
|
assert.Nil(t, username)
|
|
|
|
password = sess.Get("password")
|
|
assert.Nil(t, password)
|
|
|
|
sess.SessionRelease(w)
|
|
}
|