game_sync/common/time_test.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)
}
}
}