@@ -256,69 +256,44 @@ func TestTime_JSONRoundTrip(t *testing.T) {
256256}
257257
258258func TestTime_EdgeCases (t * testing.T ) {
259- t .Run ("very old time" , func (t * testing.T ) {
260- oldTime := stdtime .Date (1000 , 1 , 1 , 0 , 0 , 0 , 0 , stdtime .UTC )
261- timeVal := * New (oldTime )
262-
263- jsonData , err := json .Marshal (timeVal )
264- if err != nil {
265- t .Errorf ("json.Marshal() error = %v" , err )
266- return
267- }
268-
269- var result Time
270- err = json .Unmarshal (jsonData , & result )
271- if err != nil {
272- t .Errorf ("json.Unmarshal() error = %v" , err )
273- return
274- }
275-
276- if ! result .Time .Equal (oldTime ) {
277- t .Errorf ("Time round trip failed: original = %v, result = %v" , oldTime , result )
278- }
279- })
280-
281- t .Run ("very future time" , func (t * testing.T ) {
282- futureTime := stdtime .Date (9999 , 12 , 31 , 23 , 59 , 59 , 999999999 , stdtime .UTC )
283- timeVal := * New (futureTime )
284-
285- jsonData , err := json .Marshal (timeVal )
286- if err != nil {
287- t .Errorf ("json.Marshal() error = %v" , err )
288- return
289- }
290-
291- var result Time
292- err = json .Unmarshal (jsonData , & result )
293- if err != nil {
294- t .Errorf ("json.Unmarshal() error = %v" , err )
295- return
296- }
297-
298- if ! result .Time .Equal (futureTime ) {
299- t .Errorf ("Time round trip failed: original = %v, result = %v" , futureTime , result )
300- }
301- })
259+ tests := []struct {
260+ name string
261+ time stdtime.Time
262+ }{
263+ {
264+ name : "very old time" ,
265+ time : stdtime .Date (1000 , 1 , 1 , 0 , 0 , 0 , 0 , stdtime .UTC ),
266+ },
267+ {
268+ name : "very future time" ,
269+ time : stdtime .Date (9999 , 12 , 31 , 23 , 59 , 59 , 999999999 , stdtime .UTC ),
270+ },
271+ {
272+ name : "leap year time" ,
273+ time : stdtime .Date (2024 , 2 , 29 , 12 , 0 , 0 , 0 , stdtime .UTC ),
274+ },
275+ }
302276
303- t . Run ( "leap year time" , func ( t * testing. T ) {
304- leapTime := stdtime . Date ( 2024 , 2 , 29 , 12 , 0 , 0 , 0 , stdtime . UTC )
305- timeVal := * New (leapTime )
277+ for _ , tt := range tests {
278+ t . Run ( tt . name , func ( t * testing. T ) {
279+ timeVal := * New (tt . time )
306280
307- jsonData , err := json .Marshal (timeVal )
308- if err != nil {
309- t .Errorf ("json.Marshal() error = %v" , err )
310- return
311- }
281+ jsonData , err := json .Marshal (timeVal )
282+ if err != nil {
283+ t .Errorf ("json.Marshal() error = %v" , err )
284+ return
285+ }
312286
313- var result Time
314- err = json .Unmarshal (jsonData , & result )
315- if err != nil {
316- t .Errorf ("json.Unmarshal() error = %v" , err )
317- return
318- }
287+ var result Time
288+ err = json .Unmarshal (jsonData , & result )
289+ if err != nil {
290+ t .Errorf ("json.Unmarshal() error = %v" , err )
291+ return
292+ }
319293
320- if ! result .Time .Equal (leapTime ) {
321- t .Errorf ("Time round trip failed: original = %v, result = %v" , leapTime , result )
322- }
323- })
294+ if ! result .Time .Equal (tt .time ) {
295+ t .Errorf ("Time round trip failed: original = %v, result = %v" , tt .time , result )
296+ }
297+ })
298+ }
324299}
0 commit comments