mirror of
https://github.com/WiiLink24/wfc-server.git
synced 2026-03-21 17:44:58 -05:00
54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
package serverbrowser
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
"wwfc/serverbrowser/filter"
|
|
)
|
|
|
|
func parseFilter(t *testing.T, expression string) error {
|
|
_, err := filter.Parse(expression)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
return err
|
|
}
|
|
|
|
func evalFilter(t *testing.T, expression string, queryGame string, context map[string]string) (int64, error) {
|
|
tree, err := filter.Parse(expression)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return 0, err
|
|
}
|
|
|
|
ret, err := filter.Eval(tree, context, queryGame)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return 0, err
|
|
}
|
|
|
|
fmt.Printf("ret: %d\n", ret)
|
|
|
|
return ret, err
|
|
}
|
|
|
|
func TestParseFilter(t *testing.T) {
|
|
parseFilter(t, `dwc_mver = 3 and dwc_pid != 1000004498 and maxplayers = 3 and numplayers < 3 and dwc_mtype = 0 and dwc_mresv != dwc_pid and (((20=auth)AND((1&mskdif)=mskdif)AND((14&mskstg)=mskstg)))`)
|
|
|
|
evalFilter(t, `dwc_mver = 3 and dwc_pid != 1000004499 and maxplayers = 3 and numplayers < 3 and dwc_mtype = 0 and dwc_mresv != dwc_pid and (((20=auth)AND((1&mskdif)=mskdif)AND((14&mskstg)=mskstg)))`, "fstarzerods", map[string]string{
|
|
"dwc_mver": "3",
|
|
"dwc_pid": "1",
|
|
"maxplayers": "3",
|
|
"numplayers": "2",
|
|
"dwc_mtype": "0",
|
|
"dwc_mresv": "0",
|
|
"auth": "20",
|
|
"mskdif": "0",
|
|
"mskstg": "0",
|
|
})
|
|
|
|
evalFilter(t, `(1&mskdif)`, "fstarzerods", map[string]string{
|
|
"mskdif": "1",
|
|
})
|
|
}
|