github.com/go-graphite/carbonapi@v0.17.0/date/date_test.go (about) 1 package date 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 ) 8 9 func TestDateParamToEpoch(t *testing.T) { 10 11 defaultTimeZone := time.Local 12 timeNow = func() time.Time { 13 //16 Aug 1994 15:30 14 return time.Date(1994, time.August, 16, 15, 30, 0, 100, defaultTimeZone) 15 } 16 17 const shortForm = "15:04 2006-Jan-02" 18 19 var tests = []struct { 20 input string 21 output string 22 }{ 23 {"midnight", "00:00 1994-Aug-16"}, 24 {"noon", "12:00 1994-Aug-16"}, 25 {"teatime", "16:00 1994-Aug-16"}, 26 {"tomorrow", "00:00 1994-Aug-17"}, 27 28 {"noon 08/12/94", "12:00 1994-Aug-12"}, 29 {"midnight 20060812", "00:00 2006-Aug-12"}, 30 {"noon tomorrow", "12:00 1994-Aug-17"}, 31 32 {"17:04 19940812", "17:04 1994-Aug-12"}, 33 {"-1day", "15:30 1994-Aug-15"}, 34 {"19940812", "00:00 1994-Aug-12"}, 35 } 36 37 for _, tt := range tests { 38 got := DateParamToEpoch(tt.input, "Local", 0, defaultTimeZone) 39 ts, err := time.ParseInLocation(shortForm, tt.output, defaultTimeZone) 40 if err != nil { 41 panic(fmt.Sprintf("error parsing time: %q: %v", tt.output, err)) 42 } 43 44 want := int64(ts.Unix()) 45 if got != want { 46 t.Errorf("dateParamToEpoch(%q, 0)=%v, want %v", tt.input, got, want) 47 } 48 } 49 }