1
0
mirror of https://github.com/astaxie/beego.git synced 2024-06-02 08:23:27 +00:00
Beego/pkg/server/web/session/redis_sentinel/sess_redis_sentinel_test.go

91 lines
1.9 KiB
Go
Raw Normal View History

2020-07-22 14:50:08 +00:00
package redis_sentinel
import (
"net/http"
"net/http/httptest"
"testing"
2020-10-05 11:04:22 +00:00
"github.com/astaxie/beego/pkg/server/web/session"
2020-07-22 14:50:08 +00:00
)
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
}
//todo test if e==nil
go globalSessions.GC()
r, _ := http.NewRequest("GET", "/", nil)
w := httptest.NewRecorder()
sess, err := globalSessions.SessionStart(w, r)
if err != nil {
t.Fatal("session start failed:", err)
}
2020-08-30 15:39:07 +00:00
defer sess.SessionRelease(nil, w)
2020-07-22 14:50:08 +00:00
// SET AND GET
2020-08-30 15:39:07 +00:00
err = sess.Set(nil, "username", "astaxie")
2020-07-22 14:50:08 +00:00
if err != nil {
t.Fatal("set username failed:", err)
}
2020-08-30 15:39:07 +00:00
username := sess.Get(nil, "username")
2020-07-22 14:50:08 +00:00
if username != "astaxie" {
t.Fatal("get username failed")
}
// DELETE
2020-08-30 15:39:07 +00:00
err = sess.Delete(nil, "username")
2020-07-22 14:50:08 +00:00
if err != nil {
t.Fatal("delete username failed:", err)
}
2020-08-30 15:39:07 +00:00
username = sess.Get(nil, "username")
2020-07-22 14:50:08 +00:00
if username != nil {
t.Fatal("delete username failed")
}
// FLUSH
2020-08-30 15:39:07 +00:00
err = sess.Set(nil, "username", "astaxie")
2020-07-22 14:50:08 +00:00
if err != nil {
t.Fatal("set failed:", err)
}
2020-08-30 15:39:07 +00:00
err = sess.Set(nil, "password", "1qaz2wsx")
2020-07-22 14:50:08 +00:00
if err != nil {
t.Fatal("set failed:", err)
}
2020-08-30 15:39:07 +00:00
username = sess.Get(nil, "username")
2020-07-22 14:50:08 +00:00
if username != "astaxie" {
t.Fatal("get username failed")
}
2020-08-30 15:39:07 +00:00
password := sess.Get(nil, "password")
2020-07-22 14:50:08 +00:00
if password != "1qaz2wsx" {
t.Fatal("get password failed")
}
2020-08-30 15:39:07 +00:00
err = sess.Flush(nil)
2020-07-22 14:50:08 +00:00
if err != nil {
t.Fatal("flush failed:", err)
}
2020-08-30 15:39:07 +00:00
username = sess.Get(nil, "username")
2020-07-22 14:50:08 +00:00
if username != nil {
t.Fatal("flush failed")
}
2020-08-30 15:39:07 +00:00
password = sess.Get(nil, "password")
2020-07-22 14:50:08 +00:00
if password != nil {
t.Fatal("flush failed")
}
2020-08-30 15:39:07 +00:00
sess.SessionRelease(nil, w)
2020-07-22 14:50:08 +00:00
}