client/mock: add new tests

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2023-03-30 02:45:20 +03:00
parent 6d0b6f30bb
commit 00e71fc9ec
6 changed files with 183 additions and 45 deletions

66
client/mock/mock_test.go Normal file
View File

@ -0,0 +1,66 @@
package mock
import (
"context"
"testing"
"time"
"go.unistack.org/micro-client-mock/v3"
jsoncodec "go.unistack.org/micro-codec-json/v3"
pb "go.unistack.org/micro-tests/client/mock/proto"
"go.unistack.org/micro/v3/client"
"go.unistack.org/micro/v3/errors"
)
func TestCallWithoutError(t *testing.T) {
c := mock.NewClient(client.ContentType("application/json"), client.Codec("application/json", jsoncodec.NewCodec()))
if err := c.Init(); err != nil {
t.Fatal(err)
}
reqbuf := []byte(`{"username": "vtolstov"}`)
rspbuf := []byte(`{"name": "Vasiliy Tolstov"}`)
er := c.ExpectRequest(c.NewRequest("github", "Github.LookupUser", reqbuf))
er.WillReturnResponse(rspbuf)
er.WillDelayFor(10 * time.Millisecond)
gh := pb.NewGithubClient("github", c)
rsp, err := gh.LookupUser(context.TODO(), &pb.LookupUserReq{Username: "vtolstov"})
if err != nil {
t.Fatal(err)
}
if rsp.Name != "Vasiliy Tolstov" {
t.Fatalf("invalid rsp received: %#+v\n", rsp)
}
if err := c.ExpectationsWereMet(); err != nil {
t.Fatal(err)
}
}
func TestCallWithtError(t *testing.T) {
c := mock.NewClient(client.ContentType("application/json"), client.Codec("application/json", jsoncodec.NewCodec()))
if err := c.Init(); err != nil {
t.Fatal(err)
}
reqbuf := []byte(`{"username": "vtolstov"}`)
rspbuf := []byte(`{"name": "Vasiliy Tolstov"}`)
er := c.ExpectRequest(c.NewRequest("github", "Github.LookupUser", reqbuf))
er.WillReturnResponse(rspbuf)
er.WillDelayFor(10 * time.Millisecond)
er.WillReturnError(errors.InternalServerError("test", "internal server error"))
gh := pb.NewGithubClient("github", c)
rsp, err := gh.LookupUser(context.TODO(), &pb.LookupUserReq{Username: "vtolstov"})
if err == nil || rsp != nil {
t.Fatal("call must return error")
}
if err := c.ExpectationsWereMet(); err != nil {
t.Fatal(err)
}
}

View File

@ -0,0 +1,19 @@
package pb
import (
_ "go.unistack.org/micro-proto/v3/api"
_ "go.unistack.org/micro-proto/v3/openapiv3"
)
type LookupUserReq struct {
Username string `json:"username,omitempty"`
}
type LookupUserRsp struct {
Name string `json:"name,omitempty"`
}
type Error struct {
Message string `json:"message,omitempty"`
DocumentationUrl string `json:"documentation_url,omitempty"`
}

View File

@ -0,0 +1,28 @@
package pb
import (
context "context"
v3 "go.unistack.org/micro-server-http/v3"
client "go.unistack.org/micro/v3/client"
)
var GithubName = "Github"
var GithubServerEndpoints = []v3.EndpointMetadata{
{
Name: "Github.LookupUser",
Path: "/users/{username}",
Method: "GET",
Body: "",
Stream: false,
},
}
type GithubClient interface {
LookupUser(ctx context.Context, req *LookupUserReq, opts ...client.CallOption) (*LookupUserRsp, error)
}
type GithubServer interface {
LookupUser(ctx context.Context, req *LookupUserReq, rsp *LookupUserRsp) error
}

View File

@ -0,0 +1,59 @@
package pb
import (
context "context"
http "net/http"
v3 "go.unistack.org/micro-client-http/v3"
v31 "go.unistack.org/micro-server-http/v3"
client "go.unistack.org/micro/v3/client"
server "go.unistack.org/micro/v3/server"
)
type githubClient struct {
c client.Client
name string
}
func NewGithubClient(name string, c client.Client) GithubClient {
return &githubClient{c: c, name: name}
}
func (c *githubClient) LookupUser(ctx context.Context, req *LookupUserReq, opts ...client.CallOption) (*LookupUserRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &Error{}
opts = append(opts,
v3.ErrorMap(errmap),
)
opts = append(opts,
v3.Method(http.MethodGet),
v3.Path("/users/{username}"),
)
rsp := &LookupUserRsp{}
err := c.c.Call(ctx, c.c.NewRequest(c.name, "Github.LookupUser", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
type githubServer struct {
GithubServer
}
func (h *githubServer) LookupUser(ctx context.Context, req *LookupUserReq, rsp *LookupUserRsp) error {
return h.GithubServer.LookupUser(ctx, req, rsp)
}
func RegisterGithubServer(s server.Server, sh GithubServer, opts ...server.HandlerOption) error {
type github interface {
LookupUser(ctx context.Context, req *LookupUserReq, rsp *LookupUserRsp) error
}
type Github struct {
github
}
h := &githubServer{sh}
var nopts []server.HandlerOption
nopts = append(nopts, v31.HandlerEndpoints(GithubServerEndpoints))
return s.Handle(s.NewHandler(&Github{h}, append(nopts, opts...)...))
}

11
go.mod
View File

@ -46,7 +46,7 @@ require (
go.unistack.org/micro-tracer-opentracing/v3 v3.10.1
go.unistack.org/micro-wrapper-recovery/v3 v3.8.3
go.unistack.org/micro-wrapper-sql/v3 v3.10.3
go.unistack.org/micro/v3 v3.10.14
go.unistack.org/micro/v3 v3.10.18
golang.org/x/crypto v0.7.0 // indirect
golang.org/x/time v0.3.0 // indirect
google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488 // indirect
@ -56,7 +56,10 @@ require (
storj.io/drpc v0.0.32
)
require golang.org/x/net v0.8.0
require (
go.unistack.org/micro-client-mock/v3 v3.0.0
golang.org/x/net v0.8.0
)
require (
github.com/beorn7/perks v1.0.1 // indirect
@ -79,17 +82,13 @@ require (
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/serf v0.10.1 // indirect
github.com/imdario/mergo v0.3.13 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/klauspost/compress v1.16.0 // indirect
github.com/klauspost/cpuid/v2 v2.0.6 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
github.com/pierrec/lz4/v4 v4.1.17 // indirect
github.com/pkg/errors v0.9.1 // indirect

45
go.sum
View File

@ -394,7 +394,6 @@ github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4r
github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M=
github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@ -563,11 +562,9 @@ github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqE
github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY=
github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/hashicorp/consul/api v1.18.0 h1:R7PPNzTCeN6VuQNDwwhZWJvzCtGSrNpJqfb22h3yH9g=
github.com/hashicorp/consul/api v1.18.0/go.mod h1:owRRGJ9M5xReDC5nfT8FTJrNAPbT4NM6p/k+d03q2v4=
github.com/hashicorp/consul/api v1.19.1 h1:GLeK1WD4VIRvt4wRhQKHFudztEkRb8pDs+uRiJgNwes=
github.com/hashicorp/consul/api v1.19.1/go.mod h1:jAt316eYgWGNLJtxkMQrcqRpuDE/kFJdqkEFwRXFv8U=
github.com/hashicorp/consul/sdk v0.13.0 h1:lce3nFlpv8humJL8rNrrGHYSKc3q+Kxfeg3Ii1m6ZWU=
github.com/hashicorp/consul/sdk v0.13.0/go.mod h1:0hs/l5fOVhJy/VdcoaNqUSi2AUs95eF5WKtv+EYIQqE=
github.com/hashicorp/consul/sdk v0.13.1 h1:EygWVWWMczTzXGpO93awkHFzfUka6hLYJ0qhETd+6lY=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@ -657,7 +654,6 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
@ -669,12 +665,8 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:C
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw=
github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4=
github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/cpuid/v2 v2.0.6 h1:dQ5ueTiftKxp0gyjKSx5+8BtPWkyQbd95m8Gys/RarI=
github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
@ -727,11 +719,9 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
@ -746,7 +736,6 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc=
@ -778,8 +767,6 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/common v0.40.0 h1:Afz7EVRqGg2Mqqf4JuF9vdvp1pi220m55Pi9T2JnO4Q=
github.com/prometheus/common v0.40.0/go.mod h1:L65ZJPSmfn/UBWLQIHV7dBrKFidB/wPlF1y5TlSt9OE=
github.com/prometheus/common v0.41.0 h1:npo01n6vUlRViIj5fgwiK8vlNIh8bnoxqh3gypKsyAw=
github.com/prometheus/common v0.41.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
@ -800,16 +787,12 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB
github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/segmentio/asm v1.0.1 h1:g9VK62hXylgXI4yJV+dLTu/1j7kTxG9bkUSYBxL9dpg=
github.com/segmentio/asm v1.0.1/go.mod h1:4EUJGaKsB8ImLUwOGORVsNd9vTRDeh44JGsY4aKp5I4=
github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg=
github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys=
github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
github.com/segmentio/encoding v0.2.21 h1:hlRQz3Pv+/mBj+jqr46TVqqv6AuTwvP5aAxQ0Usd4gY=
github.com/segmentio/encoding v0.2.21/go.mod h1:kF1db1oBuYxMvLR3RXrZJchRdBKrS+1J/hL63p5hekI=
github.com/segmentio/encoding v0.3.6 h1:E6lVLyDPseWEulBmCmAKPanDd3jiyGDo5gMcugCRwZQ=
github.com/segmentio/encoding v0.3.6/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM=
github.com/segmentio/kafka-go v0.4.22/go.mod h1:XzMcoMjSzDGHcIwpWUI7GB43iKZ2fTVmryPSGLf/MPg=
github.com/segmentio/kafka-go v0.4.38 h1:iQdOBbUSdfuYlFpvjuALgj7N6DrdPA0HfB4AhREOdtg=
github.com/segmentio/kafka-go v0.4.38/go.mod h1:ikyuGon/60MN/vXFgykf7Zm8P5Be49gJU6vezwjnnhU=
github.com/segmentio/kafka-go v0.4.39 h1:75smaomhvkYRwtuOwqLsdhgCG30B82NsbdkdDfFbvrw=
github.com/segmentio/kafka-go v0.4.39/go.mod h1:T0MLgygYvmqmBvC+s8aCcbVNfJN4znVne5j0Pzowp/Q=
github.com/silas/dag v0.0.0-20210626123444-3804bac2d6d4/go.mod h1:7RTUFBdIRC9nZ7/3RyRNH1bdqIShrDejd1YbLwgPS+I=
@ -845,7 +828,6 @@ github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaO
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/unistack-org/micro-proto v0.0.9/go.mod h1:Cckwmzd89gvS7ThxzZp9kQR/EOdksFQcsTAtDDyKwrg=
github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8=
github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ=
@ -887,32 +869,20 @@ go.unistack.org/micro-client-grpc/v3 v3.10.0 h1:RaXxV81s8cjPkZ0CLqJAJGZSpbxb0g7n
go.unistack.org/micro-client-grpc/v3 v3.10.0/go.mod h1:BAmD+1zy0F6fih1arsW/IKp9BJKTkpp22zQfbX3M5E0=
go.unistack.org/micro-client-http/v3 v3.9.0 h1:m2DO59EzwbWFkF3gzvUBAUoKsmH0sZ+hPrwAoDa2EvE=
go.unistack.org/micro-client-http/v3 v3.9.0/go.mod h1:+IwOy028UpLcbRQSo+DZgGPa+CODHFAN7YGA85bdJ1M=
go.unistack.org/micro-codec-grpc/v3 v3.8.1 h1:vZrR07L8NKziG1dtzCBKoooaHpV3oP2c7rh93ClbUGI=
go.unistack.org/micro-codec-grpc/v3 v3.8.1/go.mod h1:RawS1ObPRsjsdvDXrGcLNnTexOHdU9yRZbF4QhWkRWw=
go.unistack.org/micro-client-mock/v3 v3.0.0 h1:8Q4TXTAfKp3IFwvCHTwPmigCKcPDPNOimNzVb/ysgRM=
go.unistack.org/micro-client-mock/v3 v3.0.0/go.mod h1:UwTnK2oPeN7nwXNCwgwlRttCPIH2GldxkQql02eB3Fg=
go.unistack.org/micro-codec-grpc/v3 v3.10.0 h1:N8XtNVeYBUcrQfcaY0b+PS7TaI7Wi6g5ZrEDeK77y34=
go.unistack.org/micro-codec-grpc/v3 v3.10.0/go.mod h1:NLU7KfhAA2Es9zI5BuwFFpPW1Y20F5/9/ZX2bK0nils=
go.unistack.org/micro-codec-json/v3 v3.8.0 h1:sQ6xdHaNUCxCiUakGaV1t8lbX1rGWlgnF/HbsXyhkGg=
go.unistack.org/micro-codec-json/v3 v3.8.0/go.mod h1:+F7S3ZNTKdMsu6pYFeNdKNT8G8b/nXugdln/lUY1kO8=
go.unistack.org/micro-codec-json/v3 v3.10.0 h1:vSREYR9yM5R9bzCWAY9Wip+sYzLjUB2UIEJAWtpWNbg=
go.unistack.org/micro-codec-json/v3 v3.10.0/go.mod h1:pknnB+DvzC/xi9WzkyZp5lfI0HxAo02ih2urkHpl1GQ=
go.unistack.org/micro-codec-jsonpb/v3 v3.8.1 h1:JO5KVUC/fL0CephI42xwkKZt0SLNpP4w66nAk7O9oi8=
go.unistack.org/micro-codec-jsonpb/v3 v3.8.1/go.mod h1:igXQT6P1wibc9mVjYS99w56s4M2DlIUCl4GQmUQrtQU=
go.unistack.org/micro-codec-jsonpb/v3 v3.10.0 h1:PYe6JjYb7ngRvm04eTj9PlAxVU5+iHB4+nC3WZS3iuQ=
go.unistack.org/micro-codec-jsonpb/v3 v3.10.0/go.mod h1:vVaYiiq8sCcCakR2NO/gahGgckxTaYvIYkEcwh6bg44=
go.unistack.org/micro-codec-proto/v3 v3.8.1 h1:86bJca4JnE4Qp8u9sdUGyKi8n19c+3tXdDYN39KAkIY=
go.unistack.org/micro-codec-proto/v3 v3.8.1/go.mod h1:KawLWwswDCunabwWv3QvXVJWwKNhv6WiSbR3GQ4JHHA=
go.unistack.org/micro-codec-proto/v3 v3.10.0 h1:zdsMLwpZ3dbHmMt/vbgWdGAEW/rPkJaEuMPM9XuasUY=
go.unistack.org/micro-codec-proto/v3 v3.10.0/go.mod h1:o8VeYHPK4x9UhTJqtsyB5YIi6mI2mhZMkixknWntO2Q=
go.unistack.org/micro-codec-segmentio/v3 v3.8.1 h1:e8/8aDlTfSFM7T3azEGxUE9xQ6FPid124Uo+2p/ZCXA=
go.unistack.org/micro-codec-segmentio/v3 v3.8.1/go.mod h1:d7xjN5JwqNXTHi9wVLZimOcKjXtZzScLbgCKeBuosPM=
go.unistack.org/micro-codec-segmentio/v3 v3.10.0 h1:VbY31wNqk+spH6UgGB9+WmM9ZmEE9AFAuD63+99Fi1w=
go.unistack.org/micro-codec-segmentio/v3 v3.10.0/go.mod h1:aWZowfhd+Upa5J1vsCx2naU/lC2YrQXl/UJKSL2cJKk=
go.unistack.org/micro-codec-urlencode/v3 v3.8.1 h1:p1VzzvuQnbm2CQnn/qr7NDiuaEuM6eXuh2oExWIUFmk=
go.unistack.org/micro-codec-urlencode/v3 v3.8.1/go.mod h1:TxaelCAvvXLyZpMIhZUvsMi6Xy2J3rvKKI7WOQhb5wI=
go.unistack.org/micro-codec-urlencode/v3 v3.10.0 h1:lKpZcoooAJVErl7BUV+BbmluJMKOHwEKrxlhh/v1T60=
go.unistack.org/micro-codec-urlencode/v3 v3.10.0/go.mod h1:ySpK9glQLGoT9MHpuVqJ50AkbqOM0ti0t0Uxg9N14ys=
go.unistack.org/micro-codec-xml/v3 v3.8.1 h1:hE211qCnyjdPt33ub1cg4HbHaKtHx0tNDXtq5xwLjQ4=
go.unistack.org/micro-codec-xml/v3 v3.8.1/go.mod h1:sNwBgamgKsumUV06rk8Z+Gutzshfm0VnCYH+YTUCqqU=
go.unistack.org/micro-codec-xml/v3 v3.10.0 h1:hE48K9wGOcjWu/Fz38M0K0p9QZ+7QWBVHJq3AsysRaM=
go.unistack.org/micro-codec-xml/v3 v3.10.0/go.mod h1:ec8JBYqOtewe+V+MemJDKcvz5hdKv92LOkmEOgQmtMI=
go.unistack.org/micro-config-consul/v3 v3.8.2 h1:oKcyYYqLwbriy+Kv5I//I+o8QBPhPhJermciG0zvrks=
@ -944,8 +914,6 @@ go.unistack.org/micro-wrapper-recovery/v3 v3.8.3 h1:F+b+xBSupV09S9AuT5ljh8X9uMez
go.unistack.org/micro-wrapper-recovery/v3 v3.8.3/go.mod h1:kInEBE89SfkK3doRam+oSGb6udSj/mTM4UkUQ5nAyzU=
go.unistack.org/micro-wrapper-sql/v3 v3.10.3 h1:7JWwkCU8d5r7ew1KHvrelQ0al9XqKvljzg4MjukZjV8=
go.unistack.org/micro-wrapper-sql/v3 v3.10.3/go.mod h1:CXyh36oCtQoIDyrPOSFmDgGDTqnEPibK585nIlbkmOM=
go.unistack.org/micro/v3 v3.8.0/go.mod h1:Tkteri0wiiybbH6aPqay26pZHFIAwL9LXJc2x1Jkakk=
go.unistack.org/micro/v3 v3.8.4/go.mod h1:KMMmOmbgo/D52/rCAbqeKbBsgEEbSKM69he54J3ZIuA=
go.unistack.org/micro/v3 v3.8.5/go.mod h1:KMMmOmbgo/D52/rCAbqeKbBsgEEbSKM69he54J3ZIuA=
go.unistack.org/micro/v3 v3.8.21/go.mod h1:aBOCQ6SkAwKMRI7Q1CIsQA2S88ibyJfweJZlT1M2qpE=
go.unistack.org/micro/v3 v3.9.2/go.mod h1:7ssIWk+PJXvb2nSl8NUnQRs32JJEId2IDi9PobrQlKo=
@ -954,8 +922,9 @@ go.unistack.org/micro/v3 v3.9.14/go.mod h1:gI4RkJKHLPW7KV6h4+ZBOZD997MRvFRXMPQIH
go.unistack.org/micro/v3 v3.9.18/go.mod h1:gI4RkJKHLPW7KV6h4+ZBOZD997MRvFRXMPQIHpozikI=
go.unistack.org/micro/v3 v3.10.4/go.mod h1:gI4RkJKHLPW7KV6h4+ZBOZD997MRvFRXMPQIHpozikI=
go.unistack.org/micro/v3 v3.10.11/go.mod h1:gI4RkJKHLPW7KV6h4+ZBOZD997MRvFRXMPQIHpozikI=
go.unistack.org/micro/v3 v3.10.14 h1:7fgLpwGlCN67twhwtngJDEQvrMkUBDSA5vzZqxIDqNE=
go.unistack.org/micro/v3 v3.10.14/go.mod h1:uMAc0U/x7dmtICCrblGf0ZLgYegu3VwQAquu+OFCw1Q=
go.unistack.org/micro/v3 v3.10.18 h1:iz193N8eZKGrKPXuX6XMsGIRHMqdvUaZSfb9mzwlUYM=
go.unistack.org/micro/v3 v3.10.18/go.mod h1:uMAc0U/x7dmtICCrblGf0ZLgYegu3VwQAquu+OFCw1Q=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190506204251-e1dfcc566284/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@ -968,8 +937,6 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=