github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/fn_use_test.go (about) 1 // Unless explicitly stated otherwise all files in this repository are licensed 2 // under the MIT License. 3 // This product includes software developed at Guance Cloud (https://www.guance.com/). 4 // Copyright 2021-present Guance, Inc. 5 6 package funcs 7 8 import ( 9 "testing" 10 "time" 11 12 "github.com/GuanceCloud/cliutils/pipeline/ptinput" 13 "github.com/GuanceCloud/cliutils/point" 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestUse(t *testing.T) { 18 case1 := map[string]string{ 19 "a.p": "if true {use(\"b.p\")}", 20 "b.p": "add_key(b,1)", 21 "d.p": "use(\"c.p\")", 22 "c.p": "use(\"a.p\") use(\"d.p\") use(\"fcName.p\")", 23 } 24 25 ret := [2][]string{ 26 {"a.p", "b.p"}, 27 {"d.p", "c.p"}, 28 } 29 30 timenow := time.Now() 31 32 ret1, ret2 := NewTestingRunner2(case1) 33 assert.Equal(t, len(ret[0]), len(ret1)) 34 assert.Equal(t, len(ret[1]), len(ret2)) 35 36 for _, v := range ret[0] { 37 if _, ok := ret1[v]; !ok { 38 t.Error(v) 39 } 40 } 41 42 for _, v := range ret[1] { 43 if _, ok := ret2[v]; !ok { 44 t.Error(v) 45 } 46 } 47 48 for _, name := range ret[0] { 49 pt := ptinput.NewPlPoint( 50 point.Network, "default", map[string]string{"ax": "1"}, nil, timenow) 51 52 errR := runScript(ret1[name], pt) 53 54 if errR != nil { 55 t.Fatal(errR) 56 } 57 assert.Equal(t, map[string]string{"ax": "1"}, pt.Tags()) 58 assert.Equal(t, map[string]interface{}{"b": int64(1)}, pt.Fields()) 59 assert.Equal(t, false, pt.Dropped()) 60 assert.Equal(t, "default", pt.GetPtName()) 61 } 62 }