kubelatte-ce

Форк
2
Форк от sbertech/kubelatte-ce
/
init_manager_test.go 
83 строки · 2.8 Кб
1
package initmanager
2

3
import (
4
	"context"
5
	"errors"
6
	"github.com/stretchr/testify/mock"
7
	"gitverse.ru/synapse/kubelatte/pkg/api/v1alpha1"
8
	"gitverse.ru/synapse/kubelatte/pkg/observability/logger/lib"
9
	"gitverse.ru/synapse/kubelatte/pkg/operator/controllers/clientset/mocks"
10
	"gitverse.ru/synapse/kubelatte/pkg/operator/utils"
11
	"gitverse.ru/synapse/kubelatte/pkg/util/env"
12
	"go.uber.org/zap"
13
	"testing"
14
	"time"
15
)
16

17
func TestInitManager_Start(t *testing.T) {
18
	lib.ZapLogger = zap.NewNop()
19
	env.KbltMutator = true
20
	defer func() { env.KbltMutator = false }()
21

22
	t.Parallel()
23
	t.Run("All_resources_got_test", func(t *testing.T) {
24
		clMock := mocks.NewV1Alpha1Interface(t)
25

26
		scopeMock := mocks.NewScopeInterface(t)
27
		triggerMock := mocks.NewTriggerInterface(t)
28
		templateMock := mocks.NewTemplateInterface(t)
29

30
		clMock.On("Scope", mock.Anything).Return(scopeMock).Maybe()
31
		clMock.On("Trigger", mock.Anything).Return(triggerMock).Maybe()
32
		clMock.On("Template", mock.Anything).Return(templateMock).Maybe()
33

34
		scopeMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.ScopeList{Items: []v1alpha1.Scope{{}}}, nil).Maybe()
35
		triggerMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TriggerList{Items: []v1alpha1.Trigger{{}}}, nil).Maybe()
36
		templateMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TemplateList{Items: []v1alpha1.Template{{}}}, nil).Maybe()
37

38
		utils.Cl = clMock
39

40
		m := NewInitManager(nil)
41
		if m.DoesTriggersExist() || m.DoesScopesExist() || m.DoesTemplatesExist() {
42
			t.Fatal("Wrong manager initialization")
43
		}
44

45
		ctx, cancel := context.WithCancel(context.Background())
46
		go func() {
47
			time.Sleep(4 * time.Second)
48
			cancel()
49
		}()
50

51
		m.Start(ctx)
52
	})
53

54
	t.Run("context_exit", func(t *testing.T) {
55
		clMock := mocks.NewV1Alpha1Interface(t)
56

57
		scopeMock := mocks.NewScopeInterface(t)
58
		triggerMock := mocks.NewTriggerInterface(t)
59
		templateMock := mocks.NewTemplateInterface(t)
60

61
		clMock.On("Scope", mock.Anything).Return(scopeMock).Maybe()
62
		clMock.On("Trigger", mock.Anything).Return(triggerMock).Maybe()
63
		clMock.On("Template", mock.Anything).Return(templateMock).Maybe()
64

65
		scopeMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.ScopeList{Items: []v1alpha1.Scope{{}}}, errors.New("")).Maybe()
66
		triggerMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TriggerList{Items: []v1alpha1.Trigger{{}}}, errors.New("")).Maybe()
67
		templateMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TemplateList{Items: []v1alpha1.Template{{}}}, errors.New("")).Maybe()
68

69
		utils.Cl = clMock
70

71
		m := NewInitManager(nil)
72
		if m.DoesTriggersExist() || m.DoesScopesExist() || m.DoesTemplatesExist() {
73
			t.Fatal("Wrong manager initialization")
74
		}
75

76
		ctx, cancel := context.WithCancel(context.Background())
77
		go func() {
78
			time.Sleep(4 * time.Second)
79
			cancel()
80
		}()
81
		m.Start(ctx)
82
	})
83
}
84

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

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

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

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