gitlab-org--gitlab-foss/workhorse/internal/gitaly/unmarshal_test.go

37 lines
887 B
Go

package gitaly
import (
"testing"
"github.com/golang/protobuf/proto" //lint:ignore SA1019 https://gitlab.com/gitlab-org/gitlab/-/issues/324868
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb"
)
func TestUnmarshalJSON(t *testing.T) {
testCases := []struct {
desc string
in string
out *gitalypb.Repository
}{
{
desc: "basic example",
in: `{"relative_path":"foo/bar.git"}`,
out: &gitalypb.Repository{RelativePath: "foo/bar.git"},
},
{
desc: "unknown field",
in: `{"relative_path":"foo/bar.git","unknown_field":12345}`,
out: &gitalypb.Repository{RelativePath: "foo/bar.git"},
},
}
for _, tc := range testCases {
t.Run(tc.desc, func(t *testing.T) {
result := &gitalypb.Repository{}
require.NoError(t, UnmarshalJSON(tc.in, result))
require.True(t, proto.Equal(tc.out, result))
})
}
}