add Conditions function

Refs https://github.com/tendermint/tendermint/pull/835
This commit is contained in:
Anton Kaliaev
2017-11-27 18:40:51 -06:00
parent 850fd24ee9
commit 3822727981
2 changed files with 135 additions and 32 deletions

View File

@ -62,3 +62,24 @@ func TestMustParse(t *testing.T) {
assert.Panics(t, func() { query.MustParse("=") })
assert.NotPanics(t, func() { query.MustParse("tm.events.type='NewBlock'") })
}
func TestConditions(t *testing.T) {
txTime, err := time.Parse(time.RFC3339, "2013-05-03T14:45:00Z")
require.NoError(t, err)
testCases := []struct {
s string
conditions []query.Condition
}{
{"tm.events.type='NewBlock'", []query.Condition{query.Condition{"tm.events.type", query.OpEqual, "NewBlock"}}},
{"tx.gas > 7 AND tx.gas < 9", []query.Condition{query.Condition{"tx.gas", query.OpGreater, int64(7)}, query.Condition{"tx.gas", query.OpLess, int64(9)}}},
{"tx.time >= TIME 2013-05-03T14:45:00Z", []query.Condition{query.Condition{"tx.time", query.OpGreaterEqual, txTime}}},
}
for _, tc := range testCases {
query, err := query.New(tc.s)
require.Nil(t, err)
assert.Equal(t, tc.conditions, query.Conditions())
}
}