diff options
Diffstat (limited to 'sonar-scanner-engine/src/test/java/org/sonar/scm/git')
-rw-r--r-- | sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java | 160 | ||||
-rw-r--r-- | sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java | 68 |
2 files changed, 120 insertions, 108 deletions
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java index 078d91fb6d6..346f35af705 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java @@ -31,12 +31,14 @@ public class ChangedLinesComputerTest { @Test public void do_not_count_deleted_line() throws IOException { - String example = "diff --git a/file-b1.xoo b/file-b1.xoo\n" - + "index 0000000..c2a9048\n" - + "--- a/foo\n" - + "+++ b/bar\n" - + "@@ -1 +0,0 @@\n" - + "-deleted line\n"; + String example = """ + diff --git a/file-b1.xoo b/file-b1.xoo + index 0000000..c2a9048 + --- a/foo + +++ b/bar + @@ -1 +0,0 @@ + -deleted line + """; printDiff(example); assertThat(underTest.changedLines()).isEmpty(); @@ -44,12 +46,14 @@ public class ChangedLinesComputerTest { @Test public void count_single_added_line() throws IOException { - String example = "diff --git a/file-b1.xoo b/file-b1.xoo\n" - + "index 0000000..c2a9048\n" - + "--- a/foo\n" - + "+++ b/bar\n" - + "@@ -0,0 +1 @@\n" - + "+added line\n"; + String example = """ + diff --git a/file-b1.xoo b/file-b1.xoo + index 0000000..c2a9048 + --- a/foo + +++ b/bar + @@ -0,0 +1 @@ + +added line + """; printDiff(example); assertThat(underTest.changedLines()).containsExactly(1); @@ -57,14 +61,16 @@ public class ChangedLinesComputerTest { @Test public void count_multiple_added_lines() throws IOException { - String example = "diff --git a/file-b1.xoo b/file-b1.xoo\n" - + "index 0000000..c2a9048\n" - + "--- a/foo\n" - + "+++ b/bar\n" - + "@@ -1 +1,3 @@\n" - + " unchanged line\n" - + "+added line 1\n" - + "+added line 2\n"; + String example = """ + diff --git a/file-b1.xoo b/file-b1.xoo + index 0000000..c2a9048 + --- a/foo + +++ b/bar + @@ -1 +1,3 @@ + unchanged line + +added line 1 + +added line 2 + """; printDiff(example); assertThat(underTest.changedLines()).containsExactly(2, 3); @@ -72,72 +78,78 @@ public class ChangedLinesComputerTest { @Test public void compute_from_multiple_hunks() throws IOException { - String example = "diff --git a/lao b/lao\n" - + "index 635ef2c..5af88a8 100644\n" - + "--- a/lao\n" - + "+++ b/lao\n" - + "@@ -1,7 +1,6 @@\n" - + "-The Way that can be told of is not the eternal Way;\n" - + "-The name that can be named is not the eternal name.\n" - + " The Nameless is the origin of Heaven and Earth;\n" - + "-The Named is the mother of all things.\n" - + "+The named is the mother of all things.\n" - + "+\n" - + " Therefore let there always be non-being,\n" - + " so we may see their subtlety,\n" - + " And let there always be being,\n" - + "@@ -9,3 +8,6 @@ And let there always be being,\n" - + " The two are the same,\n" - + " But after they are produced,\n" - + " they have different names.\n" - + "+They both may be called deep and profound.\n" - + "+Deeper and more profound,\n" - + "+The door of all subtleties!\n"; + String example = """ + diff --git a/lao b/lao + index 635ef2c..5af88a8 100644 + --- a/lao + +++ b/lao + @@ -1,7 +1,6 @@ + -The Way that can be told of is not the eternal Way; + -The name that can be named is not the eternal name. + The Nameless is the origin of Heaven and Earth; + -The Named is the mother of all things. + +The named is the mother of all things. + + + Therefore let there always be non-being, + so we may see their subtlety, + And let there always be being, + @@ -9,3 +8,6 @@ And let there always be being, + The two are the same, + But after they are produced, + they have different names. + +They both may be called deep and profound. + +Deeper and more profound, + +The door of all subtleties! + """; printDiff(example); assertThat(underTest.changedLines()).containsExactly(2, 3, 11, 12, 13); } @Test public void compute_from_multiple_hunks_with_extra_header_lines() throws IOException { - String example = "diff --git a/lao b/lao\n" - + "new file mode 100644\n" - + "whatever " - + "other " - + "surprise header lines git might throw at us...\n" - + "index 635ef2c..5af88a8 100644\n" - + "--- a/lao\n" - + "+++ b/lao\n" - + "@@ -1,7 +1,6 @@\n" - + "-The Way that can be told of is not the eternal Way;\n" - + "-The name that can be named is not the eternal name.\n" - + " The Nameless is the origin of Heaven and Earth;\n" - + "-The Named is the mother of all things.\n" - + "+The named is the mother of all things.\n" - + "+\n" - + " Therefore let there always be non-being,\n" - + " so we may see their subtlety,\n" - + " And let there always be being,\n" - + "@@ -9,3 +8,6 @@ And let there always be being,\n" - + " The two are the same,\n" - + " But after they are produced,\n" - + " they have different names.\n" - + "+They both may be called deep and profound.\n" - + "+Deeper and more profound,\n" - + "+The door of all subtleties!\n"; + String example = """ + diff --git a/lao b/lao + new file mode 100644 + whatever \ + other \ + surprise header lines git might throw at us... + index 635ef2c..5af88a8 100644 + --- a/lao + +++ b/lao + @@ -1,7 +1,6 @@ + -The Way that can be told of is not the eternal Way; + -The name that can be named is not the eternal name. + The Nameless is the origin of Heaven and Earth; + -The Named is the mother of all things. + +The named is the mother of all things. + + + Therefore let there always be non-being, + so we may see their subtlety, + And let there always be being, + @@ -9,3 +8,6 @@ And let there always be being, + The two are the same, + But after they are produced, + they have different names. + +They both may be called deep and profound. + +Deeper and more profound, + +The door of all subtleties! + """; printDiff(example); assertThat(underTest.changedLines()).containsExactly(2, 3, 11, 12, 13); } @Test public void throw_exception_invalid_start_line_format() throws IOException { - String example = "diff --git a/file-b1.xoo b/file-b1.xoo\n" - + "index 0000000..c2a9048\n" - + "--- a/foo\n" - + "+++ b/bar\n" - + "@@ -1 +x1,3 @@\n" - + " unchanged line\n" - + "+added line 1\n" - + "+added line 2\n"; + String example = """ + diff --git a/file-b1.xoo b/file-b1.xoo + index 0000000..c2a9048 + --- a/foo + +++ b/bar + @@ -1 +x1,3 @@ + unchanged line + +added line 1 + +added line 2 + """; assertThatThrownBy(() -> printDiff(example)) .isInstanceOf(IllegalStateException.class); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java index f430cc9e50f..884253a7e4f 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java @@ -85,31 +85,34 @@ public class GitScmProviderTest { // Sample content for unified diffs // http://www.gnu.org/software/diffutils/manual/html_node/Example-Unified.html#Example-Unified - private static final String CONTENT_LAO = "The Way that can be told of is not the eternal Way;\n" - + "The name that can be named is not the eternal name.\n" - + "The Nameless is the origin of Heaven and Earth;\n" - + "The Named is the mother of all things.\n" - + "Therefore let there always be non-being,\n" - + " so we may see their subtlety,\n" - + "And let there always be being,\n" - + " so we may see their outcome.\n" - + "The two are the same,\n" - + "But after they are produced,\n" - + " they have different names.\n"; - - private static final String CONTENT_TZU = "The Nameless is the origin of Heaven and Earth;\n" - + "The named is the mother of all things.\n" - + "\n" - + "Therefore let there always be non-being,\n" - + " so we may see their subtlety,\n" - + "And let there always be being,\n" - + " so we may see their outcome.\n" - + "The two are the same,\n" - + "But after they are produced,\n" - + " they have different names.\n" - + "They both may be called deep and profound.\n" - + "Deeper and more profound,\n" - + "The door of all subtleties!"; + private static final String CONTENT_LAO = """ + The Way that can be told of is not the eternal Way; + The name that can be named is not the eternal name. + The Nameless is the origin of Heaven and Earth; + The Named is the mother of all things. + Therefore let there always be non-being, + so we may see their subtlety, + And let there always be being, + so we may see their outcome. + The two are the same, + But after they are produced, + they have different names. + """; + + private static final String CONTENT_TZU = """ + The Nameless is the origin of Heaven and Earth; + The named is the mother of all things. + + Therefore let there always be non-being, + so we may see their subtlety, + And let there always be being, + so we may see their outcome. + The two are the same, + But after they are produced, + they have different names. + They both may be called deep and profound. + Deeper and more profound, + The door of all subtleties!"""; private static final String BRANCH_NAME = "branch"; private static final String TEST_DOC_LINK = "documentation link"; @@ -147,7 +150,8 @@ public class GitScmProviderTest { public void returnImplem() { JGitBlameCommand jblameCommand = new JGitBlameCommand(); NativeGitBlameCommand nativeBlameCommand = new NativeGitBlameCommand(System2.INSTANCE, new ProcessWrapperFactory()); - CompositeBlameCommand compositeBlameCommand = new CompositeBlameCommand(analysisWarnings, new PathResolver(), jblameCommand, nativeBlameCommand, new DefaultBlameStrategy(mock(Configuration.class))); + CompositeBlameCommand compositeBlameCommand = new CompositeBlameCommand(analysisWarnings, new PathResolver(), jblameCommand, nativeBlameCommand, + new DefaultBlameStrategy(mock(Configuration.class))); GitScmProvider gitScmProvider = new GitScmProvider(compositeBlameCommand, analysisWarnings, gitIgnoreCommand, system2, documentationLinkGenerator); assertThat(gitScmProvider.blameCommand()).isEqualTo(compositeBlameCommand); @@ -238,8 +242,7 @@ public class GitScmProviderTest { .extracting(ChangedFile::getAbsolutFilePath, ChangedFile::getOldRelativeFilePathReference) .containsExactlyInAnyOrder( tuple(newFileM1AbsolutPath, fileM1), - tuple(newFileM2AbsolutPath, fileM2) - ); + tuple(newFileM2AbsolutPath, fileM2)); } @Test @@ -454,8 +457,7 @@ public class GitScmProviderTest { Map<Path, ChangedFile> changedFiles = Map.of( newFileM1AbsolutPath, ChangedFile.of(newFileM1AbsolutPath, fileM1), - newFileM2AbsolutPath, ChangedFile.of(newFileM2AbsolutPath, fileM2) - ); + newFileM2AbsolutPath, ChangedFile.of(newFileM2AbsolutPath, fileM2)); Map<Path, Set<Integer>> changedLines = newScmProvider().branchChangedLinesWithFileMovementDetection("master", worktree.resolve("project1"), changedFiles); @@ -463,8 +465,7 @@ public class GitScmProviderTest { assertThat(changedLines) .containsOnly( entry(newFileM1AbsolutPath, Set.of(2)), - entry(newFileM2AbsolutPath, Set.of(1)) - ); + entry(newFileM2AbsolutPath, Set.of(1))); } @Test @@ -725,8 +726,7 @@ public class GitScmProviderTest { assertThat(provider.branchChangedLines("master", worktree, changedFiles)) .containsOnly( entry(worktree.resolve(f1), Collections.singleton(1)), - entry(worktree.resolve(f2), Collections.singleton(2)) - ); + entry(worktree.resolve(f2), Collections.singleton(2))); } @Test |