From d3d0fb11d7ccfc99136d4e35a0ffebdbcab4dd30 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 18 Aug 2022 12:01:14 +0200 Subject: [PATCH] Adding src/utils/time.go --- src/utils/time.go | 22 ++++++++++++++++++++++ src/utils/time_test.go | 26 ++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/utils/time.go create mode 100644 src/utils/time_test.go diff --git a/src/utils/time.go b/src/utils/time.go new file mode 100644 index 0000000..699ca72 --- /dev/null +++ b/src/utils/time.go @@ -0,0 +1,22 @@ + +package utils + +import ( + "time" +) + +type Time struct { + ts time.Time +} + +func (t *Time) SetTime(value time.Time) { + t.ts = value +} + +func (t Time) GetTime() time.Time { + + if ! t.ts.IsZero() { + return t.ts + } + return time.Now().In(time.UTC) +} diff --git a/src/utils/time_test.go b/src/utils/time_test.go new file mode 100644 index 0000000..d696ca6 --- /dev/null +++ b/src/utils/time_test.go @@ -0,0 +1,26 @@ + +package utils + +import ( + "time" + "testing" + "github.com/stretchr/testify/assert" +) + +func TestTimeGetTimeWithDefaultValue(t *testing.T) { + + var ts Time + + // Assert that time is NOW (+-10 seconds) + assert.InDelta(t, ts.GetTime().Unix(), time.Now().In(time.UTC).Unix(), float64(10)) +} + +func TestTimeGetTimeWithSetTime(t *testing.T) { + + var ts Time + + expected := time.Unix(1048722042, 500) + ts.SetTime(expected) + + assert.Equal(t, expected, ts.GetTime()) +}