Skip to content

Commit db8c706

Browse files
authored
tests: add even more tests
1 parent 95753ae commit db8c706

9 files changed

+75
-5
lines changed

src/main/java/bugs/stackoverflow/belisarius/filters/BlacklistedFilter.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public double getTotalScore() {
7777

7878
@Override
7979
public String getFormattedReasonMessage() {
80-
String message = getFormattedMessage("title", "title")
81-
+ getFormattedMessage("body", "body")
80+
String message = getFormattedMessage("title", "Title")
81+
+ getFormattedMessage("body", "Body")
8282
+ getFormattedMessage("comment", "Edit summary");
8383

8484
return message.trim();

src/main/java/bugs/stackoverflow/belisarius/filters/RepeatedWordFilter.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ private String getRepeatedWords() {
6868
words.append(word);
6969
}
7070

71-
return words.toString().substring(0, 40) + "...";
71+
return words.toString().length() < 40
72+
? words.toString()
73+
: words.toString().substring(0, 40) + "...";
7274
}
7375

7476
@Override

src/test/java/bugs/stackoverflow/belisarius/filters/BlacklistedFilterTest.java

+19
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package bugs.stackoverflow.belisarius.filters;
22

33
import java.io.IOException;
4+
import java.util.List;
45

56
import bugs.stackoverflow.belisarius.models.Post;
67

78
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
import static org.junit.jupiter.api.Assertions.assertTrue;
810

911
import org.junit.jupiter.api.Test;
1012

@@ -70,5 +72,22 @@ public void hitTest() throws IOException {
7072
assertEquals(filter4.isHit(), true);
7173
// 1 (title) + 1 (edit summary) + 2 (post body) = 4
7274
assertEquals(filter4.getTotalScore(), 4.0);
75+
76+
List<String> reasons = List.of(
77+
"Contains blacklisted word: (?i)(problem|error|issue)\\s+(re|now\\s+)?(solved|fixed)",
78+
"Contains blacklisted word: (?:problem|error|issue).{0,10}(?<!n't|not)\\s+(?:now\\s+)?fixed(?!\\W*\\?)",
79+
"Contains blacklisted word: (?i)(problem|error|issue)\\s+(re|now\\s+)?(solved|fixed)",
80+
"Contains blacklisted word: (?i)(answer -|answer:)"
81+
);
82+
List<String> actual = filter4.getReasonName();
83+
84+
assertTrue(actual.containsAll(reasons) && reasons.containsAll(actual));
85+
assertEquals(
86+
filter4.getFormattedReasonMessage(),
87+
"**Body contains blacklisted words:** (?i)(problem|error|issue)\\s+(re|now\\s+)?(solved|fixed), "
88+
+ "(?i)(answer -|answer:) **Edit summary contains blacklisted words:** "
89+
+ "(?i)(problem|error|issue)\\s+(re|now\\s+)?(solved|fixed), "
90+
+ "(?:problem|error|issue).{0,10}(?<!n't|not)\\s+(?:now\\s+)?fixed(?!\\W*\\?)"
91+
);
7392
}
7493
}

src/test/java/bugs/stackoverflow/belisarius/filters/CodeRemovedFilterTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,7 @@ public void hitTest() throws IOException {
6060
assertEquals(filter4.isHit(), true);
6161
// total score is always 1
6262
assertEquals(filter4.getTotalScore(), 1.0);
63+
assertEquals(filter4.getFormattedReasonMessage(), "**Code removed**");
64+
assertEquals(filter4.getReasonName().get(0), "Code removed");
6365
}
6466
}

src/test/java/bugs/stackoverflow/belisarius/filters/FewUniqueCharactersFilterTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,7 @@ public void hitTest() throws IOException {
6161
assertEquals(filter3.isHit(), true);
6262
// total score is always 1
6363
assertEquals(filter3.getTotalScore(), 1.0);
64+
assertEquals(filter3.getFormattedReasonMessage(), "**Few unique characters detected:** Deltd");
65+
assertEquals(filter3.getReasonName().get(0), "Few unique characters in body");
6466
}
6567
}

src/test/java/bugs/stackoverflow/belisarius/filters/OffensiveWordFilterTest.java

+18
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package bugs.stackoverflow.belisarius.filters;
22

33
import java.io.IOException;
4+
import java.util.List;
45

56
import bugs.stackoverflow.belisarius.models.Post;
67

78
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
import static org.junit.jupiter.api.Assertions.assertTrue;
810

911
import org.junit.jupiter.api.Test;
1012

@@ -58,5 +60,21 @@ public void hitTest() throws IOException {
5860
OffensiveWordFilter filter3 = new OffensiveWordFilter(0, post3);
5961
assertEquals(filter3.isHit(), true);
6062
assertEquals(filter3.getTotalScore(), 5.0);
63+
64+
assertEquals(
65+
filter3.getFormattedReasonMessage(),
66+
"**Edit summary contains offensive words:** (?i)shitty\\squestion, "
67+
+ "(?i)fuck\\soff, (?i)\\bf([\\Wkcuf]*)ck(s|ers?|ed)?, (?i)jerk\\soff, (?i)this\\s*(\\w+)?\\s*spam"
68+
);
69+
70+
List<String> reasons = List.of(
71+
"Contains offensive word: (?i)shitty\\squestion",
72+
"Contains offensive word: (?i)fuck\\soff",
73+
"Contains offensive word: (?i)\\bf([\\Wkcuf]*)ck(s|ers?|ed)?",
74+
"Contains offensive word: (?i)jerk\\soff",
75+
"Contains offensive word: (?i)this\\s*(\\w+)?\\s*spam"
76+
);
77+
List<String> actual = filter3.getReasonName();
78+
assertTrue(actual.containsAll(reasons) && reasons.containsAll(actual));
6179
}
6280
}

src/test/java/bugs/stackoverflow/belisarius/filters/RepeatedWordFilterTest.java

+15
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,20 @@ public void hitTest() throws IOException {
5050
assertEquals(filter1.getTotalScore(), 2.0);
5151
assertEquals(filter2.getTotalScore(), 4.0);
5252
assertEquals(filter3.getTotalScore(), 5.0);
53+
54+
assertEquals(filter1.getReasonName().get(0), "Contains repeated words");
55+
56+
assertEquals(
57+
filter1.getFormattedReasonMessage(),
58+
"**Post contains repeated words:** repeatedthesearewords"
59+
);
60+
assertEquals(
61+
filter2.getFormattedReasonMessage(),
62+
"**Post contains repeated words:** Issueresolved"
63+
);
64+
assertEquals(
65+
filter3.getFormattedReasonMessage(),
66+
"**Post contains repeated word:** Deleted"
67+
);
5368
}
5469
}

src/test/java/bugs/stackoverflow/belisarius/filters/TextRemovedFilterTest.Java src/test/java/bugs/stackoverflow/belisarius/filters/TextRemovedFilterTest.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import org.junit.jupiter.api.Test;
1010

11-
public class RepeatedWordFilterTest {
11+
public class TextRemovedFilterTest {
1212
@Test
1313
public void hitTest() throws IOException {
1414
Post post1 = FilterTestUtils.getSamplePost(
@@ -20,7 +20,6 @@ public void hitTest() throws IOException {
2020
"question"
2121
);
2222

23-
// https://higgs.sobotics.org/Hippo/report/84303
2423
Post post2 = FilterTestUtils.getSamplePost(
2524
"This text has nothing to do with the above one.",
2625
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, "
@@ -54,5 +53,13 @@ public void hitTest() throws IOException {
5453
assertEquals(filter3.isHit(), true);
5554
// total weight is always 1.0
5655
assertEquals(filter3.getTotalScore(), 1.0);
56+
assertEquals(
57+
filter3.getReasonName().get(0),
58+
"Lots of text removed with a high JW score"
59+
);
60+
assertEquals(
61+
filter3.getFormattedReasonMessage(),
62+
"**80.0% or more text removed with a JW score of 0.42**"
63+
);
5764
}
5865
}

src/test/java/bugs/stackoverflow/belisarius/filters/VeryLongWordFilterTest.java

+5
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,10 @@ public void hitTest() throws IOException {
5757
assertEquals(filter1.isHit(), true);
5858
// total weight is always 1.0
5959
assertEquals(filter1.getTotalScore(), 1.0);
60+
assertEquals(filter1.getReasonName().get(0), "Contains very long word");
61+
assertEquals(
62+
filter1.getFormattedReasonMessage(),
63+
"**Contains very long word:** answerwithaveryveryveryveryverylongwordt..."
64+
);
6065
}
6166
}

0 commit comments

Comments
 (0)