@@ -3020,6 +3020,9 @@ Diff:
30203020 )
30213021 Equal (t , expected , actual )
30223022
3023+ timeA := time .Date (2020 , 9 , 24 , 0 , 0 , 0 , 0 , time .UTC )
3024+ timeB := time .Date (2020 , 9 , 25 , 0 , 0 , 0 , 0 , time .UTC )
3025+
30233026 expected = `
30243027
30253028Diff:
@@ -3028,14 +3031,117 @@ Diff:
30283031@@ -1,2 +1,2 @@
30293032-(time.Time) 2020-09-24 00:00:00 +0000 UTC
30303033+(time.Time) 2020-09-25 00:00:00 +0000 UTC
3031-
3034+ ` + " \n "
3035+
3036+ actual = diff (timeA , timeB )
3037+ Equal (t , expected , actual )
3038+
3039+ expected = `
3040+
3041+ Diff:
3042+ --- Expected
3043+ +++ Actual
3044+ @@ -1,2 +1,2 @@
3045+ -(*time.Time)(2020-09-24 00:00:00 +0000 UTC)
3046+ +(*time.Time)(2020-09-25 00:00:00 +0000 UTC)
3047+ ` + " \n "
3048+
3049+ actual = diff (& timeA , & timeB )
3050+ Equal (t , expected , actual )
3051+
3052+ expected = `
3053+
3054+ Diff:
3055+ --- Expected
3056+ +++ Actual
3057+ @@ -1,3 +1,3 @@
3058+ (assert.someStruct) {
3059+ - t: (time.Time) 2020-09-24 00:00:00 +0000 UTC
3060+ + t: (time.Time) 2020-09-25 00:00:00 +0000 UTC
3061+ }
30323062`
30333063
3064+ type someStruct struct {
3065+ t time.Time
3066+ }
3067+
30343068 actual = diff (
3035- time . Date ( 2020 , 9 , 24 , 0 , 0 , 0 , 0 , time . UTC ) ,
3036- time . Date ( 2020 , 9 , 25 , 0 , 0 , 0 , 0 , time . UTC ) ,
3069+ someStruct { t : timeA } ,
3070+ someStruct { t : timeB } ,
30373071 )
3072+
3073+ Equal (t , expected , actual )
3074+
3075+ // here we test the diff is stable even if the order of map keys is not
3076+ expected = `
3077+
3078+ Diff:
3079+ --- Expected
3080+ +++ Actual
3081+ @@ -1,4 +1,4 @@
3082+ (map[time.Time]int) (len=3) {
3083+ - (time.Time) 2020-09-24 00:00:00 +0000 UTC: (int) 1,
3084+ - (time.Time) 2020-09-25 00:00:00 +0000 UTC: (int) 42,
3085+ + (time.Time) 2020-09-24 00:00:00 +0000 UTC: (int) 2,
3086+ + (time.Time) 2020-09-26 00:00:00 +0000 UTC: (int) 42,
3087+ (time.Time) 2020-09-27 00:00:00 +0000 UTC: (int) 100
3088+ `
3089+
3090+ timeC := time .Date (2020 , 9 , 26 , 0 , 0 , 0 , 0 , time .UTC )
3091+ timeD := time .Date (2020 , 9 , 27 , 0 , 0 , 0 , 0 , time .UTC )
3092+
3093+ mapTimeA := map [time.Time ]int {
3094+ timeA : 1 ,
3095+ timeB : 42 ,
3096+ timeD : 100 ,
3097+ }
3098+
3099+ mapTimeB := map [time.Time ]int {
3100+ timeA : 2 ,
3101+ timeC : 42 ,
3102+ timeD : 100 ,
3103+ }
3104+
3105+ actual = diff (mapTimeA , mapTimeB )
30383106 Equal (t , expected , actual )
3107+
3108+ // here we test the time are ordered against the time.Time.Before() and not the time.Time.String()
3109+ expected = `
3110+
3111+ Diff:
3112+ --- Expected
3113+ +++ Actual
3114+ @@ -1,5 +1,5 @@
3115+ (map[time.Time]int) (len=3) {
3116+ - (time.Time) 2020-09-24 00:00:00 +0000 UTC: (int) 1,
3117+ - (time.Time) 2020-09-25 00:00:00 +0900 JST: (int) 100,
3118+ - (time.Time) 2020-09-25 00:00:00 +0000 UTC: (int) 42
3119+ + (time.Time) 2020-09-24 00:00:00 +0900 JST: (int) 42,
3120+ + (time.Time) 2020-09-24 00:00:00 +0000 UTC: (int) 2,
3121+ + (time.Time) 2020-09-25 00:00:00 +0900 JST: (int) 100
3122+ }
3123+ `
3124+
3125+ loc := time .FixedZone ("JST" , 9 * 60 * 60 )
3126+
3127+ timeE := time .Date (2020 , 9 , 24 , 0 , 0 , 0 , 0 , loc )
3128+ timeF := time .Date (2020 , 9 , 25 , 0 , 0 , 0 , 0 , loc )
3129+
3130+ mapTimeLocA := map [time.Time ]int {
3131+ timeA : 1 ,
3132+ timeB : 42 ,
3133+ timeF : 100 ,
3134+ }
3135+
3136+ mapTimeLocB := map [time.Time ]int {
3137+ timeA : 2 ,
3138+ timeE : 42 ,
3139+ timeF : 100 ,
3140+ }
3141+
3142+ actual = diff (mapTimeLocA , mapTimeLocB )
3143+ Equal (t , expected , actual )
3144+
30393145}
30403146
30413147func TestTimeEqualityErrorFormatting (t * testing.T ) {
0 commit comments