| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- // +build !disable_babelfish
 
- package uast
 
- import (
 
- 	"log"
 
- 	"sort"
 
- 	"testing"
 
- 	"github.com/stretchr/testify/assert"
 
- 	"gopkg.in/bblfsh/client-go.v3"
 
- 	"gopkg.in/bblfsh/sdk.v2/uast/nodes"
 
- 	uast_test "gopkg.in/src-d/hercules.v9/internal/plumbing/uast/test"
 
- 	"gopkg.in/src-d/hercules.v9/internal/test"
 
- )
 
- func TestChangesXPatherExtractChanged(t *testing.T) {
 
- 	client, err := bblfsh.NewClient("0.0.0.0:9432")
 
- 	if err != nil {
 
- 		log.Panicf("Failed to connect to the Babelfish server at 0.0.0.0:9432: %v", err)
 
- 	}
 
- 	hash1 := "a98a6940eb4cfb1eb635c3232485a75c4b63fff3"
 
- 	hash2 := "42457dc695fa73ec9621b47832d5711f6325410d"
 
- 	root1 := uast_test.ParseBlobFromTestRepo(hash1, "burndown.go", client)
 
- 	root2 := uast_test.ParseBlobFromTestRepo(hash2, "burndown.go", client)
 
- 	gitChange := test.FakeChangeForName("burndown.go", hash1, hash2)
 
- 	uastChanges := []Change{
 
- 		{Before: root1, After: root2, Change: gitChange},
 
- 		{Before: nil, After: root2, Change: gitChange},
 
- 		{Before: root1, After: nil, Change: gitChange},
 
- 	}
 
- 	xpather := ChangesXPather{XPath: "//uast:Comment"}
 
- 	nodesAdded, nodesRemoved := xpather.Extract(uastChanges)
 
- 	sort.Slice(nodesRemoved, func(i, j int) bool {
 
- 		return nodesRemoved[i].(nodes.Object)["Text"].(nodes.String) <
 
- 			nodesRemoved[j].(nodes.Object)["Text"].(nodes.String)
 
- 	})
 
- 	for _, n := range nodesAdded {
 
- 		assert.True(t, len(n.(nodes.Object)["Text"].(nodes.String)) > 0)
 
- 	}
 
- 	for _, n := range nodesRemoved[1:] {
 
- 		assert.True(t, len(n.(nodes.Object)["Text"].(nodes.String)) > 0)
 
- 	}
 
- 	assert.True(t, len(nodesAdded) > 0)
 
- 	assert.True(t, len(nodesRemoved) > 0)
 
- }
 
 
  |