-
Notifications
You must be signed in to change notification settings - Fork 0
/
herald_test.go
139 lines (123 loc) · 2.82 KB
/
herald_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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package herald
import (
"errors"
"testing"
"github.com/duckbunny/service"
)
func TestSetFlagEnv(t *testing.T) {
heraldBoth = "test"
setFlagEnv()
if heraldPool != "test" && heraldDeclare != "test" {
t.Error("expecting pool and declare to eb set to test")
}
}
func TestThis(t *testing.T) {
_, err := This()
if err.Error() != "Attempt to utilize unrecognized Pooling mechanism test" {
t.Error("expected no pooling mechanism error")
}
AddPool("test", StubHerald{})
_, err = This()
if err.Error() != "Attempt to utilize unrecognized Declaration mechanism test" {
t.Error("expected no pooling mechanism error")
}
AddDeclaration("test", StubHerald{})
_, err = This()
}
func TestInit(t *testing.T) {
h := Herald{Pool: StubHerald{Error: true}, Declaration: StubHerald{}}
err := h.Init()
if err == nil {
t.Error("expected init error for pool")
}
h = Herald{Pool: StubHerald{}, Declaration: StubHerald{Error: true}}
err = h.Init()
if err == nil {
t.Error("expected init error for declaration")
}
h = Herald{Declaration: StubHerald{Error: true}}
err = h.Init()
if err == nil {
t.Error("expected init error for declaration with no pool")
}
h = Herald{Pool: StubHerald{}, Declaration: StubHerald{}}
err = h.Init()
if err != nil {
t.Error("expected no error")
}
}
func TestStartPool(t *testing.T) {
h := Herald{}
err := h.StartPool()
if err != nil {
t.Error("expecting no error for nil pool")
}
h = Herald{Pool: StubHerald{Error: true}}
err = h.StartPool()
if err == nil {
t.Error("expecting error from start pool")
}
}
func TestStopPool(t *testing.T) {
h := Herald{}
err := h.StopPool()
if err != nil {
t.Error("expecting no error for nil pool")
}
h = Herald{Pool: StubHerald{Error: true}}
err = h.StopPool()
if err == nil {
t.Error("expecting error from start pool")
}
}
func TestDeclare(t *testing.T) {
h := Herald{}
err := h.Declare()
if err != nil {
t.Error("expecting no error for nil declaration")
}
h = Herald{Declaration: StubHerald{Error: true}}
err = h.Declare()
if err == nil {
t.Error("expecting error from declare")
}
}
func TestGetService(t *testing.T) {
s := service.Service{}
h := Herald{Declaration: StubHerald{}}
h.GetService(&s)
if s.Domain != "test" {
t.Error("expected new service")
}
}
type StubHerald struct {
Error bool
}
func (s StubHerald) Start(*service.Service) error {
if s.Error {
return errors.New("an error")
}
return nil
}
func (s StubHerald) Stop(*service.Service) error {
if s.Error {
return errors.New("an error")
}
return nil
}
func (s StubHerald) Init() error {
if s.Error {
return errors.New("an error")
}
return nil
}
func (s StubHerald) Declare(*service.Service) error {
if s.Error {
return errors.New("an error")
}
return nil
}
func (s StubHerald) GetService(service *service.Service) error {
service.Domain = "test"
return nil
}