refactor: [test] use same files

上级 ef0d8e6a
package cocatest package cocatest
import ( import (
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/core/adapter/cocafile"
"github.com/phodal/coca/core/context/analysis" "github.com/phodal/coca/core/context/analysis"
"github.com/phodal/coca/core/domain" "github.com/phodal/coca/core/domain"
"path/filepath" "path/filepath"
) )
func BuildTestAnalysisResultsByPath(codePath string) (map[string]domain.JIdentifier, []domain.JClassNode) { func BuildAnalysisDeps(codePath string) ([]domain.JClassNode, map[string]domain.JIdentifier, []domain.JIdentifier) {
files := cocafile.GetJavaTestFiles(codePath)
var identifiers []domain.JIdentifier
identifiers = cmd_util.LoadTestIdentify(files)
identifiersMap := domain.BuildIdentifierMap(identifiers)
var classes []string = nil
for _, node := range identifiers {
classes = append(classes, node.Package+"."+node.ClassName)
}
analysisApp := analysis.NewJavaFullApp()
classNodes := analysisApp.AnalysisFiles(identifiers, files, classes)
return identifiersMap, classNodes
}
func BuildAnalysisDeps(codePath string) ([]domain.JClassNode, map[string]domain.JIdentifier) {
codePath = filepath.FromSlash(codePath) codePath = filepath.FromSlash(codePath)
identifierApp := new(analysis.JavaIdentifierApp) identifierApp := new(analysis.JavaIdentifierApp)
...@@ -39,6 +20,6 @@ func BuildAnalysisDeps(codePath string) ([]domain.JClassNode, map[string]domain. ...@@ -39,6 +20,6 @@ func BuildAnalysisDeps(codePath string) ([]domain.JClassNode, map[string]domain.
callNodes := callApp.AnalysisPath(codePath, classes, identifiers) callNodes := callApp.AnalysisPath(codePath, classes, identifiers)
identifiersMap := domain.BuildIdentifierMap(identifiers) identifiersMap := domain.BuildIdentifierMap(identifiers)
return callNodes, identifiersMap return callNodes, identifiersMap, identifiers
} }
...@@ -14,7 +14,7 @@ func TestConceptAnalyser_Analysis(t *testing.T) { ...@@ -14,7 +14,7 @@ func TestConceptAnalyser_Analysis(t *testing.T) {
g := NewGomegaWithT(t) g := NewGomegaWithT(t)
codePath := "../../../_fixtures/arch/step2-java" codePath := "../../../_fixtures/arch/step2-java"
callNodes, identifiersMap := cocatest.BuildAnalysisDeps(codePath) callNodes, identifiersMap, _ := cocatest.BuildAnalysisDeps(codePath)
app := NewArchApp() app := NewArchApp()
results := app.Analysis(callNodes, identifiersMap) results := app.Analysis(callNodes, identifiersMap)
...@@ -42,7 +42,7 @@ func TestConceptAnalyser_AnalysisWithFans(t *testing.T) { ...@@ -42,7 +42,7 @@ func TestConceptAnalyser_AnalysisWithFans(t *testing.T) {
g := NewGomegaWithT(t) g := NewGomegaWithT(t)
codePath := "../../../_fixtures/arch/step2-java" codePath := "../../../_fixtures/arch/step2-java"
callNodes, identifiersMap := cocatest.BuildAnalysisDeps(codePath) callNodes, identifiersMap, _ := cocatest.BuildAnalysisDeps(codePath)
app := NewArchApp() app := NewArchApp()
result := app.Analysis(callNodes, identifiersMap) result := app.Analysis(callNodes, identifiersMap)
......
...@@ -4,7 +4,7 @@ import ( ...@@ -4,7 +4,7 @@ import (
"encoding/json" "encoding/json"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/phodal/coca/cmd/cmd_util" "github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/core/context/analysis" "github.com/phodal/coca/cocatest"
"github.com/phodal/coca/core/context/api" "github.com/phodal/coca/core/context/api"
"github.com/phodal/coca/core/context/call" "github.com/phodal/coca/core/context/call"
"github.com/phodal/coca/core/domain" "github.com/phodal/coca/core/domain"
...@@ -41,15 +41,8 @@ func Test_ShouldBuildSuccessDataFromSourceData(t *testing.T) { ...@@ -41,15 +41,8 @@ func Test_ShouldBuildSuccessDataFromSourceData(t *testing.T) {
g := NewGomegaWithT(t) g := NewGomegaWithT(t)
codePath := "../../../_fixtures/examples/api" codePath := "../../../_fixtures/examples/api"
identApp := analysis.NewJavaIdentifierApp() callNodes, identifiersMap, identifiers := cocatest.BuildAnalysisDeps(codePath)
identifiers := identApp.AnalysisPath(filepath.FromSlash(codePath))
var classes []string = nil
for _, node := range identifiers {
classes = append(classes, node.Package+"."+node.ClassName)
}
callApp := analysis.NewJavaFullApp()
callNodes := callApp.AnalysisPath(codePath, classes, identifiers)
identifiersMap := domain.BuildIdentifierMap(identifiers)
diMap := domain.BuildDIMap(identifiers, identifiersMap) diMap := domain.BuildDIMap(identifiers, identifiersMap)
app := new(api.JavaApiApp) app := new(api.JavaApiApp)
restApis := app.AnalysisPath(codePath, callNodes, identifiersMap, diMap) restApis := app.AnalysisPath(codePath, callNodes, identifiersMap, diMap)
......
...@@ -23,7 +23,7 @@ func Test_ShouldCountDeps_WhenHadClassNodes(t *testing.T) { ...@@ -23,7 +23,7 @@ func Test_ShouldCountDeps_WhenHadClassNodes(t *testing.T) {
g := NewGomegaWithT(t) g := NewGomegaWithT(t)
codePath := "../../../_fixtures/examples/api/" codePath := "../../../_fixtures/examples/api/"
_, classNodes := cocatest.BuildTestAnalysisResultsByPath(codePath) classNodes, _, _ := cocatest.BuildAnalysisDeps(codePath)
depApp := NewDepApp() depApp := NewDepApp()
depApp.CountDeps(classNodes) depApp.CountDeps(classNodes)
......
...@@ -4,7 +4,7 @@ import ( ...@@ -4,7 +4,7 @@ import (
"encoding/json" "encoding/json"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/phodal/coca/cmd/cmd_util" "github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/core/context/analysis" "github.com/phodal/coca/cocatest"
"github.com/phodal/coca/core/context/evaluate/evaluator" "github.com/phodal/coca/core/context/evaluate/evaluator"
"github.com/phodal/coca/core/domain" "github.com/phodal/coca/core/domain"
"path/filepath" "path/filepath"
...@@ -104,16 +104,7 @@ func Test_CheckFornull(t *testing.T) { ...@@ -104,16 +104,7 @@ func Test_CheckFornull(t *testing.T) {
} }
func buildEvaluateResult(codePath string) evaluator.EvaluateModel { func buildEvaluateResult(codePath string) evaluator.EvaluateModel {
codePath = filepath.FromSlash(codePath) callNodes, _, identifiers := cocatest.BuildAnalysisDeps(codePath)
identifierApp := new(analysis.JavaIdentifierApp)
identifiers := identifierApp.AnalysisPath(codePath)
var classes []string = nil
for _, node := range identifiers {
classes = append(classes, node.Package+"."+node.ClassName)
}
callApp := analysis.NewJavaFullApp()
callNodes := callApp.AnalysisPath(codePath, classes, identifiers)
analyser := NewEvaluateAnalyser() analyser := NewEvaluateAnalyser()
result := analyser.Analysis(callNodes, identifiers) result := analyser.Analysis(callNodes, identifiers)
......
...@@ -2,7 +2,10 @@ package tbs ...@@ -2,7 +2,10 @@ package tbs
import ( import (
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/phodal/coca/cocatest" "github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/core/adapter/cocafile"
"github.com/phodal/coca/core/context/analysis"
"github.com/phodal/coca/core/domain"
"path/filepath" "path/filepath"
"testing" "testing"
) )
...@@ -129,9 +132,26 @@ func TestTbsApp_ShouldReturnMultipleResult(t *testing.T) { ...@@ -129,9 +132,26 @@ func TestTbsApp_ShouldReturnMultipleResult(t *testing.T) {
} }
func buildTbsResult(codePath string) []TestBadSmell { func buildTbsResult(codePath string) []TestBadSmell {
identifiersMap, classNodes := cocatest.BuildTestAnalysisResultsByPath(codePath) identifiersMap, classNodes := BuildTestAnalysisResultsByPath(codePath)
app := NewTbsApp() app := NewTbsApp()
result := app.AnalysisPath(classNodes, identifiersMap) result := app.AnalysisPath(classNodes, identifiersMap)
return result return result
} }
func BuildTestAnalysisResultsByPath(codePath string) (map[string]domain.JIdentifier, []domain.JClassNode) {
files := cocafile.GetJavaTestFiles(codePath)
var identifiers []domain.JIdentifier
identifiers = cmd_util.LoadTestIdentify(files)
identifiersMap := domain.BuildIdentifierMap(identifiers)
var classes []string = nil
for _, node := range identifiers {
classes = append(classes, node.Package+"."+node.ClassName)
}
analysisApp := analysis.NewJavaFullApp()
classNodes := analysisApp.AnalysisFiles(identifiers, files, classes)
return identifiersMap, classNodes
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册