Refactor RegisterQueryServices -> RegisterServices (#7518)
* Refactor RegisterQueryServices -> RegisterServices * Fix tests
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package module
|
||||
|
||||
import "github.com/gogo/protobuf/grpc"
|
||||
|
||||
// Configurator provides the hooks to allow modules to configure and register
|
||||
// their services in the RegisterServices method. It is designed to eventually
|
||||
// support module object capabilities isolation as described in
|
||||
// https://github.com/cosmos/cosmos-sdk/issues/7093
|
||||
type Configurator interface {
|
||||
QueryServer() grpc.Server
|
||||
}
|
||||
|
||||
type configurator struct {
|
||||
queryServer grpc.Server
|
||||
}
|
||||
|
||||
// NewConfigurator returns a new Configurator instance
|
||||
func NewConfigurator(queryServer grpc.Server) Configurator {
|
||||
return configurator{queryServer: queryServer}
|
||||
}
|
||||
|
||||
var _ Configurator = configurator{}
|
||||
|
||||
// QueryServer implements the Configurator.QueryServer method
|
||||
func (c configurator) QueryServer() grpc.Server {
|
||||
return c.queryServer
|
||||
}
|
||||
@@ -31,7 +31,6 @@ package module
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/gogo/protobuf/grpc"
|
||||
"github.com/grpc-ecosystem/grpc-gateway/runtime"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
@@ -173,8 +172,8 @@ type AppModule interface {
|
||||
// Deprecated: use RegisterQueryService
|
||||
LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier
|
||||
|
||||
// RegisterQueryService allows a module to register a gRPC query service
|
||||
RegisterQueryService(grpc.Server)
|
||||
// RegisterServices allows a module to register services
|
||||
RegisterServices(Configurator)
|
||||
|
||||
// ABCI
|
||||
BeginBlock(sdk.Context, abci.RequestBeginBlock)
|
||||
@@ -207,8 +206,8 @@ func (GenesisOnlyAppModule) QuerierRoute() string { return "" }
|
||||
// LegacyQuerierHandler returns an empty module querier
|
||||
func (gam GenesisOnlyAppModule) LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier { return nil }
|
||||
|
||||
// RegisterQueryService registers all gRPC query services.
|
||||
func (gam GenesisOnlyAppModule) RegisterQueryService(grpc.Server) {}
|
||||
// RegisterServices registers all services.
|
||||
func (gam GenesisOnlyAppModule) RegisterServices(Configurator) {}
|
||||
|
||||
// BeginBlock returns an empty module begin-block
|
||||
func (gam GenesisOnlyAppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {}
|
||||
@@ -288,10 +287,10 @@ func (m *Manager) RegisterRoutes(router sdk.Router, queryRouter sdk.QueryRouter,
|
||||
}
|
||||
}
|
||||
|
||||
// RegisterQueryServices registers all module query services
|
||||
func (m *Manager) RegisterQueryServices(grpcRouter grpc.Server) {
|
||||
// RegisterServices registers all module services
|
||||
func (m *Manager) RegisterServices(cfg Configurator) {
|
||||
for _, module := range m.Modules {
|
||||
module.RegisterQueryService(grpcRouter)
|
||||
module.RegisterServices(cfg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -162,10 +162,10 @@ func TestManager_RegisterRoutes(t *testing.T) {
|
||||
mockAppModule1.EXPECT().QuerierRoute().Times(2).Return("querierRoute1")
|
||||
mockAppModule2.EXPECT().QuerierRoute().Times(1).Return("")
|
||||
handler3 := sdk.Querier(nil)
|
||||
mockAppModule1.EXPECT().NewQuerierHandler().Times(1).Return(handler3)
|
||||
amino := codec.NewLegacyAmino()
|
||||
mockAppModule1.EXPECT().LegacyQuerierHandler(amino).Times(1).Return(handler3)
|
||||
queryRouter.EXPECT().AddRoute(gomock.Eq("querierRoute1"), gomock.Eq(handler3)).Times(1)
|
||||
|
||||
amino := codec.NewLegacyAmino()
|
||||
mm.RegisterRoutes(router, queryRouter, amino)
|
||||
}
|
||||
|
||||
@@ -182,10 +182,11 @@ func TestManager_RegisterQueryServices(t *testing.T) {
|
||||
require.Equal(t, 2, len(mm.Modules))
|
||||
|
||||
queryRouter := mocks.NewMockServer(mockCtrl)
|
||||
mockAppModule1.EXPECT().RegisterQueryService(queryRouter).Times(1)
|
||||
mockAppModule2.EXPECT().RegisterQueryService(queryRouter).Times(1)
|
||||
cfg := module.NewConfigurator(queryRouter)
|
||||
mockAppModule1.EXPECT().RegisterServices(cfg).Times(1)
|
||||
mockAppModule2.EXPECT().RegisterServices(cfg).Times(1)
|
||||
|
||||
mm.RegisterQueryServices(queryRouter)
|
||||
mm.RegisterServices(cfg)
|
||||
}
|
||||
|
||||
func TestManager_InitGenesis(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user