@@ -16,7 +16,8 @@ type TestCase struct {
1616 Second int
1717 MilliSecond int
1818
19- Zone float64
19+ Zone float64
20+ ShouldFailParse bool
2021}
2122
2223var cases = []TestCase {
@@ -179,13 +180,49 @@ var cases = []TestCase{
179180 MilliSecond : 502 ,
180181 Zone : 5.75 ,
181182 },
183+ {
184+ Using : "2017-04-24T09:41:34.502+00" ,
185+ Year : 2017 , Month : 4 , Day : 24 ,
186+ Hour : 9 , Minute : 41 , Second : 34 ,
187+ MilliSecond : 502 ,
188+ Zone : 0 ,
189+ },
190+ {
191+ Using : "2017-04-24T09:41:34.502+0000" ,
192+ Year : 2017 , Month : 4 , Day : 24 ,
193+ Hour : 9 , Minute : 41 , Second : 34 ,
194+ MilliSecond : 502 ,
195+ Zone : 0 ,
196+ },
197+ {
198+ Using : "2017-04-24T09:41:34.502+00:00" ,
199+ Year : 2017 , Month : 4 , Day : 24 ,
200+ Hour : 9 , Minute : 41 , Second : 34 ,
201+ MilliSecond : 502 ,
202+ Zone : 0 ,
203+ },
204+ {
205+ Using : "2017-04-24T09:41:34.502-00" ,
206+ ShouldFailParse : true ,
207+ },
208+ {
209+ Using : "2017-04-24T09:41:34.502-0000" ,
210+ ShouldFailParse : true ,
211+ },
212+ {
213+ Using : "2017-04-24T09:41:34.502-00:00" ,
214+ ShouldFailParse : true ,
215+ },
182216}
183217
184218func TestParse (t * testing.T ) {
185219 for _ , c := range cases {
186220 t .Run (c .Using , func (t * testing.T ) {
187221 d , err := Parse ([]byte (c .Using ))
188222 if err != nil {
223+ if c .ShouldFailParse {
224+ return
225+ }
189226 t .Fatal (err )
190227 }
191228 t .Log (d )
@@ -227,6 +264,9 @@ func TestParseString(t *testing.T) {
227264 t .Run (c .Using , func (t * testing.T ) {
228265 d , err := ParseString (c .Using )
229266 if err != nil {
267+ if c .ShouldFailParse {
268+ return
269+ }
230270 t .Fatal (err )
231271 }
232272 t .Log (d )
0 commit comments