mirror of
https://github.com/go-kratos/kratos.git
synced 2025-03-17 21:07:54 +02:00
parent
62b58848d6
commit
5df19c47d8
95
encoding/form/well_known_types_test.go
Normal file
95
encoding/form/well_known_types_test.go
Normal file
@ -0,0 +1,95 @@
|
||||
package form
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"google.golang.org/protobuf/reflect/protoreflect"
|
||||
"google.golang.org/protobuf/types/known/durationpb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
"google.golang.org/protobuf/types/known/wrapperspb"
|
||||
)
|
||||
|
||||
func TestMarshalTimeStamp(t *testing.T) {
|
||||
tests := []struct {
|
||||
input *timestamppb.Timestamp
|
||||
expect string
|
||||
}{
|
||||
{
|
||||
input: timestamppb.New(time.Date(2022, 1, 2, 3, 4, 5, 6, time.UTC)),
|
||||
expect: "2022-01-02T03:04:05.000000006Z",
|
||||
},
|
||||
{
|
||||
input: timestamppb.New(time.Date(2022, 13, 1, 13, 61, 61, 100, time.UTC)),
|
||||
expect: "2023-01-01T14:02:01.000000100Z",
|
||||
},
|
||||
}
|
||||
for _, v := range tests {
|
||||
content, err := marshalTimestamp(v.input.ProtoReflect())
|
||||
if err != nil {
|
||||
t.Errorf("expect %v,got %v", nil, err)
|
||||
}
|
||||
if got, want := content, v.expect; got != want {
|
||||
t.Errorf("expect %v,got %v", want, got)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMarshalDuration(t *testing.T) {
|
||||
tests := []struct {
|
||||
input *durationpb.Duration
|
||||
expect string
|
||||
}{
|
||||
{
|
||||
input: durationpb.New(time.Duration(1<<63 - 1)),
|
||||
expect: "2562047h47m16.854775807s",
|
||||
},
|
||||
{
|
||||
input: durationpb.New(time.Duration(-1 << 63)),
|
||||
expect: "-2562047h47m16.854775808s",
|
||||
},
|
||||
{
|
||||
input: durationpb.New(100 * time.Second),
|
||||
expect: "1m40s",
|
||||
},
|
||||
{
|
||||
input: durationpb.New(-100 * time.Second),
|
||||
expect: "-1m40s",
|
||||
},
|
||||
}
|
||||
for _, v := range tests {
|
||||
content, err := marshalDuration(v.input.ProtoReflect())
|
||||
if err != nil {
|
||||
t.Errorf("expect %v,got %v", nil, err)
|
||||
}
|
||||
if got, want := content, v.expect; got != want {
|
||||
t.Errorf("expect %v,got %v", want, got)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMarshalBytes(t *testing.T) {
|
||||
tests := []struct {
|
||||
input protoreflect.Message
|
||||
expect string
|
||||
}{
|
||||
{
|
||||
input: wrapperspb.Bytes([]byte("abc123!?$*&()'-=@~")).ProtoReflect(),
|
||||
expect: base64.StdEncoding.EncodeToString([]byte("abc123!?$*&()'-=@~")),
|
||||
},
|
||||
{
|
||||
input: wrapperspb.Bytes([]byte("kratos")).ProtoReflect(),
|
||||
expect: base64.StdEncoding.EncodeToString([]byte("kratos")),
|
||||
},
|
||||
}
|
||||
for _, v := range tests {
|
||||
content, err := marshalBytes(v.input)
|
||||
if err != nil {
|
||||
t.Errorf("expect %v,got %v", nil, err)
|
||||
}
|
||||
if got, want := content, v.expect; got != want {
|
||||
t.Errorf("expect %v,got %v", want, got)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user