cosmos-sdk/stack/helpers_test.go

65 lines
1.4 KiB
Go
Raw Normal View History

2017-06-29 07:09:15 -07:00
package stack
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
"github.com/tendermint/tmlibs/log"
2017-06-29 07:09:15 -07:00
"github.com/tendermint/basecoin"
"github.com/tendermint/basecoin/types"
)
func TestOK(t *testing.T) {
assert := assert.New(t)
2017-07-03 08:32:01 -07:00
ctx := NewContext("test-chain", log.NewNopLogger())
2017-06-29 07:09:15 -07:00
store := types.NewMemKVStore()
data := "this looks okay"
tx := basecoin.Tx{}
ok := OKHandler{Log: data}
2017-06-29 07:09:15 -07:00
res, err := ok.CheckTx(ctx, store, tx)
assert.Nil(err, "%+v", err)
assert.Equal(data, res.Log)
res, err = ok.DeliverTx(ctx, store, tx)
assert.Nil(err, "%+v", err)
assert.Equal(data, res.Log)
}
func TestFail(t *testing.T) {
assert := assert.New(t)
2017-07-03 08:32:01 -07:00
ctx := NewContext("test-chain", log.NewNopLogger())
2017-06-29 07:09:15 -07:00
store := types.NewMemKVStore()
msg := "big problem"
tx := basecoin.Tx{}
fail := FailHandler{Err: errors.New(msg)}
2017-06-29 07:09:15 -07:00
_, err := fail.CheckTx(ctx, store, tx)
if assert.NotNil(err) {
assert.Equal(msg, err.Error())
}
_, err = fail.DeliverTx(ctx, store, tx)
if assert.NotNil(err) {
assert.Equal(msg, err.Error())
}
}
func TestPanic(t *testing.T) {
assert := assert.New(t)
2017-07-03 08:32:01 -07:00
ctx := NewContext("test-chain", log.NewNopLogger())
2017-06-29 07:09:15 -07:00
store := types.NewMemKVStore()
msg := "system crash!"
tx := basecoin.Tx{}
fail := PanicHandler{Msg: msg}
assert.Panics(func() { fail.CheckTx(ctx, store, tx) })
assert.Panics(func() { fail.DeliverTx(ctx, store, tx) })
}