119 lines
2.4 KiB
Go
119 lines
2.4 KiB
Go
package persistence
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestEmptySessionsMap(t *testing.T) {
|
|
var sm SessionsMap
|
|
emptySessionsMap(&sm)
|
|
if sm.Sessions == nil {
|
|
t.Error("Session map is still empty!")
|
|
}
|
|
}
|
|
|
|
func TestNoEmptySessionsMap(t *testing.T) {
|
|
var sm SessionsMap
|
|
if sm.Sessions != nil {
|
|
t.Error("Session map is not empty at start!")
|
|
}
|
|
}
|
|
|
|
func TestSessionGet(t *testing.T) {
|
|
session := Session{
|
|
Timezone: "klsf",
|
|
}
|
|
tz, err := session.Get("timezone")
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
if tz != "klsf" {
|
|
t.Errorf("Wrong value from session: %s", tz)
|
|
}
|
|
}
|
|
|
|
func TestSessionGetAbsent(t *testing.T) {
|
|
session := Session{
|
|
Timezone: "klsf",
|
|
}
|
|
_, err := session.Get("donkey")
|
|
if err == nil {
|
|
t.Error("There shouldn't be a donkey!")
|
|
}
|
|
}
|
|
|
|
func TestSessionToMap(t *testing.T) {
|
|
session := Session{
|
|
Timezone: "klsf",
|
|
RawMessages: true,
|
|
OOBMode: true,
|
|
Receipts: true,
|
|
}
|
|
m := session.ToMap()
|
|
sample := map[string]string{
|
|
"timezone": "klsf",
|
|
"keeponline": "false",
|
|
"rawmessages": "true",
|
|
"asciiarrows": "false",
|
|
"oobmode": "true",
|
|
"carbons": "false",
|
|
"hideids": "false",
|
|
"receipts": "true",
|
|
"nativeedits": "false",
|
|
}
|
|
if !reflect.DeepEqual(m, sample) {
|
|
t.Errorf("Map does not match the sample: %v", m)
|
|
}
|
|
}
|
|
|
|
func TestSessionSet(t *testing.T) {
|
|
session := Session{}
|
|
tz, err := session.Set("timezone", "zaz")
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
if tz != "zaz" {
|
|
t.Errorf("Wrong set result: %s", tz)
|
|
}
|
|
if session.Timezone != "zaz" {
|
|
t.Errorf("Wrong actual value in the session: %s", session.Timezone)
|
|
}
|
|
}
|
|
|
|
func TestSessionSetAbsent(t *testing.T) {
|
|
session := Session{}
|
|
_, err := session.Set("donkey", "zaz")
|
|
if err == nil {
|
|
t.Error("There shouldn't come a donkey!")
|
|
}
|
|
}
|
|
|
|
func TestSessionIgnore(t *testing.T) {
|
|
session := Session{}
|
|
if session.IsChatIgnored(3) {
|
|
t.Error("Shouldn't be ignored yet")
|
|
}
|
|
if !session.IgnoreChat(3) {
|
|
t.Error("Shouldn't have been ignored")
|
|
}
|
|
if session.IgnoreChat(3) {
|
|
t.Error("Shouldn't ignore second time")
|
|
}
|
|
if !session.IsChatIgnored(3) {
|
|
t.Error("Should be ignored already")
|
|
}
|
|
if session.IsChatIgnored(-145) {
|
|
t.Error("Wrong chat is ignored")
|
|
}
|
|
if !session.UnignoreChat(3) {
|
|
t.Error("Should successfully unignore")
|
|
}
|
|
if session.UnignoreChat(3) {
|
|
t.Error("Should unignore second time")
|
|
}
|
|
if session.IsChatIgnored(3) {
|
|
t.Error("Shouldn't be ignored already")
|
|
}
|
|
}
|