-
Notifications
You must be signed in to change notification settings - Fork 13
/
glances_test.go
90 lines (88 loc) · 2.08 KB
/
glances_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
package pushover
import (
"testing"
)
func TestGlancesValidation(t *testing.T) {
tests := []struct {
name string
fields *Glance
expectedErr error
}{
{
name: "valid message 1",
fields: &Glance{
Title: String("Hello World!"),
Text: String("Hi!"),
Subtext: String("Hello!"),
Count: Int(10),
Percent: Int(15),
},
expectedErr: nil,
},
{
name: "valid message 2",
fields: &Glance{
Title: String("quam nulla porttitor massa id"),
},
expectedErr: nil,
},
{
name: "invalid message (long title)",
fields: &Glance{
Title: String("facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra"),
},
expectedErr: ErrGlancesTitleTooLong,
},
{
name: "invalid message (long text)",
fields: &Glance{
Text: String("facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra"),
},
expectedErr: ErrGlancesTextTooLong,
},
{
name: "invalid message (long subtext)",
fields: &Glance{
Subtext: String("facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra"),
},
expectedErr: ErrGlancesSubtextTooLong,
},
{
name: "invalid message (percentage)",
fields: &Glance{
Percent: Int(101),
},
expectedErr: ErrGlancesInvalidPercent,
},
{
name: "invalid device",
fields: &Glance{
Title: String("hi!"),
DeviceName: "device!test",
},
expectedErr: ErrInvalidDeviceName,
},
{
name: "missing data",
fields: &Glance{
DeviceName: "a",
},
expectedErr: ErrGlancesMissingData,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
m := &Glance{
Title: tt.fields.Title,
Text: tt.fields.Text,
Subtext: tt.fields.Subtext,
Count: tt.fields.Count,
Percent: tt.fields.Percent,
DeviceName: tt.fields.DeviceName,
}
if err := m.validate(); err != tt.expectedErr {
t.Errorf("validate() error = %v, expected err %v", err, tt.expectedErr)
}
})
}
}