cosmos-sdk/client/grpc/reflection/reflection_test.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))
}