-
Notifications
You must be signed in to change notification settings - Fork 12
/
utils_test.go
95 lines (82 loc) · 3.66 KB
/
utils_test.go
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package twinmaker
import (
"testing"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/iottwinmaker"
"github.com/stretchr/testify/require"
)
func TestLoadPolicy(t *testing.T) {
workspace := &iottwinmaker.GetWorkspaceOutput{
S3Location: aws.String("dummyS3Location"),
Arn: aws.String("dummyArn"),
WorkspaceId: aws.String("dummyWorkspaceId"),
}
policy, err := LoadPolicy(workspace)
require.NoError(t, err)
require.NotEmpty(t, policy)
}
func TestGetTimeObjectFromStringTime(t *testing.T) {
t.Run("Convert time string to time object - Seconds precision", func(t *testing.T) {
timeString := "2017-11-15T11:18:42Z"
expectedResult := time.Date(2017, 11, 15, 11, 18, 42, 0, time.UTC)
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
t.Run("Convert time string to time object - Seconds precision with ZoneOffset", func(t *testing.T) {
timeString := "2017-11-15T11:18:42+08:00"
expectedResult := time.Date(2017, 11, 15, 11, 18, 42, 0, time.FixedZone("", 8*60*60))
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
t.Run("Convert time string to time object - MilliSeconds precision", func(t *testing.T) {
timeString := "2017-11-15T11:18:42.573Z"
expectedResult := time.Date(2017, 11, 15, 11, 18, 42, 573000000, time.UTC)
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
t.Run("Convert time string to time object - MicroSeconds precision", func(t *testing.T) {
timeString := "2017-11-15T11:18:42.573001Z"
expectedResult := time.Date(2017, 11, 15, 11, 18, 42, 573001000, time.UTC)
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
t.Run("Convert time string to time object - NanoSeconds precision", func(t *testing.T) {
timeString := "2017-11-15T11:18:42.573000001Z"
expectedResult := time.Date(2017, 11, 15, 11, 18, 42, 573000001, time.UTC)
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
t.Run("Convert time string to time object - NanoSeconds precision with Zone", func(t *testing.T) {
timeString := "2017-11-15T11:18:42.573000001+08:00"
expectedResult := time.Date(2017, 11, 15, 11, 18, 42, 573000001, time.FixedZone("", 8*60*60))
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
t.Run("Convert time string to time object - Seconds truncated", func(t *testing.T) {
timeString := "2022-04-27T17:50Z"
expectedResult := time.Date(2022, 04, 27, 17, 50, 0, 0, time.UTC)
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
t.Run("Convert time string to time object - Seconds truncated with zoneOffset", func(t *testing.T) {
timeString := "2022-04-27T17:50+12:00"
expectedResult := time.Date(2022, 04, 27, 17, 50, 0, 0, time.FixedZone("", 12*60*60))
actualResult, err := getTimeObjectFromStringTime(&timeString)
require.NoError(t, err)
require.Equal(t, expectedResult, *actualResult)
})
}
func TestGetTimeStringFromTimeObject(t *testing.T) {
t.Run("Convert time object to ISO 8601 date time string", func(t *testing.T) {
timeObject := time.Date(2022, 4, 27, 0, 0, 0, 123456789, time.UTC)
require.Equal(t, "2022-04-27T00:00:00.123456789Z", *getTimeStringFromTimeObject(&timeObject))
})
}