-
Notifications
You must be signed in to change notification settings - Fork 21
/
store_test.go
124 lines (90 loc) · 2.38 KB
/
store_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package session
import (
"testing"
"time"
)
func Test_NewStore(t *testing.T) {
store := NewStore()
if store == nil {
t.Error("Store is nil")
}
}
func TestStore_GetSetDelete(t *testing.T) {
store := NewStore()
key := "key"
value := "value"
store.Set(key, value)
if v := store.Get(key); v == nil {
t.Errorf("Store.Get() == %v, want %v", v, value)
}
if v := store.Get("fake"); v != nil {
t.Errorf("Store.Get() == %v, want %v", v, nil)
}
store.Delete(key)
if v := store.Get(key); v != nil {
t.Errorf("Store.Get() (after delete) == %v, want %v", v, nil)
}
}
func TestStore_GetSetDeleteBytes(t *testing.T) {
store := NewStore()
key := []byte("key")
value := "value"
store.SetBytes(key, value)
if v := store.GetBytes(key); v == nil {
t.Errorf("Store.GetBytes() == %v, want %v", v, value)
}
if v := store.GetBytes([]byte("fake")); v != nil {
t.Errorf("Store.GetBytes() == %v, want %v", v, nil)
}
store.DeleteBytes(key)
if v := store.GetBytes(key); v != nil {
t.Errorf("Store.GetBytes() (after delete) == %v, want %v", v, nil)
}
}
func TestStore_Ptr(t *testing.T) {
store := NewStore()
if store.Ptr() != &store.data {
t.Errorf("Store.Ptr() == %p, want %p", store.Ptr(), store.data)
}
}
func TestStore_Flush(t *testing.T) {
store := NewStore()
store.Set("k1", "v1")
store.Set("k2", "v2")
store.Set("k3", "v3")
store.Flush()
if len(store.data.KV) > 0 {
t.Error("Store is not flushed")
}
}
func TestStore_SetGetSessionID(t *testing.T) {
store := NewStore()
id := []byte("1234abcd567trfg")
store.SetSessionID(id)
if v := store.GetSessionID(); string(v) != string(id) {
t.Errorf("Store.GetSessionID() == %s, want %s", v, id)
}
}
func TestStore_SetGetHasExpiration(t *testing.T) {
store := NewStore()
expiration := 10 * time.Second
if err := store.SetExpiration(expiration); err != nil {
t.Errorf("unexpected error: %v", err)
}
if v := store.GetExpiration(); v != expiration {
t.Errorf("Store.GetExpiration() == %d, want %d", v, expiration)
}
if !store.HasExpirationChanged() {
t.Errorf("Store.HasExpirationChanged() == %v, want %v", false, true)
}
}
func TestStore_Reset(t *testing.T) {
store := NewStore()
store.defaultExpiration = 10
store.SetSessionID([]byte("af123443z"))
store.Set("k", "v")
store.Reset()
if len(store.data.KV) > 0 || len(store.sessionID) > 0 || store.defaultExpiration != 0 {
t.Error("Store is not reseted")
}
}