github.phpd.cn/thought-machine/please@v12.2.0+incompatible/src/parse/asp/util_test.go (about) 1 package asp 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestFindTarget(t *testing.T) { 11 p := NewParser(nil) 12 stmts, err := p.ParseFileOnly("src/parse/asp/test_data/example.build") 13 require.NoError(t, err) 14 15 stmt := FindTarget(stmts, "asp") 16 require.NotNil(t, stmt) 17 assert.Equal(t, 1, stmt.Pos.Line) 18 19 stmt = FindTarget(stmts, "parser_test") 20 require.NotNil(t, stmt) 21 assert.Equal(t, 16, stmt.Pos.Line) 22 23 stmt = FindTarget(stmts, "lexer_test") 24 require.NotNil(t, stmt) 25 assert.Equal(t, 26, stmt.Pos.Line) 26 27 stmt = FindTarget(stmts, "wibble") 28 assert.Nil(t, stmt) 29 } 30 31 func TestGetExtents(t *testing.T) { 32 p := NewParser(nil) 33 stmts, err := p.ParseFileOnly("src/parse/asp/test_data/example.build") 34 require.NoError(t, err) 35 36 stmt := FindTarget(stmts, "asp") 37 require.NotNil(t, stmt) 38 begin, end := GetExtents(stmts, stmt, 200) 39 assert.Equal(t, 1, begin) 40 assert.Equal(t, 15, end) 41 42 stmt = FindTarget(stmts, "parser_test") 43 require.NotNil(t, stmt) 44 begin, end = GetExtents(stmts, stmt, 200) 45 assert.Equal(t, 16, begin) 46 assert.Equal(t, 25, end) 47 48 stmt = FindTarget(stmts, "lexer_test") 49 require.NotNil(t, stmt) 50 begin, end = GetExtents(stmts, stmt, 200) 51 assert.Equal(t, 26, begin) 52 assert.Equal(t, 35, end) 53 54 stmt = FindTarget(stmts, "util_test") 55 require.NotNil(t, stmt) 56 begin, end = GetExtents(stmts, stmt, 200) 57 assert.Equal(t, 36, begin) 58 assert.Equal(t, 200, end) 59 } 60 61 func TestGetArg(t *testing.T) { 62 p := NewParser(nil) 63 stmts, err := p.ParseFileOnly("src/parse/asp/test_data/example.build") 64 require.NoError(t, err) 65 66 stmt := FindTarget(stmts, "asp") 67 require.NotNil(t, stmt) 68 vis := FindArgument(stmt, "visibility") 69 require.NotNil(t, vis) 70 assert.Equal(t, 13, vis.Value.Pos.Line) 71 assert.Nil(t, FindArgument(stmt, "wibble")) 72 }