call_graph_test.go 1.3 KB
Newer Older
P
Phodal Huang 已提交
1
package call_test
P
Phodal Huang 已提交
2 3

import (
P
Phodal Huang 已提交
4 5
	"encoding/json"
	. "github.com/onsi/gomega"
P
Phodal Huang 已提交
6
	"github.com/phodal/coca/core/context/call"
P
Phodal Huang 已提交
7
	"github.com/phodal/coca/core/domain"
8
	"github.com/phodal/coca/core/infrastructure"
P
Phodal Huang 已提交
9
	"path/filepath"
P
Phodal Huang 已提交
10
	"testing"
P
Phodal Huang 已提交
11 12 13
)


P
Phodal Huang 已提交
14 15
func Test_should_generate_correct_files(t *testing.T) {
	g := NewGomegaWithT(t)
P
Phodal Huang 已提交
16

P
Phodal Huang 已提交
17
	var parsedDeps []domain.JClassNode
P
Phodal Huang 已提交
18
	analyser := call.NewCallGraph()
19
	codePath := "../../../_fixtures/call/call_api_test.json"
P
Phodal Huang 已提交
20 21
	codePath = filepath.FromSlash(codePath)

22
	file := infrastructure.ReadFile(codePath)
P
Phodal Huang 已提交
23
	_ = json.Unmarshal(file, &parsedDeps)
P
Phodal Huang 已提交
24

P
Phodal Huang 已提交
25
	dotContent := analyser.Analysis("com.phodal.pholedge.book.BookController.createBook", *&parsedDeps)
P
Phodal Huang 已提交
26

P
Phodal Huang 已提交
27
	g.Expect(dotContent).To(Equal(`digraph G {
P
Phodal Huang 已提交
28 29 30 31 32 33 34 35
"com.phodal.pholedge.book.BookService.createBook" -> "com.phodal.pholedge.book.BookFactory.create";
"com.phodal.pholedge.book.BookService.createBook" -> "com.phodal.pholedge.book.model.command.CreateBookCommand.getIsbn";
"com.phodal.pholedge.book.BookService.createBook" -> "com.phodal.pholedge.book.model.command.CreateBookCommand.getName";
"com.phodal.pholedge.book.BookService.createBook" -> "com.phodal.pholedge.book.BookRepository.save";
"com.phodal.pholedge.book.BookService.createBook" -> "com.phodal.pholedge.book.model.Book.getId";
"com.phodal.pholedge.book.BookController.createBook" -> "com.phodal.pholedge.book.BookService.createBook";
}
`))
P
Phodal Huang 已提交
36 37

}