mock app tests now work
This commit is contained in:
parent
3ea9634291
commit
cdd33aa04b
|
@ -33,4 +33,42 @@ func TestInitApp(t *testing.T) {
|
|||
qres := app.Query(query)
|
||||
require.Equal(t, uint32(0), qres.Code, qres.Log)
|
||||
assert.Equal(t, []byte("bar"), qres.Value)
|
||||
|
||||
}
|
||||
|
||||
// TextDeliverTx ensures we can write a tx
|
||||
func TestDeliverTx(t *testing.T) {
|
||||
// set up an app
|
||||
app, closer, err := SetupApp()
|
||||
// closer may need to be run, even when error in later stage
|
||||
if closer != nil {
|
||||
defer closer()
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
key := "my-special-key"
|
||||
value := "top-secret-data!!"
|
||||
tx := NewTx(key, value)
|
||||
txBytes := tx.GetSignBytes()
|
||||
|
||||
header := abci.Header{
|
||||
AppHash: []byte("apphash"),
|
||||
Height: 1,
|
||||
}
|
||||
app.BeginBlock(abci.RequestBeginBlock{Header: header})
|
||||
dres := app.DeliverTx(txBytes)
|
||||
require.Equal(t, uint32(0), dres.Code, dres.Log)
|
||||
app.EndBlock(abci.RequestEndBlock{})
|
||||
cres := app.Commit()
|
||||
require.NotEmpty(t, cres.Data)
|
||||
|
||||
// make sure we can query these values
|
||||
query := abci.RequestQuery{
|
||||
Path: "/main/key",
|
||||
Data: []byte(key),
|
||||
}
|
||||
qres := app.Query(query)
|
||||
require.Equal(t, uint32(0), qres.Code, qres.Log)
|
||||
assert.Equal(t, []byte(value), qres.Value)
|
||||
|
||||
}
|
||||
|
|
12
mock/tx.go
12
mock/tx.go
|
@ -2,6 +2,7 @@ package mock
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
crypto "github.com/tendermint/go-crypto"
|
||||
|
@ -14,6 +15,17 @@ type kvstoreTx struct {
|
|||
bytes []byte
|
||||
}
|
||||
|
||||
var _ sdk.Tx = kvstoreTx{}
|
||||
|
||||
func NewTx(key, value string) kvstoreTx {
|
||||
bytes := fmt.Sprintf("%s=%s", key, value)
|
||||
return kvstoreTx{
|
||||
key: []byte(key),
|
||||
value: []byte(value),
|
||||
bytes: []byte(bytes),
|
||||
}
|
||||
}
|
||||
|
||||
func (tx kvstoreTx) Get(key interface{}) (value interface{}) {
|
||||
switch k := key.(type) {
|
||||
case string:
|
||||
|
|
Loading…
Reference in New Issue