1
1
package timeexpression
2
2
3
3
import (
4
+ "errors"
5
+ "fmt"
6
+ "github.com/stretchr/testify/assert"
4
7
"testing"
5
8
"time"
6
9
)
@@ -10,6 +13,77 @@ type testData struct {
10
13
result bool
11
14
}
12
15
16
+ func TestHourUnitExpression_New (t * testing.T ) {
17
+ testDatas := []struct {
18
+ exp string
19
+ err error
20
+ start hourUnit
21
+ end hourUnit
22
+ isAll bool
23
+ }{
24
+ {
25
+ exp : "[13]" ,
26
+ err : ErrHourUnitFormat ,
27
+ start : hourUnit {},
28
+ end : hourUnit {},
29
+ isAll : false ,
30
+ },
31
+ {
32
+ exp : "*" ,
33
+ err : nil ,
34
+ start : hourUnit {
35
+ Hour : 0 ,
36
+ Minute : 0 ,
37
+ Sec : 0 ,
38
+ },
39
+ end : hourUnit {
40
+ Hour : 24 ,
41
+ Minute : 0 ,
42
+ Sec : 0 ,
43
+ },
44
+ isAll : true ,
45
+ },
46
+ {
47
+ exp : "12:00:00-13:00:00" ,
48
+ err : nil ,
49
+ start : hourUnit {
50
+ Hour : 12 ,
51
+ Minute : 0 ,
52
+ Sec : 0 ,
53
+ },
54
+ end : hourUnit {
55
+ Hour : 13 ,
56
+ Minute : 0 ,
57
+ Sec : 0 ,
58
+ },
59
+ isAll : false ,
60
+ },
61
+ {
62
+ exp : "13:00:00-12:00:00" ,
63
+ err : errors .New ("hour error: start after end" ),
64
+ start : hourUnit {},
65
+ end : hourUnit {},
66
+ isAll : false ,
67
+ },
68
+ }
69
+
70
+ for i , data := range testDatas {
71
+ fmt .Printf ("[%d] ex[%s]\n " , i , data .exp )
72
+
73
+ expression , err := newHourUnitExpression (data .exp )
74
+ if data .err != nil {
75
+ assert .NotNil (t , err )
76
+ assert .EqualError (t , data .err , err .Error ())
77
+ } else {
78
+ assert .NotNil (t , expression )
79
+ assert .Equal (t , data .start , expression .start )
80
+ assert .Equal (t , data .end , expression .end )
81
+ assert .Equal (t , data .isAll , expression .isAll )
82
+ }
83
+
84
+ }
85
+ }
86
+
13
87
// TestHourUnitExpression_IsIn 判断日期格式
14
88
func TestHourUnitExpression_IsIn (t * testing.T ) {
15
89
expression , err := newHourUnitExpression ("13:00:03-16:59:59" )
0 commit comments