e90b21bc8e
1. add bond,auction, nameserivce module 2. update to v0.12.2 ethermint version 3. fix the test cases 4. add gql server
214 lines
4.5 KiB
Go
214 lines
4.5 KiB
Go
package testutil
|
|
|
|
import (
|
|
"fmt"
|
|
clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli"
|
|
"github.com/cosmos/cosmos-sdk/types/rest"
|
|
tmcli "github.com/tendermint/tendermint/libs/cli"
|
|
"github.com/tharsis/ethermint/x/bond/client/cli"
|
|
bondtypes "github.com/tharsis/ethermint/x/bond/types"
|
|
)
|
|
|
|
func (s *IntegrationTestSuite) TestGRPCGetBonds() {
|
|
val := s.network.Validators[0]
|
|
sr := s.Require()
|
|
reqUrl := fmt.Sprintf("%s/vulcanize/bond/v1beta1/bonds", val.APIAddress)
|
|
|
|
testCases := []struct {
|
|
name string
|
|
url string
|
|
expErr bool
|
|
errorMsg string
|
|
preRun func()
|
|
}{
|
|
{
|
|
"invalid request with headers",
|
|
reqUrl + "asdasdas",
|
|
true,
|
|
"",
|
|
func() {
|
|
|
|
},
|
|
},
|
|
{
|
|
"valid request",
|
|
reqUrl,
|
|
false,
|
|
"",
|
|
func() {
|
|
s.createBond()
|
|
},
|
|
},
|
|
}
|
|
for _, tc := range testCases {
|
|
s.Run(tc.name, func() {
|
|
resp, _ := rest.GetRequest(tc.url)
|
|
if tc.expErr {
|
|
sr.Contains(string(resp), tc.errorMsg)
|
|
} else {
|
|
var response bondtypes.QueryGetBondsResponse
|
|
err := val.ClientCtx.Codec.UnmarshalJSON(resp, &response)
|
|
sr.NoError(err)
|
|
sr.NotZero(len(response.GetBonds()))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func (s *IntegrationTestSuite) TestGRPCGetParams() {
|
|
val := s.network.Validators[0]
|
|
sr := s.Require()
|
|
reqUrl := fmt.Sprintf("%s/vulcanize/bond/v1beta1/params", val.APIAddress)
|
|
|
|
resp, err := rest.GetRequest(reqUrl)
|
|
s.Require().NoError(err)
|
|
|
|
var params bondtypes.QueryParamsResponse
|
|
err = val.ClientCtx.Codec.UnmarshalJSON(resp, ¶ms)
|
|
|
|
sr.NoError(err)
|
|
sr.Equal(params.GetParams().MaxBondAmount, bondtypes.DefaultParams().MaxBondAmount)
|
|
}
|
|
|
|
func (s *IntegrationTestSuite) TestGRPCGetBondsByOwner() {
|
|
val := s.network.Validators[0]
|
|
sr := s.Require()
|
|
reqUrl := val.APIAddress + "/vulcanize/bond/v1beta1/by-owner/%s"
|
|
|
|
testCases := []struct {
|
|
name string
|
|
url string
|
|
expErr bool
|
|
preRun func()
|
|
}{
|
|
{
|
|
"empty list",
|
|
fmt.Sprintf(reqUrl, "asdasd"),
|
|
true,
|
|
func() {
|
|
|
|
},
|
|
},
|
|
{
|
|
"valid request",
|
|
fmt.Sprintf(reqUrl, s.accountAddress),
|
|
false,
|
|
func() {
|
|
s.createBond()
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
s.Run(tc.name, func() {
|
|
if !tc.expErr {
|
|
tc.preRun()
|
|
}
|
|
|
|
resp, err := rest.GetRequest(tc.url)
|
|
s.Require().NoError(err)
|
|
|
|
var bonds bondtypes.QueryGetBondsByOwnerResponse
|
|
err = val.ClientCtx.Codec.UnmarshalJSON(resp, &bonds)
|
|
sr.NoError(err)
|
|
if tc.expErr {
|
|
sr.Empty(bonds.GetBonds())
|
|
} else {
|
|
bondsList := bonds.GetBonds()
|
|
sr.NotZero(len(bondsList))
|
|
sr.Equal(s.accountAddress, bondsList[0].GetOwner())
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func (s *IntegrationTestSuite) TestGRPCGetBondById() {
|
|
val := s.network.Validators[0]
|
|
sr := s.Require()
|
|
reqUrl := val.APIAddress + "/vulcanize/bond/v1beta1/bonds/%s"
|
|
|
|
testCases := []struct {
|
|
name string
|
|
url string
|
|
expErr bool
|
|
preRun func() string
|
|
}{
|
|
{
|
|
"invalid request",
|
|
fmt.Sprintf(reqUrl, "asdadad"),
|
|
true,
|
|
func() string {
|
|
return ""
|
|
},
|
|
},
|
|
{
|
|
"valid request",
|
|
reqUrl,
|
|
false,
|
|
func() string {
|
|
// creating the bond
|
|
s.createBond()
|
|
|
|
// getting the bonds list and returning the bond-id
|
|
clientCtx := val.ClientCtx
|
|
cmd := cli.GetQueryBondLists()
|
|
args := []string{
|
|
fmt.Sprintf("--%s=json", tmcli.OutputFlag),
|
|
}
|
|
out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, args)
|
|
sr.NoError(err)
|
|
var queryResponse bondtypes.QueryGetBondsResponse
|
|
err = val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &queryResponse)
|
|
sr.NoError(err)
|
|
|
|
// extract bond id from bonds list
|
|
bond := queryResponse.GetBonds()[0]
|
|
return bond.GetId()
|
|
},
|
|
},
|
|
}
|
|
for _, tc := range testCases {
|
|
s.Run(tc.name, func() {
|
|
var bondId string
|
|
if !tc.expErr {
|
|
bondId = tc.preRun()
|
|
tc.url = fmt.Sprintf(reqUrl, bondId)
|
|
}
|
|
|
|
resp, err := rest.GetRequest(tc.url)
|
|
s.Require().NoError(err)
|
|
|
|
var bonds bondtypes.QueryGetBondByIdResponse
|
|
err = val.ClientCtx.Codec.UnmarshalJSON(resp, &bonds)
|
|
|
|
if tc.expErr {
|
|
sr.Empty(bonds.GetBond().GetId())
|
|
} else {
|
|
sr.NoError(err)
|
|
sr.NotZero(bonds.GetBond().GetId())
|
|
sr.Equal(bonds.GetBond().GetId(), bondId)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func (s *IntegrationTestSuite) TestGRPCGetBondModuleBalance() {
|
|
val := s.network.Validators[0]
|
|
sr := s.Require()
|
|
reqUrl := fmt.Sprintf("%s/vulcanize/bond/v1beta1/balance", val.APIAddress)
|
|
|
|
// creating the bond
|
|
s.createBond()
|
|
|
|
s.Run("valid request", func() {
|
|
resp, err := rest.GetRequest(reqUrl)
|
|
sr.NoError(err)
|
|
|
|
var response bondtypes.QueryGetBondModuleBalanceResponse
|
|
err = val.ClientCtx.Codec.UnmarshalJSON(resp, &response)
|
|
|
|
sr.NoError(err)
|
|
sr.False(response.GetBalance().IsZero())
|
|
})
|
|
}
|