-
Notifications
You must be signed in to change notification settings - Fork 246
/
history_store_test.go
82 lines (66 loc) · 1.77 KB
/
history_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
package db
import (
"testing"
"time"
"github.com/stretchr/testify/require"
"github.com/status-im/status-go/eth-node/types"
)
func createInMemStore(t *testing.T) HistoryStore {
db, err := NewMemoryDB()
require.NoError(t, err)
return NewHistoryStore(LevelDBStorage{db: db})
}
func TestGetNewHistory(t *testing.T) {
topic := types.TopicType{1}
duration := time.Hour
store := createInMemStore(t)
th, err := store.GetHistory(topic, duration)
require.NoError(t, err)
require.Equal(t, duration, th.Duration)
require.Equal(t, topic, th.Topic)
}
func TestGetExistingHistory(t *testing.T) {
topic := types.TopicType{1}
duration := time.Hour
store := createInMemStore(t)
th, err := store.GetHistory(topic, duration)
require.NoError(t, err)
now := time.Now()
th.Current = now
require.NoError(t, th.Save())
th, err = store.GetHistory(topic, duration)
require.NoError(t, err)
require.Equal(t, now.Unix(), th.Current.Unix())
}
func TestNewHistoryRequest(t *testing.T) {
store := createInMemStore(t)
id := types.Hash{1}
req, err := store.GetRequest(id)
require.Error(t, err)
req = store.NewRequest()
req.ID = id
th, err := store.GetHistory(types.TopicType{1}, time.Hour)
require.NoError(t, err)
req.AddHistory(th)
require.NoError(t, req.Save())
req, err = store.GetRequest(id)
require.NoError(t, err)
require.Len(t, req.Histories(), 1)
}
func TestGetAllRequests(t *testing.T) {
store := createInMemStore(t)
idOne := types.Hash{1}
idTwo := types.Hash{2}
req := store.NewRequest()
req.ID = idOne
require.NoError(t, req.Save())
all, err := store.GetAllRequests()
require.NoError(t, err)
require.Len(t, all, 1)
req = store.NewRequest()
req.ID = idTwo
require.NoError(t, req.Save())
all, err = store.GetAllRequests()
require.NoError(t, err)
require.Len(t, all, 2)
}