61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
|
package reflection_test
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/suite"
|
||
|
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
||
|
|
||
|
"github.com/cosmos/cosmos-sdk/baseapp"
|
||
|
"github.com/cosmos/cosmos-sdk/client/grpc/reflection"
|
||
|
"github.com/cosmos/cosmos-sdk/simapp"
|
||
|
)
|
||
|
|
||
|
type IntegrationTestSuite struct {
|
||
|
suite.Suite
|
||
|
|
||
|
queryClient reflection.ReflectionServiceClient
|
||
|
}
|
||
|
|
||
|
func (s *IntegrationTestSuite) SetupSuite() {
|
||
|
app := simapp.Setup(false)
|
||
|
|
||
|
srv := reflection.NewReflectionServiceServer(app.InterfaceRegistry())
|
||
|
|
||
|
sdkCtx := app.BaseApp.NewContext(false, tmproto.Header{})
|
||
|
queryHelper := baseapp.NewQueryServerTestHelper(sdkCtx, app.InterfaceRegistry())
|
||
|
|
||
|
reflection.RegisterReflectionServiceServer(queryHelper, srv)
|
||
|
queryClient := reflection.NewReflectionServiceClient(queryHelper)
|
||
|
|
||
|
s.queryClient = queryClient
|
||
|
}
|
||
|
|
||
|
func (s IntegrationTestSuite) TestSimulateService() {
|
||
|
// We will test the following interface for testing.
|
||
|
var iface = "cosmos.evidence.v1beta1.Evidence"
|
||
|
|
||
|
// Test that "cosmos.evidence.v1beta1.Evidence" is included in the
|
||
|
// interfaces.
|
||
|
resIface, err := s.queryClient.ListAllInterfaces(
|
||
|
context.Background(),
|
||
|
&reflection.ListAllInterfacesRequest{},
|
||
|
)
|
||
|
s.Require().NoError(err)
|
||
|
s.Require().Contains(resIface.GetInterfaceNames(), iface)
|
||
|
|
||
|
// Test that "cosmos.evidence.v1beta1.Evidence" has at least the
|
||
|
// Equivocation implementations.
|
||
|
resImpl, err := s.queryClient.ListImplementations(
|
||
|
context.Background(),
|
||
|
&reflection.ListImplementationsRequest{InterfaceName: iface},
|
||
|
)
|
||
|
s.Require().NoError(err)
|
||
|
s.Require().Contains(resImpl.GetImplementationMessageNames(), "/cosmos.evidence.v1beta1.Equivocation")
|
||
|
}
|
||
|
|
||
|
func TestSimulateTestSuite(t *testing.T) {
|
||
|
suite.Run(t, new(IntegrationTestSuite))
|
||
|
}
|