mirror of
https://github.com/AdguardTeam/AdGuardDNS.git
synced 2025-02-20 11:23:36 +08:00
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package backendpb
|
|
|
|
import (
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/AdguardTeam/golibs/testutil"
|
|
"github.com/stretchr/testify/assert"
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
func TestSyncTimeFromTrailer(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
milliseconds := strconv.FormatInt(TestUpdTime.UnixMilli(), 10)
|
|
|
|
testCases := []struct {
|
|
in metadata.MD
|
|
wantError string
|
|
want time.Time
|
|
name string
|
|
}{{
|
|
in: metadata.MD{},
|
|
wantError: "empty value",
|
|
want: time.Time{},
|
|
name: "no_key",
|
|
}, {
|
|
in: metadata.MD{"sync_time": []string{}},
|
|
wantError: "empty value",
|
|
want: time.Time{},
|
|
name: "empty_key",
|
|
}, {
|
|
in: metadata.MD{"sync_time": []string{""}},
|
|
wantError: `bad value: strconv.ParseInt: parsing "": invalid syntax`,
|
|
want: time.Time{},
|
|
name: "empty_value",
|
|
}, {
|
|
in: metadata.MD{"sync_time": []string{milliseconds}},
|
|
wantError: "",
|
|
want: TestUpdTime,
|
|
name: "success",
|
|
}}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
syncTime, err := syncTimeFromTrailer(tc.in)
|
|
testutil.AssertErrorMsg(t, tc.wantError, err)
|
|
assert.True(t, tc.want.Equal(syncTime), "want %s; got %s", tc.want, syncTime)
|
|
})
|
|
}
|
|
}
|