-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathastkit_test.go
72 lines (59 loc) · 1.97 KB
/
astkit_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package astkit_test
import (
"testing"
"context"
"github.com/influx6/astkit"
"github.com/stretchr/testify/assert"
)
func TestTransform(t *testing.T) {
sudo, others, err := astkit.Transform(context.Background(), "github.com/influx6/astkit/testbed/sudo")
assert.NoError(t, err)
assert.NotNil(t, sudo)
assert.NotNil(t, others)
assert.NotNil(t, others["fmt"])
assert.NotNil(t, others["runtime"])
assert.NotNil(t, others["github.com/influx6/astkit/testbed/sudo"])
assert.NotNil(t, others["github.com/influx6/astkit/testbed/sudo/api"])
functioner, err := sudo.GetInterface("Functioner", "")
assert.NoError(t, err)
assert.NotNil(t, functioner)
pengu, err := sudo.GetVariable("pengu", "")
assert.NoError(t, err)
assert.NotNil(t, pengu)
assert.NotNil(t, pengu.Value)
pengu2, err := sudo.GetVariable("pengu2", "")
assert.NoError(t, err)
assert.NotNil(t, pengu2)
assert.NotNil(t, pengu2.Value)
pengu3, err := sudo.GetVariable("pengu3", "")
assert.NoError(t, err)
assert.NotNil(t, pengu3)
assert.NotNil(t, pengu3.Value)
mko, err := sudo.GetVariable("mko", "")
assert.NoError(t, err)
assert.NotNil(t, mko)
assert.Nil(t, mko.Value)
assert.NotNil(t, mko.Type)
one, err := sudo.GetVariable("one", "")
assert.NoError(t, err)
assert.NotNil(t, one)
assert.Nil(t, one.Type)
assert.NotNil(t, one.Value)
assert.NotNil(t, one.Value.ID(), "1")
fullFN, err := sudo.GetInterface("FullFn", "")
assert.NoError(t, err)
assert.NotNil(t, fullFN)
fnreco, err := sudo.GetStruct("FunctionReco", "")
assert.NoError(t, err)
assert.NotNil(t, fnreco)
fnres, err := sudo.GetStruct("FunctionResult", "")
assert.NoError(t, err)
assert.NotNil(t, fnres)
assert.NotNil(t, fnres.Fields["Field"])
assert.NotNil(t, fnres.Fields["Day"])
assert.NotNil(t, fnres.Fields["Ball"])
assert.NotNil(t, fnres.Methods["hello"])
assert.Equal(t, "int", fnres.Fields["Day"].Type.ID())
assert.Equal(t, "string", fnres.Fields["Field"].Type.ID())
assert.Equal(t, "fn", fnres.Methods["hello"].Arguments[0].Name)
}