diff --git a/Makefile b/Makefile index 662ce26..6ea87f9 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ all: go build -o telegabber test: - go test -v ./config ./ ./telegram ./xmpp/gateway + go test -v ./config ./ ./telegram ./xmpp/gateway ./persistence lint: $(GOPATH)/bin/golint ./... diff --git a/persistence/sessions_test.go b/persistence/sessions_test.go new file mode 100644 index 0000000..0968b53 --- /dev/null +++ b/persistence/sessions_test.go @@ -0,0 +1,79 @@ +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", + } + m := session.ToMap() + sample := map[string]string{ + "timezone": "klsf", + } + 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!") + } +}