github.com/diadata-org/diadata@v1.4.593/pkg/utils/dates_test.go (about) 1 package utils 2 3 import ( 4 "testing" 5 "time" 6 ) 7 8 func TestCheckWeekDay(t *testing.T) { 9 date1, _ := time.Parse("2006-01-02", "2020-01-01") 10 date2, _ := time.Parse("2006-01-02", "2020-04-18") 11 date3, _ := time.Parse("2006-01-02", "2020-04-19") 12 13 tables := []struct { 14 date time.Time 15 weekday bool 16 }{ 17 {date1, true}, 18 {date2, false}, 19 {date3, false}, 20 } 21 for _, table := range tables { 22 value := CheckWeekDay(table.date) 23 if value != table.weekday { 24 t.Errorf("Value of %s was incorrect, got: %v, want: %v.", table.date, value, table.weekday) 25 } 26 } 27 } 28 29 func TestContainsDay(t *testing.T) { 30 date1, _ := time.Parse("2006-01-02", "2020-04-01") 31 date2, _ := time.Parse("2006-01-02 15:04:05", "2020-04-18 14:22:55") 32 date3, _ := time.Parse("2006-01-02", "2020-04-18") 33 34 dates1 := []time.Time{date1, date2} 35 dates2 := []time.Time{date1} 36 dates3 := []time.Time{} 37 38 tables := []struct { 39 dates []time.Time 40 date time.Time 41 value bool 42 }{ 43 {dates1, date1, true}, 44 {dates1, date3, true}, 45 {dates2, date2, false}, 46 {dates3, date3, false}, 47 } 48 for _, table := range tables { 49 value := ContainsDay(table.dates, table.date) 50 if value != table.value { 51 t.Errorf("Slice %v contains date %v. Got %v but want %v.", table.dates, table.date, value, table.value) 52 } 53 } 54 } 55 56 func TestSameDays(t *testing.T) { 57 date1, _ := time.Parse("2006-01-02", "2020-04-01") 58 date2, _ := time.Parse("2006-01-02 15:04:05", "2020-04-18 14:22:55") 59 date3, _ := time.Parse("2006-01-02 15:04:05", "2020-04-18 02:22:55") 60 date4, _ := time.Parse("2006-01-02", "2020-04-18") 61 62 tables := []struct { 63 date1 time.Time 64 date2 time.Time 65 value bool 66 }{ 67 {date1, date2, false}, 68 {date2, date3, true}, 69 {date2, date4, true}, 70 {date4, date3, true}, 71 } 72 for _, table := range tables { 73 value := SameDays(table.date1, table.date2) 74 if value != table.value { 75 t.Errorf("Got %v and %v are the same day: %v, but should be %v.", table.date1, table.date2, value, table.value) 76 } 77 } 78 } 79 80 func TestCountDays(t *testing.T) { 81 date1, _ := time.Parse("2006-01-02", "2020-04-01") 82 date2, _ := time.Parse("2006-01-02 15:04:05", "2020-04-10 14:22:55") 83 date3, _ := time.Parse("2006-01-02", "2020-04-02") 84 date4, _ := time.Parse("2006-01-02", "2020-04-03") 85 86 tables := []struct { 87 dateInit time.Time 88 dateFinal time.Time 89 business bool 90 days int 91 err error 92 }{ 93 {date1, date2, true, 7, nil}, 94 {date1, date2, false, 9, nil}, 95 {date1, date3, true, 1, nil}, 96 {date1, date3, false, 1, nil}, 97 {date1, date4, false, 2, nil}, 98 {date1, date4, true, 2, nil}, 99 } 100 for _, table := range tables { 101 value, err := CountDays(table.dateInit, table.dateFinal, table.business) 102 if value != table.days { 103 t.Errorf("Number of days bewteen %v and %v is %v but should be %v, as business is %v.", table.dateInit, table.dateFinal, value, table.days, table.business) 104 } 105 if err != nil { 106 t.Errorf("Error should be %v but is %v", table.err, err) 107 } 108 } 109 } 110 111 func TestGetYesterday(t *testing.T) { 112 date1 := "2020-01-01" 113 date2 := "2020-04-18 14:22:55" 114 115 layout1 := "2006-01-02" 116 layout2 := "2006-01-02 15:04:05" 117 118 tables := []struct { 119 date string 120 layout string 121 yesterday string 122 }{ 123 {date1, layout1, "2019-12-31"}, 124 {date2, layout2, "2020-04-17 14:22:55"}, 125 } 126 for _, table := range tables { 127 value := GetYesterday(table.date, table.layout) 128 if value != table.yesterday { 129 t.Errorf("Value of %s was incorrect, got: %v, want: %v.", table.date, value, table.yesterday) 130 } 131 } 132 }