mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 14:52:17 +00:00
77 lines
1.6 KiB
Go
77 lines
1.6 KiB
Go
|
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)
|
||
|
)
|
||
|
|
||
|
func TestParseDate(t *testing.T) {
|
||
|
assert := assert.New(t)
|
||
|
|
||
|
var testDates = []struct {
|
||
|
dateStr string
|
||
|
date time.Time
|
||
|
errNil bool
|
||
|
}{
|
||
|
{"2015-12-31", date, true},
|
||
|
{"2015-31-12", date, false},
|
||
|
{"12-31-2015", date, false},
|
||
|
{"31-12-2015", date, false},
|
||
|
}
|
||
|
|
||
|
for _, test := range testDates {
|
||
|
parsed, err := ParseDate(test.dateStr)
|
||
|
switch test.errNil {
|
||
|
case true:
|
||
|
assert.Nil(err)
|
||
|
assert.True(parsed.Equal(test.date), "parsed: %v, want %v", parsed, test.date)
|
||
|
case false:
|
||
|
assert.NotNil(err, "parsed %v, expected err %v", parsed, err)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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, nil, true},
|
||
|
{":2016-12-31", nil, &date2, true},
|
||
|
{"2016-12-31", nil, nil, false},
|
||
|
{"2016-31-12:", nil, nil, false},
|
||
|
{":2016-31-12", nil, nil, false},
|
||
|
}
|
||
|
|
||
|
for _, test := range testDates {
|
||
|
start, end, err := ParseDateRange(test.dateStr)
|
||
|
switch test.errNil {
|
||
|
case true:
|
||
|
assert.Nil(err)
|
||
|
testPtr := func(want, have *time.Time) {
|
||
|
if want == nil {
|
||
|
assert.Nil(have)
|
||
|
} else {
|
||
|
assert.True((*have).Equal(*want))
|
||
|
}
|
||
|
}
|
||
|
testPtr(test.start, start)
|
||
|
testPtr(test.end, end)
|
||
|
case false:
|
||
|
assert.NotNil(err)
|
||
|
}
|
||
|
}
|
||
|
}
|