From 6abf4cb9fbe4bc2a79263ba2d78ddd126ac1a5e6 Mon Sep 17 00:00:00 2001 From: Pouryafard75 Date: Wed, 3 Jul 2024 00:57:42 -0400 Subject: [PATCH] Refactor blame code --- .../org/codetracker/blame/util/Utils.java | 23 +++++++++++++++ .../blame/CodeTrackerBlameTest.java | 29 +++---------------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/codetracker/blame/util/Utils.java b/src/main/java/org/codetracker/blame/util/Utils.java index c7ad9df6081..c0119457471 100644 --- a/src/main/java/org/codetracker/blame/util/Utils.java +++ b/src/main/java/org/codetracker/blame/util/Utils.java @@ -1,5 +1,7 @@ package org.codetracker.blame.util; +import org.codetracker.blame.IBlame; +import org.codetracker.blame.model.LineBlameResult; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectLoader; import org.eclipse.jgit.lib.Repository; @@ -7,6 +9,8 @@ import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.treewalk.TreeWalk; import org.eclipse.jgit.treewalk.filter.PathFilter; +import org.refactoringminer.api.GitService; +import org.refactoringminer.astDiff.utils.URLHelper; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; @@ -58,4 +62,23 @@ public static List getFileContentByCommit(Repository repository, String } return lines; } + public static String getBlameOutput(String url, String filePath, IBlame blamer, String reposPath, GitService gitService) throws Exception { + String commitId = URLHelper.getCommit(url); + Repository repository = gitService.cloneIfNotExists(reposPath + "/" + getProject(url), URLHelper.getRepo(url)); + List lines = getFileContentByCommit(repository, commitId, filePath); + BlameFormatter formatter = new BlameFormatter(lines); + List blameResult = apply(commitId, filePath, blamer, repository); + return TabularPrint.make(formatter.make(blameResult)); + } + + + private static List apply(String commitId, String filePath, IBlame blamer, Repository repository) throws Exception { + return blamer.blameFile(repository, commitId, filePath); + } + public static String getOwner(String gitURL){ + return gitURL.split("/")[3]; + } + public static String getProject(String gitURL){ + return gitURL.split("/")[4]; + } } diff --git a/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java b/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java index 7b2377d3f45..111222f4837 100644 --- a/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java +++ b/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java @@ -25,7 +25,7 @@ import java.util.Objects; import java.util.stream.Stream; -import static org.codetracker.blame.util.Utils.getFileContentByCommit; +import static org.codetracker.blame.util.Utils.*; /* Created by pourya on 2024-06-26*/ @Disabled @@ -35,12 +35,7 @@ public class CodeTrackerBlameTest { @ParameterizedTest @MethodSource("testBlamerInputProvider") public void testBlameWithFormatting(String url, String filePath, IBlame blamer, String expectedPath) throws Exception { - String commitId = URLHelper.getCommit(url); - Repository repository = gitService.cloneIfNotExists(REPOS_PATH + "/" + getProject(url), URLHelper.getRepo(url)); - List lines = getFileContentByCommit(repository, commitId, filePath); - BlameFormatter formatter = new BlameFormatter(lines); - List blameResult = apply(commitId, filePath, blamer, repository); - String actual = TabularPrint.make(formatter.make(blameResult)); + String actual = getBlameOutput(url, filePath, blamer, REPOS_PATH, gitService); assertEqualWithFile(expectedPath, actual); } @@ -59,12 +54,8 @@ public void testBlameWithLocalRepo() throws Exception { String url = "https://github.com/pouryafard75/DiffBenchmark/commit/5b33dc6f8cfcf8c0e31966c035b0406eca97ec76"; String filePath = "src/main/java/dat/MakeIntels.java"; String expectedPath = "/blame/blameTestWithLocalRepo.txt"; - String commitId = URLHelper.getCommit(url); - Repository repository = gitService.cloneIfNotExists(REPOS_PATH + "/" + getProject(url), URLHelper.getRepo(url)); - List blameResult = new CodeTrackerBlame().blameFile(repository, commitId, filePath); - List lines = getFileContentByCommit(repository, commitId, filePath); - BlameFormatter formatter = new BlameFormatter(lines); - String actual = TabularPrint.make(formatter.make(blameResult)); + + String actual = getBlameOutput(url, filePath, new CodeTrackerBlame(), REPOS_PATH, gitService); assertEqualWithFile(expectedPath, actual); } @@ -91,16 +82,4 @@ public void blameTestSingleLine() throws Exception { Assertions.assertEquals(expected, lineBlameResult.toString()); } - private List apply(String commitId, String filePath, IBlame blamer, Repository repository) throws Exception { - return blamer.blameFile(repository, commitId, filePath); - } - - - private static String getOwner(String gitURL){ - return gitURL.split("/")[3]; - } - private static String getProject(String gitURL){ - return gitURL.split("/")[4]; - } - } \ No newline at end of file