go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/core/resources/time_unit_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package resources 5 6 import ( 7 "testing" 8 "time" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 "go.mondoo.com/cnquery/llx" 13 ) 14 15 func TestTime_Conversions(t *testing.T) { 16 mtime := mqlTime{} 17 t.Run("back and forth duration (1 hour)", func(t *testing.T) { 18 hour, err := mtime.hour() 19 require.NoError(t, err) 20 assert.Equal(t, llx.DurationToTime(60*60), *hour, "time.hour returns an hour in time") 21 22 rd := llx.TimeData(*hour) 23 res := rd.Result() 24 require.Empty(t, res.Error, "no error converting raw data to a primitive") 25 back := res.Data.RawData() 26 assert.Equal(t, hour, back.Value, "time.hour converts values to primitive and back and remains the same") 27 assert.Equal(t, llx.DurationToTime(60*60), *(back.Value.(*time.Time)), "time.hour after conversion to primitive and back is still an hour") 28 }) 29 30 t.Run("back and forth duration (1sec)", func(t *testing.T) { 31 second, err := mtime.second() 32 require.NoError(t, err) 33 assert.Equal(t, llx.DurationToTime(1), *second, "time.second returns a second in time") 34 35 rd := llx.TimeData(*second) 36 res := rd.Result() 37 require.Empty(t, res.Error, "no error converting raw data to a primitive") 38 back := res.Data.RawData() 39 assert.Equal(t, second, back.Value, "time.second converts values to primitive and back and remains the same") 40 assert.Equal(t, llx.DurationToTime(1), *(back.Value.(*time.Time)), "time.second after conversion to primitive and back is still a second") 41 }) 42 }