package common import ( "testing" "time" "github.com/stretchr/testify/assert" ) var ( date = time.Date(2015, time.Month(12), 31, 0, 0, 0, 0, time.UTC) date2 = time.Date(2016, time.Month(12), 31, 0, 0, 0, 0, time.UTC) zero time.Time ) func TestParseDateRange(t *testing.T) { assert := assert.New(t) var testDates = []struct { dateStr string start time.Time end time.Time errNil bool }{ {"2015-12-31:2016-12-31", date, date2, true}, {"2015-12-31:", date, zero, true}, {":2016-12-31", zero, date2, true}, {"2016-12-31", zero, zero, false}, {"2016-31-12:", zero, zero, false}, {":2016-31-12", zero, zero, false}, } for _, test := range testDates { start, end, err := ParseDateRange(test.dateStr) if test.errNil { assert.Nil(err) testPtr := func(want, have time.Time) { assert.True(have.Equal(want)) } testPtr(test.start, start) testPtr(test.end, end) } else { assert.NotNil(err) } } }