规则引擎

This commit is contained in:
PandaGoAdmin
2023-03-21 11:42:02 +08:00
parent e267703a97
commit 186453f5a6
11 changed files with 102 additions and 42 deletions

View File

@@ -2,6 +2,8 @@ package rule_engine
import (
"io/ioutil"
"pandax/pkg/rule_engine/message"
"pandax/pkg/rule_engine/nodes"
"testing"
)
@@ -15,3 +17,26 @@ func TestNewRuleChainInstance(t *testing.T) {
t.Error(errs[0])
}
}
func TestScriptEngine(t *testing.T) {
metadata := message.NewDefaultMetadata(map[string]interface{}{"device": "aa"})
msg := message.NewMessageWithDetail("1", message.MessageTypeConnectEvent, []byte{}, metadata)
scriptEngine := nodes.NewScriptEngine()
const script = `
function Switch(msg, metadata, msgType) {
function nextRelation(metadata, msg) {
return ['one','nine'];
}
if(msgType === 'Post telemetry') {
return ['two'];
}
return nextRelation(metadata, msg);
}
`
SwitchResults, err := scriptEngine.ScriptOnSwitch(msg, script)
if err != nil {
t.Error(err)
}
t.Log(SwitchResults)
}