6
"github.com/satori/go.uuid"
7
. "github.com/smartystreets/goconvey/convey"
10
"go.avito.ru/DO/moira/database"
11
"go.avito.ru/DO/moira/test-helpers"
14
func TestLastCheck(t *testing.T) {
15
logger := test_helpers.GetTestLogger()
16
dataBase := NewDatabase(logger, config)
18
defer dataBase.flush()
24
Convey("LastCheck manipulation", t, func() {
25
Convey("Test read write delete", func() {
26
trigger := &triggers[0]
27
triggerID := trigger.ID
29
err = dataBase.SaveTrigger(trigger.ID, trigger)
32
err = dataBase.SetTriggerLastCheck(triggerID, lastCheckTest)
35
actual, err := dataBase.GetTriggerLastCheck(triggerID)
37
So(actual, ShouldResemble, lastCheckTest)
39
err = dataBase.RemoveTriggerLastCheck(triggerID)
42
actual, err = dataBase.GetTriggerLastCheck(triggerID)
43
So(err, ShouldResemble, database.ErrNil)
44
So(actual, ShouldBeNil)
47
Convey("Test no lastcheck", func() {
48
triggerID := uuid.NewV4().String()
49
actual, err := dataBase.GetTriggerLastCheck(triggerID)
50
So(err, ShouldBeError)
51
So(err, ShouldResemble, database.ErrNil)
52
So(actual, ShouldBeNil)
55
Convey("Test set trigger check maintenance", func() {
56
Convey("While no metrics", func() {
57
trigger := &triggers[1]
58
triggerID := trigger.ID
60
err = dataBase.SaveTrigger(trigger.ID, trigger)
63
err = dataBase.SetTriggerLastCheck(triggerID, lastCheckWithNoMetrics)
66
actual, err := dataBase.GetTriggerLastCheck(triggerID)
68
So(actual, ShouldResemble, lastCheckWithNoMetrics)
71
Convey("While no metrics to change", func() {
72
trigger := &triggers[1]
73
triggerID := trigger.ID
75
err = dataBase.SaveTrigger(trigger.ID, trigger)
78
err = dataBase.SetTriggerLastCheck(triggerID, lastCheckTest)
81
actual, err := dataBase.GetTriggerLastCheck(triggerID)
83
So(actual, ShouldResemble, lastCheckTest)
87
Convey("Test get trigger check ids", func() {
90
okTrigger := &triggers[1]
91
okTriggerID := okTrigger.ID
92
err = dataBase.SaveTrigger(okTriggerID, okTrigger)
95
badTrigger := &triggers[2]
96
badTriggerID := badTrigger.ID
97
err = dataBase.SaveTrigger(badTriggerID, badTrigger)
100
err = dataBase.SetTriggerLastCheck(okTriggerID, lastCheckWithNoMetrics)
102
err = dataBase.SetTriggerLastCheck(badTriggerID, lastCheckTest)
105
actual, err := dataBase.GetTriggerCheckIDs(make([]string, 0), true)
107
So(actual, ShouldResemble, []string{badTriggerID})
109
actual, err = dataBase.GetTriggerCheckIDs(make([]string, 0), false)
111
So(actual, ShouldResemble, []string{badTriggerID, okTriggerID})
116
func TestLastCheckErrorConnection(t *testing.T) {
117
logger := test_helpers.GetTestLogger()
118
dataBase := NewDatabase(logger, emptyConfig)
120
defer dataBase.flush()
122
Convey("Should throw error when no connection", t, func() {
123
actual1, err := dataBase.GetTriggerLastCheck("123")
124
So(actual1, ShouldBeNil)
125
So(err, ShouldNotBeNil)
127
err = dataBase.SetTriggerLastCheck("123", lastCheckTest)
128
So(err, ShouldNotBeNil)
130
err = dataBase.RemoveTriggerLastCheck("123")
131
So(err, ShouldNotBeNil)
133
actual2, err := dataBase.GetTriggerCheckIDs(make([]string, 0), true)
134
So(actual2, ShouldResemble, []string(nil))
135
So(err, ShouldNotBeNil)
139
var lastCheckTest = &moira.CheckData{
142
Timestamp: 1504509981,
143
Metrics: map[string]*moira.MetricState{
145
EventTimestamp: 1504449789,
148
Timestamp: 1504509380,
151
EventTimestamp: 1504449789,
154
Timestamp: 1504509380,
157
EventTimestamp: 1504449789,
160
Timestamp: 1504509380,
163
EventTimestamp: 1504463770,
166
Timestamp: 1504509380,
169
EventTimestamp: 1504463770,
172
Timestamp: 1504509380,
175
EventTimestamp: 1504463770,
178
Timestamp: 1504509380,
183
var lastCheckWithNoMetrics = &moira.CheckData{
186
Timestamp: 1504509981,
187
Metrics: make(map[string]*moira.MetricState),