1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package strfmt
16
17 import (
18 "testing"
19 "time"
20
21 "github.com/stretchr/testify/assert"
22 )
23
24 func TestDate(t *testing.T) {
25 pp := Date{}
26 err := pp.UnmarshalText([]byte{})
27 assert.NoError(t, err)
28 err = pp.UnmarshalText([]byte("yada"))
29 assert.Error(t, err)
30
31 orig := "2014-12-15"
32 bj := []byte("\"" + orig + "\"")
33 err = pp.UnmarshalText([]byte(orig))
34 assert.NoError(t, err)
35
36 txt, err := pp.MarshalText()
37 assert.NoError(t, err)
38 assert.Equal(t, orig, string(txt))
39
40 err = pp.UnmarshalJSON(bj)
41 assert.NoError(t, err)
42 assert.EqualValues(t, orig, pp.String())
43
44 err = pp.UnmarshalJSON([]byte(`"1972/01/01"`))
45 assert.Error(t, err)
46
47 b, err := pp.MarshalJSON()
48 assert.NoError(t, err)
49 assert.Equal(t, bj, b)
50
51 var dateZero Date
52 err = dateZero.UnmarshalJSON([]byte(jsonNull))
53 assert.NoError(t, err)
54 assert.Equal(t, Date{}, dateZero)
55 }
56
57 func TestDate_IsDate(t *testing.T) {
58 tests := []struct {
59 value string
60 valid bool
61 }{
62 {"2017-12-22", true},
63 {"2017-1-1", false},
64 {"17-13-22", false},
65 {"2017-02-29", false},
66 {"1900-02-29", false},
67 {"2100-02-29", false},
68 {"2000-02-29", true},
69 {"2400-02-29", true},
70 {"2017-13-22", false},
71 {"2017-12-32", false},
72 {"20171-12-32", false},
73 {"YYYY-MM-DD", false},
74 {"20-17-2017", false},
75 {"2017-12-22T01:02:03Z", false},
76 }
77 for _, test := range tests {
78 assert.Equal(t, test.valid, IsDate(test.value), "value [%s] should be valid: [%t]", test.value, test.valid)
79 }
80 }
81
82 func TestDeepCopyDate(t *testing.T) {
83 ref := time.Now().Truncate(24 * time.Hour).UTC()
84 date := Date(ref)
85 in := &date
86
87 out := new(Date)
88 in.DeepCopyInto(out)
89 assert.Equal(t, in, out)
90
91 out2 := in.DeepCopy()
92 assert.Equal(t, in, out2)
93
94 var inNil *Date
95 out3 := inNil.DeepCopy()
96 assert.Nil(t, out3)
97 }
98
View as plain text