aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java')
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedLinesComputerTest.java160
1 files changed, 86 insertions, 74 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);