-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlc_test.go
83 lines (64 loc) · 1.62 KB
/
lc_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
package lc
import (
"testing"
"time"
)
func Test_SetAndGet(t *testing.T) {
lc := NewLocalCopy(1*time.Millisecond, func(*Handler) {})
lc.Set("foo", "bar")
if foo, found := lc.Get("foo"); !found {
t.Errorf("Could not find ket (foo)")
} else if f, ok := foo.(string); !ok {
t.Errorf("Foo expected to be string")
} else if f != "bar" {
t.Errorf("Foo expected to be bar")
}
}
func Test_Remove(t *testing.T) {
lc := NewLocalCopy(1*time.Millisecond, func(*Handler) {})
lc.Set("foo", "bar")
if _, found := lc.Get("foo"); !found {
t.Errorf("Could not find key (foo)")
}
lc.Remove("foo")
if _, found := lc.Get("foo"); found {
t.Errorf("Key (foo) should not exist anymore")
}
}
func Test_Fill(t *testing.T) {
lc := NewLocalCopy(10*time.Millisecond, func(h *Handler) {
h.Clean()
h.Set("foo", "bar")
})
if _, found := lc.Get("foo"); found {
t.Errorf("Key (foo) should not exist yet")
}
lc.Set("foo1", "bar")
time.Sleep(20 * time.Millisecond)
if _, found := lc.Get("foo"); !found {
t.Errorf("Key foo should exist!")
}
if _, found := lc.Get("foo1"); found {
t.Errorf("Key (foo1) should not exist!")
}
}
func Test_FillImmediately(t *testing.T) {
lc := NewImmediateLocalCopy(10*time.Millisecond, func(h *Handler) {
h.Set("foo", "bar")
})
if _, found := lc.Get("foo"); !found {
t.Errorf("Key foo should exist!")
}
}
func Test_FillOnDemand(t *testing.T) {
lc := NewLocalCopy(1*time.Hour, func(h *Handler) {
h.Set("foo", "bar")
})
if _, found := lc.Get("foo"); found {
t.Errorf("Key foo should not exist!")
}
lc.Fill()
if _, found := lc.Get("foo"); !found {
t.Errorf("Key foo should exist!")
}
}