130 lines
3.8 KiB
Go
130 lines
3.8 KiB
Go
package common
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
type TimeTestCaseData struct {
|
|
t1 time.Time
|
|
t2 time.Time
|
|
expectResult bool
|
|
}
|
|
|
|
func TestInSameDay(t *testing.T) {
|
|
|
|
testCases := []*TimeTestCaseData{
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.May, 17, 15, 12, 15, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.May, 16, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: true,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2017, time.May, 16, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
}
|
|
|
|
for i := 0; i < len(testCases); i++ {
|
|
tc := testCases[i]
|
|
if InSameDay(tc.t1, tc.t2) != tc.expectResult {
|
|
t.Fatal("IsSameDay(", tc.t1, tc.t2, ") expect result is ", tc.expectResult)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsContinueDay(t *testing.T) {
|
|
|
|
testCases := []*TimeTestCaseData{
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.May, 17, 15, 12, 15, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: true,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.May, 16, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2017, time.May, 17, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
}
|
|
|
|
for i := 0; i < len(testCases); i++ {
|
|
tc := testCases[i]
|
|
if IsContinueDay(tc.t1, tc.t2) != tc.expectResult {
|
|
t.Fatal("IsContinueDay(", tc.t1, tc.t2, ") expect result is ", tc.expectResult)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestInSameMonth(t *testing.T) {
|
|
|
|
testCases := []*TimeTestCaseData{
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.May, 17, 15, 12, 15, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: true,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.June, 1, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 31, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2017, time.May, 17, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
}
|
|
|
|
for i := 0; i < len(testCases); i++ {
|
|
tc := testCases[i]
|
|
if InSameMonth(tc.t1, tc.t2) != tc.expectResult {
|
|
t.Fatal("InSameMonth(", tc.t1, tc.t2, ") expect result is ", tc.expectResult)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestInSameWeek(t *testing.T) {
|
|
|
|
testCases := []*TimeTestCaseData{
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.May, 17, 15, 12, 15, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 16, 15, 12, 15, 0, time.Local),
|
|
expectResult: true,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.May, 16, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2016, time.May, 15, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2016, time.January, 1, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2015, time.December, 31, 15, 12, 15, 0, time.Local),
|
|
expectResult: true,
|
|
},
|
|
&TimeTestCaseData{
|
|
t1: time.Date(2024, time.March, 17, 23, 59, 59, 0, time.Local),
|
|
t2: time.Date(2024, time.March, 18, 15, 12, 15, 0, time.Local),
|
|
expectResult: false,
|
|
},
|
|
}
|
|
|
|
for i := 0; i < len(testCases); i++ {
|
|
tc := testCases[i]
|
|
if InSameWeek(tc.t1, tc.t2) != tc.expectResult {
|
|
t.Fatal("InSameWeek(", tc.t1, tc.t2, ") expect result is ", tc.expectResult)
|
|
}
|
|
}
|
|
}
|