diff --git a/pkg/time/time_test.go b/pkg/time/time_test.go index 20f0f8e29..18512bb81 100644 --- a/pkg/time/time_test.go +++ b/pkg/time/time_test.go @@ -20,24 +20,141 @@ import ( "encoding/json" "testing" "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) var ( - testingTime, _ = Parse(time.RFC3339, "1977-09-02T22:04:05Z") - testingTimeString = `"1977-09-02T22:04:05Z"` + timeParseString = `"1977-09-02T22:04:05Z"` + timeString = "1977-09-02 22:04:05 +0000 UTC" ) -func TestNonZeroValueMarshal(t *testing.T) { +func givenTime(t *testing.T) Time { + result, err := Parse(time.RFC3339, timeParseString) + require.NoError(t, err) + return result +} + +func TestDate(t *testing.T) { + got := Date(1977, 9, 2, 22, 04, 05, 0, time.UTC) + assert.Equal(t, timeString, got.String()) +} + +func TestNow(t *testing.T) { + testingTime := givenTime(t) + got := Now() + assert.Truef(t, testingTime.Before(got), "expected %s before %s", testingTime.String(), got.String()) +} + +func TestParse(t *testing.T) { + testingTime := givenTime(t) + got, err := Parse(time.RFC3339, timeParseString) + assert.NoError(t, err) + if testingTime.Before(got) { + t.Errorf("expected %s before %s", testingTime.String(), got.String()) + } +} + +//func TestParseInLocation(t *testing.T) { +// +// got, err := ParseInLocation(tt.args.layout, tt.args.value, tt.args.loc) +// if (err != nil) != tt.wantErr { +// t.Errorf("ParseInLocation() error = %v, wantErr %v", err, tt.wantErr) +// return +// } +// if !reflect.DeepEqual(got, tt.want) { +// t.Errorf("ParseInLocation() got = %v, want %v", got, tt.want) +// } +//} + +//func TestTime_Add(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.Add(tt.args.d); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("Add() = %v, want %v", got, tt.want) +// } +//} +// +//func TestTime_AddDate(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.AddDate(tt.args.years, tt.args.months, tt.args.days); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("AddDate() = %v, want %v", got, tt.want) +// } +//} + +//func TestTime_After(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.After(tt.args.u); got != tt.want { +// t.Errorf("After() = %v, want %v", got, tt.want) +// } +// +//} +// +//func TestTime_Before(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.Before(tt.args.u); got != tt.want { +// t.Errorf("Before() = %v, want %v", got, tt.want) +// } +// +//} +// +//func TestTime_Equal(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.Equal(tt.args.u); got != tt.want { +// t.Errorf("Equal() = %v, want %v", got, tt.want) +// } +// +//} + +//func TestTime_In(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.In(tt.args.loc); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("In() = %v, want %v", got, tt.want) +// } +// +//} +// +//func TestTime_Local(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.Local(); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("Local() = %v, want %v", got, tt.want) +// } +// +//} + +func TestTime_MarshalJSONNonZero(t *testing.T) { + testingTime := givenTime(t) res, err := json.Marshal(testingTime) if err != nil { t.Fatal(err) } - if testingTimeString != string(res) { - t.Errorf("expected a marshaled value of %s, got %s", testingTimeString, res) + if timeParseString != string(res) { + t.Errorf("expected a marshaled value of %s, got %s", timeParseString, res) } } -func TestZeroValueMarshal(t *testing.T) { +func TestTime_MarshalJSONZeroValue(t *testing.T) { res, err := json.Marshal(Time{}) if err != nil { t.Fatal(err) @@ -47,9 +164,47 @@ func TestZeroValueMarshal(t *testing.T) { } } -func TestNonZeroValueUnmarshal(t *testing.T) { +//func TestTime_Round(t *testing.T) { +// if got := t.Round(tt.args.d); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("Round() = %v, want %v", got, tt.want) +// } +//} + +//func TestTime_Sub(t *testing.T) { +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.Sub(tt.args.u); got != tt.want { +// t.Errorf("Sub() = %v, want %v", got, tt.want) +// } +//} + +//func TestTime_Truncate(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.Truncate(tt.args.d); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("Truncate() = %v, want %v", got, tt.want) +// } +// +//} +// +//func TestTime_UTC(t *testing.T) { +// +// sut := Time{ +// Time: tt.fields.Time, +// } +// if got := t.UTC(); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("UTC() = %v, want %v", got, tt.want) +// } +// +//} + +func TestTime_UnmarshalJSONNonZeroValue(t *testing.T) { + testingTime := givenTime(t) var myTime Time - err := json.Unmarshal([]byte(testingTimeString), &myTime) + err := json.Unmarshal([]byte(timeParseString), &myTime) if err != nil { t.Fatal(err) } @@ -58,7 +213,7 @@ func TestNonZeroValueUnmarshal(t *testing.T) { } } -func TestEmptyStringUnmarshal(t *testing.T) { +func TestTime_UnmarshalJSONEmptyString(t *testing.T) { var myTime Time err := json.Unmarshal([]byte(emptyString), &myTime) if err != nil { @@ -69,7 +224,7 @@ func TestEmptyStringUnmarshal(t *testing.T) { } } -func TestZeroValueUnmarshal(t *testing.T) { +func TestTime_UnmarshalJSONZeroValue(t *testing.T) { // This test ensures that we can unmarshal any time value that was output // with the current go default value of "0001-01-01T00:00:00Z" var myTime Time @@ -81,3 +236,11 @@ func TestZeroValueUnmarshal(t *testing.T) { t.Errorf("expected time to be equal to zero value, got %v", myTime) } } + +//func TestUnix(t *testing.T) { +// +// if got := Unix(tt.args.sec, tt.args.nsec); !reflect.DeepEqual(got, tt.want) { +// t.Errorf("Unix() = %v, want %v", got, tt.want) +// } +// +//}