Skip to content

Commit

Permalink
refactor entity (#25)
Browse files Browse the repository at this point in the history
  • Loading branch information
ktr authored Feb 6, 2018
1 parent fff2d19 commit 22e1d45
Show file tree
Hide file tree
Showing 81 changed files with 1,579 additions and 1,247 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,9 @@ name (TYPE_STRING) = ktr
Evans constructs a gRPC request interactively and send the request to gRPC server.
Finally, Evans prints the JSON formatted result.

## Supported IDL (interface definition language)
- [ProtocolBuffers](https://developers.google.com/protocol-buffers/)

## See Also
Evans (DJ YOSHITAKA)
![Evans](./evans.png)
Expand Down
2 changes: 1 addition & 1 deletion adapter/controller/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ func (c *CLI) Run(args []string) int {

c.ui.Println(b.String())
} else {
params.InputterPort = gateway.NewPromptInputter(c.config, env)
params.InputterPort = gateway.NewPrompt(c.config, env)
interactor := usecase.NewInteractor(params)

var ui ui
Expand Down
3 changes: 1 addition & 2 deletions adapter/controller/repl_commands_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (

"github.com/ktr0731/evans/entity"
"github.com/ktr0731/evans/usecase/port"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

Expand Down Expand Up @@ -44,7 +43,7 @@ func Test_headCommand(t *testing.T) {
return
}
require.NoError(t, err)
assert.Exactly(t, c.expected, inputPort.received.Headers[0])
require.Exactly(t, c.expected, inputPort.received.Headers[0])
})
}
}
4 changes: 2 additions & 2 deletions adapter/controller/repl_completer.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func (c *completer) complete(d prompt.Document) []prompt.Suggest {
}
s = make([]prompt.Suggest, len(svcs))
for i, svc := range svcs {
s[i] = prompt.Suggest{Text: svc.Name}
s[i] = prompt.Suggest{Text: svc.Name()}
}

case "call":
Expand All @@ -57,7 +57,7 @@ func (c *completer) complete(d prompt.Document) []prompt.Suggest {
}
s = make([]prompt.Suggest, len(rpcs))
for i, rpc := range rpcs {
s[i] = prompt.Suggest{Text: rpc.Name}
s[i] = prompt.Suggest{Text: rpc.Name()}
}

case "desc":
Expand Down
8 changes: 4 additions & 4 deletions adapter/gateway/dynamic_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package gateway

import (
"github.com/golang/protobuf/proto"
"github.com/jhump/protoreflect/desc"
"github.com/jhump/protoreflect/dynamic"
"github.com/ktr0731/evans/adapter/protobuf"
"github.com/ktr0731/evans/entity"
)

type DynamicBuilder struct{}
Expand All @@ -12,6 +12,6 @@ func NewDynamicBuilder() *DynamicBuilder {
return &DynamicBuilder{}
}

func (b *DynamicBuilder) NewMessage(md *desc.MessageDescriptor) proto.Message {
return dynamic.NewMessage(md)
func (b *DynamicBuilder) NewMessage(m entity.Message) proto.Message {
return protobuf.NewDynamicMessage(m)
}
5 changes: 2 additions & 3 deletions adapter/gateway/grpc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (

"github.com/ktr0731/evans/adapter/internal/testhelper"
"github.com/ktr0731/evans/tests/helper"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

Expand All @@ -18,7 +17,7 @@ func Test_fqrnToEndpoint(t *testing.T) {
client, err := NewGRPCClient(helper.TestConfig())
require.NoError(t, err)

fqrn, err := client.fqrnToEndpoint(rpc.FQRN)
fqrn, err := client.fqrnToEndpoint(rpc.FQRN())
require.NoError(t, err)
assert.Equal(t, fqrn, "/helloworld.Greeter/SayHello")
require.Equal(t, fqrn, "/helloworld.Greeter/SayHello")
}
8 changes: 4 additions & 4 deletions adapter/gateway/json_file_inputter.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"io"

"github.com/golang/protobuf/proto"
"github.com/jhump/protoreflect/desc"
"github.com/jhump/protoreflect/dynamic"
"github.com/ktr0731/evans/adapter/protobuf"
"github.com/ktr0731/evans/entity"
)

type JSONFileInputter struct {
Expand All @@ -19,7 +19,7 @@ func NewJSONFileInputter(in io.Reader) *JSONFileInputter {
}
}

func (i *JSONFileInputter) Input(reqType *desc.MessageDescriptor) (proto.Message, error) {
req := dynamic.NewMessage(reqType)
func (i *JSONFileInputter) Input(reqType entity.Message) (proto.Message, error) {
req := protobuf.NewDynamicMessage(reqType)
return req, i.decoder.Decode(req)
}
25 changes: 15 additions & 10 deletions adapter/gateway/json_file_inputter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,38 @@ import (
"bytes"
"testing"

"github.com/jhump/protoreflect/dynamic"
"github.com/golang/protobuf/jsonpb"
"github.com/ktr0731/evans/adapter/internal/testhelper"
"github.com/stretchr/testify/assert"
"github.com/ktr0731/evans/adapter/protobuf"
"github.com/stretchr/testify/require"
)

func TestJSONFileInputter(t *testing.T) {
env := testhelper.SetupEnv(t, "helloworld.proto", "helloworld", "Greeter")

envMsg, err := env.Message("HelloRequest")
d := testhelper.ReadProtoAsFileDescriptors(t, "helloworld.proto")
p, err := protobuf.ToEntitiesFrom(d)
require.NoError(t, err)

m := p[0].Messages[0]

jsonInput := `{
"name": "ktr",
"message": "hi"
}`

msg := dynamic.NewMessage(envMsg.Desc)
err = msg.TrySetField(msg.FindFieldDescriptorByName("name"), "ktr")
setter := protobuf.NewMessageSetter(m)
err = setter.SetField(m.Fields()[0], "ktr")
require.NoError(t, err)
err = msg.TrySetField(msg.FindFieldDescriptorByName("message"), "hi")
err = setter.SetField(m.Fields()[1], "hi")
require.NoError(t, err)

in := bytes.NewReader([]byte(jsonInput))
inputter := NewJSONFileInputter(in)
actual, err := inputter.Input(envMsg.Desc)
res, err := inputter.Input(m)
require.NoError(t, err)

marshaler := jsonpb.Marshaler{}
actual, err := marshaler.MarshalToString(res)
require.NoError(t, err)

assert.Exactly(t, actual, msg)
require.Exactly(t, actual, `{"name":"ktr","message":"hi"}`)
}
Loading

0 comments on commit 22e1d45

Please sign in to comment.