-
Notifications
You must be signed in to change notification settings - Fork 2
/
config_validate_timestamp_test.go
157 lines (136 loc) · 3.54 KB
/
config_validate_timestamp_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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package main
import (
"fmt"
"testing"
)
var config ConfigFile = ConfigFile{}
var strmCfg = StreamConfig{
"streamName",
"name",
"type",
"url",
"StreamApiKey",
"RecordFormatString",
nil,
nil,
}
/*
* Valid configuration - take timestamp as is
*/
func TestValidateEmtpySrcDest(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "", ""}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
if err != nil {
fmt.Println(err)
t.Fail()
}
}
/*
* Valid configuration - valid timestamp formats
*/
func TestValidateCorrectSrcDest(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "2006-01-02T15:04:05.999Z", "2006-01-02T15:04:05.999Z"}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
if err != nil {
fmt.Println(err)
t.Fail()
}
}
/*
* Valid configuration - slash formats to dash formats
*/
func TestValidateVariousDelimiterDate(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "2006/01/02 15:04:05", "2006-01-02T15:04:05.999Z"}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
if err != nil {
t.Fail()
fmt.Println(err)
}
}
/*
* Invalid Config - valid source but no destination format
*/
func TestValidateNoDestinationFormat(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "2006-01-02T15:04:05.999Z", ""}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
expected := "must specify Source & Destination Timestamp Format when datatype is Timestamp"
if err.Error() != expected {
t.Fail()
}
}
/*
* Invalid configuration - valid destination but no source format
*/
func TestValidateNoSourceFormat(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "", "2006-01-02T15:04:05.999Z"}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
expected := "must specify Source Timestamp Format when datatype is Timestamp"
if err.Error() != expected {
t.Fail()
fmt.Println(err)
}
}
/*
* Invalid configuration - invalid source format
*/
func TestValidateInvalidSource(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "2006-01-02T15::05.999Z", "2006-01-02T15:04:05.999Z"}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
if err == nil {
t.Fail()
fmt.Println(err)
}
}
/*
* Invalid configuration - invalid destination format
*/
func TestValidateInvalidDestination(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "2006-01-02T15:04:05.999Z", "2006-01-02T15::05.999Z"}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
if err == nil {
t.Fail()
fmt.Println(err)
}
}
/*
* Long source to short destination
* Result - warns of a possible invalid format
*/
func TestValidateShortDestination(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "2006-01-02T15:04:05.999Z", "2006-01-02"}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
if err != nil {
t.Fail()
fmt.Println(err)
}
}
/*
* Short Date to long date
* Result - warns of a possible invalid format
*/
func TestValidateShortSource(t *testing.T) {
var attrs = []Attribute{{"key", "timestamp", 16, "2006-01-02", "2006-01-02T15:04:05.999Z"}}
strmCfg.RecordFormat = attrs
config.Streams = []StreamConfig{strmCfg}
err := config.validate()
if err != nil {
t.Fail()
fmt.Println(err)
}
}