github.com/ismailbayram/bigpicture@v0.0.0-20231225173155-e4b21f5efcff/internal/browser/java_test.go (about) 1 package browser 2 3 import ( 4 "fmt" 5 "github.com/ismailbayram/bigpicture/internal/graph" 6 "github.com/stretchr/testify/assert" 7 "os" 8 "testing" 9 ) 10 11 func ChangeDirToJavaProjectRoot() { 12 err := os.Chdir("internal/browser/javaproject") 13 if err != nil { 14 panic(err) 15 } 16 } 17 18 func TestJavaBrowser_GetModuleName(t *testing.T) { 19 ChangeDirToJavaProjectRoot() 20 21 browser := &JavaBrowser{ 22 ignoredPaths: []string{}, 23 tree: nil, 24 } 25 26 moduleName := browser.getModuleName() 27 assert.Equal(t, "javaproject", moduleName) 28 } 29 30 func TestJavaBrowser_clearNonProjectImports(t *testing.T) { 31 32 browser := &JavaBrowser{ 33 ignoredPaths: []string{}, 34 tree: graph.NewTree("root"), 35 } 36 browser.tree.Nodes["cars"] = graph.NewNode("cars", "cars", graph.Dir, []string{}) 37 browser.tree.Nodes["baskets"] = graph.NewNode("baskets", "./baskets", graph.Dir, []string{ 38 "decimal.py", 39 "django/utils/translation.py", 40 "cars", 41 }) 42 43 browser.clearNonProjectImports() 44 45 assert.Equal(t, 1, len(browser.tree.Nodes["baskets"].ImportRaw)) 46 assert.Equal(t, "cars", browser.tree.Nodes["baskets"].ImportRaw[0]) 47 } 48 49 func TestJavaBrowser_ParseFile(t *testing.T) { 50 browser := &JavaBrowser{ 51 ignoredPaths: []string{}, 52 tree: nil, 53 rootDir: "/", 54 moduleName: "javaproject", 55 } 56 dir, err := os.Getwd() 57 if err != nil { 58 panic(err) 59 } 60 fmt.Println(dir) 61 parentNode := graph.NewNode("javaproject", "./", graph.Dir, nil) 62 node := browser.parseFile("src/main/com/shashi/service/impl/TrainServiceImpl.java", parentNode) 63 assert.NotNil(t, node) 64 65 assert.Equal(t, "src/main/com/shashi/service/impl/TrainServiceImpl.java", node.Path) 66 assert.Equal(t, "TrainServiceImpl.java", node.PackageName) 67 assert.Equal(t, "/com/shashi/beans/TrainBean.java", node.ImportRaw[0]) 68 assert.Equal(t, "/com/shashi/beans/TrainException.java", node.ImportRaw[1]) 69 assert.Equal(t, "/com/shashi/constant/ResponseCode.java", node.ImportRaw[2]) 70 assert.Equal(t, "/com/shashi/service/TrainService.java", node.ImportRaw[3]) 71 assert.Equal(t, "/com/shashi/utility/DBUtil.java", node.ImportRaw[4]) 72 73 assert.Equal(t, 170, node.LineCount) 74 75 assert.Equal(t, 6, len(node.Functions)) 76 funcs := map[string]int{ 77 "addTrain": 20, 78 "deleteTrainById": 15, 79 "updateTrain": 20, 80 "getTrainById": 22, 81 "getAllTrains": 24, 82 "getTrainsBetweenStations": 27, 83 } 84 for _, f := range node.Functions { 85 assert.Equal(t, funcs[f.Name], f.LineCount, f.Name) 86 } 87 } 88 89 func TestJavaBrowser_Browse(t *testing.T) { 90 browser := NewBrowser(LangJava, graph.NewTree("root"), []string{}, "/").(*JavaBrowser) 91 92 browser.Browse(".") 93 assert.Equal(t, "javaproject", browser.moduleName) 94 assert.NotEqual(t, 1, len(browser.tree.Nodes)) 95 } 96 97 func TestJavaBrowser_browse(t *testing.T) { 98 browser := NewBrowser(LangJava, graph.NewTree("root"), []string{}, "/").(*JavaBrowser) 99 100 browser.browse("src/main/com/shashi/service", browser.tree.Root) 101 102 assert.Equal(t, 8, len(browser.tree.Nodes)) 103 assert.Equal(t, browser.tree.Root.LineCount, 493) 104 }