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  }