mirror of https://github.com/tidwall/tile38.git
bdc80a7f70
It's now possible to do: SCAN fleet WHERE "properties.speed < 25 || properties.speed > 50" Uses javascript-like syntax using the https://github.com/tidwall/expr package. Automatically reference fields and GeoJSON properties: SET fleet truck1 FIELD speed 65 POINT -112 33 Can be queried: SCAN fleet WHERE "speed > 50" SCAN fleet WHERE "id == 'truck1'" SCAN fleet WHERE "speed > 50 && id == 'truck1'" |
||
---|---|---|
.. | ||
107 | ||
616 | ||
README.md | ||
aof_legacy | ||
aof_test.go | ||
client_test.go | ||
fence_roaming_test.go | ||
fence_test.go | ||
follower_test.go | ||
json_test.go | ||
keys_search_test.go | ||
keys_test.go | ||
metrics_test.go | ||
mock_io_test.go | ||
mock_test.go | ||
monitor_test.go | ||
scripts_test.go | ||
stats_test.go | ||
testcmd_test.go | ||
tests_test.go | ||
timeout_test.go |
README.md
Tile38 Integation Testing
- Uses Redis protocol
- The Tile38 data is flushed before every
DoBatch
A basic test operation looks something like:
func keys_SET_test(mc *mockServer) error {
return mc.DoBatch([][]interface{}{
{"SET", "fleet", "truck1", "POINT", 33.0001, -112.0001}, {"OK"},
{"GET", "fleet", "truck1", "POINT"}, {"[33.0001 -112.0001]"},
}
}
Using a custom function:
func keys_MATCH_test(mc *mockServer) error {
return mc.DoBatch([][]interface{}{
{"SET", "fleet", "truck1", "POINT", 33.0001, -112.0001}, {
func(v interface{}) (resp, expect interface{}) {
// v is the value as strings or slices of strings
// test will pass as long as `resp` and `expect` are the same.
return v, "OK"
},
},
}
}