You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.3 KiB
66 lines
1.3 KiB
package script
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestCondition_Check(t *testing.T) {
|
|
variables := VariableSet{
|
|
"global": map[string]string{
|
|
"test": "32",
|
|
},
|
|
"devices:dummy:01;dummy:02": map[string]string{
|
|
"tstxo": "tsyeym",
|
|
},
|
|
"match:lucifer:tag:Soverom": map[string]string{
|
|
"mode": "daytime",
|
|
"stuff": "54",
|
|
},
|
|
}
|
|
|
|
table := []struct {
|
|
L string
|
|
R bool
|
|
C Condition
|
|
M string
|
|
D []string
|
|
}{
|
|
{
|
|
"global_gte", true,
|
|
Condition{"global", "test", "gte", "16", false},
|
|
"", []string{},
|
|
},
|
|
{
|
|
"global_!gte", true,
|
|
Condition{"global", "test", "gte", "64", true},
|
|
"", []string{},
|
|
},
|
|
{
|
|
"global_eq", true,
|
|
Condition{"global", "test", "eq", "32", false},
|
|
"", []string{},
|
|
},
|
|
{
|
|
"match_exists", true,
|
|
Condition{"devices", "tstxo", "exists", "", false},
|
|
"", []string{"dummy:01", "dummy:02"},
|
|
},
|
|
{
|
|
"match_!exists", false,
|
|
Condition{"devices", "tstxo", "exists", "", true},
|
|
"", []string{"dummy:01", "dummy:02"},
|
|
},
|
|
{
|
|
"devices_contains", true,
|
|
Condition{"match", "mode", "contains", "time", false},
|
|
"lucifer:tag:Soverom", []string{},
|
|
},
|
|
}
|
|
|
|
for _, row := range table {
|
|
t.Run(row.L, func(t *testing.T) {
|
|
assert.Equal(t, row.R, row.C.Check(variables, row.M, row.D))
|
|
})
|
|
}
|
|
}
|