| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package codegenerator_test
- import (
- "bytes"
- "fmt"
- "io"
- "strings"
- "testing"
- "git.ikuban.com/server/swagger-api/protoc-gen-openapiv2/internal/codegenerator"
- "github.com/google/go-cmp/cmp"
- "google.golang.org/protobuf/proto"
- "google.golang.org/protobuf/testing/protocmp"
- "google.golang.org/protobuf/types/pluginpb"
- )
- var parseReqTests = []struct {
- name string
- in io.Reader
- out *pluginpb.CodeGeneratorRequest
- expectErr bool
- }{
- {
- "Empty input should produce empty output",
- mustGetReader(&pluginpb.CodeGeneratorRequest{}),
- &pluginpb.CodeGeneratorRequest{},
- false,
- },
- {
- "Invalid reader should produce error",
- &invalidReader{},
- nil,
- true,
- },
- {
- "Invalid proto message should produce error",
- strings.NewReader("{}"),
- nil,
- true,
- },
- }
- func TestParseRequest(t *testing.T) {
- for _, tt := range parseReqTests {
- t.Run(tt.name, func(t *testing.T) {
- out, err := codegenerator.ParseRequest(tt.in)
- if tt.expectErr && err == nil {
- t.Error("did not error as expected")
- }
- if diff := cmp.Diff(out, tt.out, protocmp.Transform()); diff != "" {
- t.Errorf(diff)
- }
- })
- }
- }
- func mustGetReader(pb proto.Message) io.Reader {
- b, err := proto.Marshal(pb)
- if err != nil {
- panic(err)
- }
- return bytes.NewBuffer(b)
- }
- type invalidReader struct {
- }
- func (*invalidReader) Read(p []byte) (int, error) {
- return 0, fmt.Errorf("invalid reader")
- }
|