moira

Форк
0
/
selfstate_test.go 
74 строки · 1.7 Кб
1
package redis
2

3
import (
4
	"testing"
5

6
	. "github.com/smartystreets/goconvey/convey"
7

8
	"go.avito.ru/DO/moira/test-helpers"
9
)
10

11
func TestSelfCheck(t *testing.T) {
12
	logger := test_helpers.GetTestLogger()
13

14
	dataBase := NewDatabase(logger, config)
15
	dataBase.flush()
16
	defer dataBase.flush()
17

18
	Convey("Self state triggers manipulation", t, func() {
19
		Convey("Empty config", func() {
20
			count, err := dataBase.GetMetricsUpdatesCount()
21
			So(count, ShouldEqual, 0)
22
			So(err, ShouldBeNil)
23

24
			count, err = dataBase.GetChecksUpdatesCount()
25
			So(count, ShouldEqual, 0)
26
			So(err, ShouldBeNil)
27
		})
28

29
		Convey("Update metrics heartbeat test", func() {
30
			err := dataBase.UpdateMetricsHeartbeat()
31
			So(err, ShouldBeNil)
32

33
			count, err := dataBase.GetMetricsUpdatesCount()
34
			So(count, ShouldEqual, 1)
35
			So(err, ShouldBeNil)
36
		})
37

38
		Convey("Update metrics checks updates count", func() {
39
			trigger := &triggers[0]
40
			triggerID := trigger.ID
41

42
			err := dataBase.SaveTrigger(triggerID, trigger)
43
			So(err, ShouldBeNil)
44

45
			err = dataBase.SetTriggerLastCheck(triggerID, lastCheckTest)
46
			So(err, ShouldBeNil)
47

48
			count, err := dataBase.GetChecksUpdatesCount()
49
			So(count, ShouldEqual, 1)
50
			So(err, ShouldBeNil)
51
		})
52
	})
53
}
54

55
func TestSelfCheckErrorConnection(t *testing.T) {
56
	logger := test_helpers.GetTestLogger()
57

58
	dataBase := NewDatabase(logger, emptyConfig)
59
	dataBase.flush()
60
	defer dataBase.flush()
61

62
	Convey("Should throw error when no connection", t, func() {
63
		count, err := dataBase.GetMetricsUpdatesCount()
64
		So(count, ShouldEqual, 0)
65
		So(err, ShouldNotBeNil)
66

67
		count, err = dataBase.GetChecksUpdatesCount()
68
		So(count, ShouldEqual, 0)
69
		So(err, ShouldNotBeNil)
70

71
		err = dataBase.UpdateMetricsHeartbeat()
72
		So(err, ShouldNotBeNil)
73
	})
74
}
75

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.