100-go-mistakes/11-testing/87-time-api/listing2/main_test.go
2021-12-27 15:56:17 +01:00

28 lines
601 B
Go

package listing1
import (
"testing"
"time"
)
func TestCache_TrimBefore(t *testing.T) {
events := []Event{
{Timestamp: parseTime(t, "2020-01-01T12:00:00.04Z")},
{Timestamp: parseTime(t, "2020-01-01T12:00:00.05Z")},
{Timestamp: parseTime(t, "2020-01-01T12:00:00.06Z")},
}
cache := &Cache{now: func() time.Time {
return parseTime(t, "2020-01-01T12:00:00.06Z")
}}
cache.Add(events)
cache.TrimBefore(15 * time.Millisecond)
// ...
}
func parseTime(t *testing.T, timestamp string) time.Time {
ts, err := time.Parse(time.RFC3339, timestamp)
if err != nil {
t.FailNow()
}
return ts
}