From b15e9f6db8aa54ab572fbe22889f8bae60054161 Mon Sep 17 00:00:00 2001 From: Manik Rana Date: Thu, 18 Jan 2024 00:29:36 +0530 Subject: [PATCH] tests: add tests for `go/protoutil/duration` (#14965) Signed-off-by: Manik Rana --- go/protoutil/duration_test.go | 57 +++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/go/protoutil/duration_test.go b/go/protoutil/duration_test.go index 20f01482563..468d1ad5f34 100644 --- a/go/protoutil/duration_test.go +++ b/go/protoutil/duration_test.go @@ -26,7 +26,6 @@ import ( ) func TestDurationFromProto(t *testing.T) { - t.Parallel() tests := []struct { name string @@ -59,13 +58,32 @@ func TestDurationFromProto(t *testing.T) { isOk: true, shouldErr: true, }, + { + name: "nanoseconds", + in: &vttime.Duration{ + Seconds: 1, + Nanos: 500000000, + }, + expected: time.Second + 500*time.Millisecond, + isOk: true, + shouldErr: false, + }, + { + name: "out of range nanoseconds", + in: &vttime.Duration{ + Seconds: -1, + Nanos: 500000000, + }, + expected: 0, + isOk: true, + shouldErr: true, + }, } for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T) { - t.Parallel() actual, ok, err := DurationFromProto(tt.in) if tt.shouldErr { @@ -80,3 +98,38 @@ func TestDurationFromProto(t *testing.T) { }) } } + +func TestDurationToProto(t *testing.T) { + + tests := []struct { + name string + in time.Duration + expected *vttime.Duration + }{ + { + name: "success", + in: time.Second * 1000, + expected: &vttime.Duration{Seconds: 1000}, + }, + { + name: "zero duration", + in: 0, + expected: &vttime.Duration{}, + }, + { + name: "nanoseconds", + in: time.Second + 500*time.Millisecond, + expected: &vttime.Duration{Seconds: 1, Nanos: 500000000}, + }, + } + + for _, tt := range tests { + tt := tt + + t.Run(tt.name, func(t *testing.T) { + + actual := DurationToProto(tt.in) + assert.Equal(t, tt.expected, actual) + }) + } +}