2017-11-12 00:43:16 +00:00
|
|
|
package client
|
2017-10-24 12:34:36 +02:00
|
|
|
|
|
|
|
import (
|
2018-06-09 04:25:48 -07:00
|
|
|
"os"
|
2017-10-24 12:34:36 +02:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
2018-06-09 04:25:48 -07:00
|
|
|
"github.com/tendermint/tendermint/abci/example/kvstore"
|
2017-11-12 00:43:16 +00:00
|
|
|
rpcclient "github.com/tendermint/tendermint/rpc/client"
|
|
|
|
rpctest "github.com/tendermint/tendermint/rpc/test"
|
2017-12-10 20:43:58 -05:00
|
|
|
"github.com/tendermint/tendermint/types"
|
2017-10-24 12:34:36 +02:00
|
|
|
)
|
|
|
|
|
2018-06-09 04:25:48 -07:00
|
|
|
func TestMain(m *testing.M) {
|
|
|
|
app := kvstore.NewKVStoreApplication()
|
2019-02-18 13:23:40 +04:00
|
|
|
node := rpctest.StartTendermint(app)
|
2018-06-09 04:25:48 -07:00
|
|
|
|
|
|
|
code := m.Run()
|
|
|
|
|
2019-02-18 13:23:40 +04:00
|
|
|
rpctest.StopTendermint(node)
|
2018-06-09 04:25:48 -07:00
|
|
|
os.Exit(code)
|
|
|
|
}
|
|
|
|
|
2017-10-24 12:34:36 +02:00
|
|
|
func TestProvider(t *testing.T) {
|
|
|
|
assert, require := assert.New(t), require.New(t)
|
|
|
|
|
|
|
|
cfg := rpctest.GetConfig()
|
2019-02-18 08:45:27 +01:00
|
|
|
defer os.RemoveAll(cfg.RootDir)
|
2017-10-24 12:34:36 +02:00
|
|
|
rpcAddr := cfg.RPC.ListenAddress
|
2018-06-09 04:25:48 -07:00
|
|
|
genDoc, err := types.GenesisDocFromFile(cfg.GenesisFile())
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
2017-12-10 20:43:58 -05:00
|
|
|
chainID := genDoc.ChainID
|
2018-06-09 04:25:48 -07:00
|
|
|
t.Log("chainID:", chainID)
|
|
|
|
p := NewHTTPProvider(chainID, rpcAddr)
|
2017-10-24 12:34:36 +02:00
|
|
|
require.NotNil(t, p)
|
|
|
|
|
|
|
|
// let it produce some blocks
|
2018-06-09 04:25:48 -07:00
|
|
|
err = rpcclient.WaitForHeight(p.(*provider).client, 6, nil)
|
2017-11-12 00:43:16 +00:00
|
|
|
require.Nil(err)
|
2017-10-24 12:34:36 +02:00
|
|
|
|
|
|
|
// let's get the highest block
|
2018-06-09 04:25:48 -07:00
|
|
|
fc, err := p.LatestFullCommit(chainID, 1, 1<<63-1)
|
2017-10-24 12:34:36 +02:00
|
|
|
|
|
|
|
require.Nil(err, "%+v", err)
|
2018-06-09 04:25:48 -07:00
|
|
|
sh := fc.Height()
|
2017-10-24 12:34:36 +02:00
|
|
|
assert.True(sh < 5000)
|
|
|
|
|
|
|
|
// let's check this is valid somehow
|
2018-06-25 16:31:59 -07:00
|
|
|
assert.Nil(fc.ValidateFull(chainID))
|
2017-10-24 12:34:36 +02:00
|
|
|
|
|
|
|
// historical queries now work :)
|
|
|
|
lower := sh - 5
|
2018-06-09 04:25:48 -07:00
|
|
|
fc, err = p.LatestFullCommit(chainID, lower, lower)
|
2017-10-24 12:34:36 +02:00
|
|
|
assert.Nil(err, "%+v", err)
|
2018-06-09 04:25:48 -07:00
|
|
|
assert.Equal(lower, fc.Height())
|
2017-10-24 12:34:36 +02:00
|
|
|
|
|
|
|
}
|