summaryrefslogtreecommitdiff
path: root/daemon/logger/jsonfilelog/jsonlog/time_marshalling_test.go
blob: ee2a2709fd177d79da2b242e2d2e30a550d3498b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package jsonlog // import "github.com/docker/docker/daemon/logger/jsonfilelog/jsonlog"

import (
	"testing"
	"time"

	"gotest.tools/v3/assert"
	is "gotest.tools/v3/assert/cmp"
)

func TestFastTimeMarshalJSONWithInvalidYear(t *testing.T) {
	aTime := time.Date(-1, 1, 1, 0, 0, 0, 0, time.Local)
	_, err := fastTimeMarshalJSON(aTime)
	assert.Check(t, is.ErrorContains(err, "year outside of range"))

	anotherTime := time.Date(10000, 1, 1, 0, 0, 0, 0, time.Local)
	_, err = fastTimeMarshalJSON(anotherTime)
	assert.Check(t, is.ErrorContains(err, "year outside of range"))
}

func TestFastTimeMarshalJSON(t *testing.T) {
	aTime := time.Date(2015, 5, 29, 11, 1, 2, 3, time.UTC)
	json, err := fastTimeMarshalJSON(aTime)
	assert.NilError(t, err)
	assert.Check(t, is.Equal("\"2015-05-29T11:01:02.000000003Z\"", json))

	location, err := time.LoadLocation("Europe/Paris")
	assert.NilError(t, err)

	aTime = time.Date(2015, 5, 29, 11, 1, 2, 3, location)
	json, err = fastTimeMarshalJSON(aTime)
	assert.NilError(t, err)
	assert.Check(t, is.Equal("\"2015-05-29T11:01:02.000000003+02:00\"", json))
}