feat: V1.1 - 责任人区分
All checks were successful
序列化结构检查 / serialization-schema-check (push) Successful in 2s
All checks were successful
序列化结构检查 / serialization-schema-check (push) Successful in 2s
This commit is contained in:
66
src/test/java/com/codechecker/cache/git/GitDiffScannerAuthorFilterTest.java
vendored
Normal file
66
src/test/java/com/codechecker/cache/git/GitDiffScannerAuthorFilterTest.java
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
package com.codechecker.cache.git;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
/**
|
||||
* {@link GitDiffScanner#parseAuthorTouchedJavaFiles} 责任人过滤解析单测。
|
||||
*/
|
||||
class GitDiffScannerAuthorFilterTest {
|
||||
|
||||
@Test
|
||||
void takesOnlyMatchingAuthorJavaFiles() {
|
||||
Set<String> files = GitDiffScanner.parseAuthorTouchedJavaFiles(Arrays.asList(
|
||||
"COMMIT Alice <alice@example.com>",
|
||||
"a/src/main/java/A.java",
|
||||
"a/src/main/java/Shared.java",
|
||||
"COMMIT Bob <bob@example.com>",
|
||||
"b/src/main/java/B.java",
|
||||
"a/src/main/java/Shared.java"
|
||||
), "alice");
|
||||
|
||||
assertEquals(Set.of(
|
||||
"a/src/main/java/A.java",
|
||||
"a/src/main/java/Shared.java"
|
||||
), files);
|
||||
}
|
||||
|
||||
@Test
|
||||
void matchesActorAgainstEmailCaseInsensitive() {
|
||||
Set<String> files = GitDiffScanner.parseAuthorTouchedJavaFiles(Arrays.asList(
|
||||
"COMMIT 张三 <ZhangSan@corp.com>",
|
||||
"pkg/Foo.java",
|
||||
"COMMIT 李四 <lisi@corp.com>",
|
||||
"pkg/Bar.java"
|
||||
), "zhangsan");
|
||||
|
||||
assertEquals(Set.of("pkg/Foo.java"), files);
|
||||
}
|
||||
|
||||
@Test
|
||||
void skipsNonJavaAndEmptyLines() {
|
||||
Set<String> files = GitDiffScanner.parseAuthorTouchedJavaFiles(Arrays.asList(
|
||||
"COMMIT alice <a@x.com>",
|
||||
"",
|
||||
"README.md",
|
||||
"src/Main.java",
|
||||
"COMMIT other <o@x.com>",
|
||||
"src/Other.java"
|
||||
), "alice");
|
||||
|
||||
assertEquals(Set.of("src/Main.java"), files);
|
||||
}
|
||||
|
||||
@Test
|
||||
void emptyFilterOrLinesYieldEmpty() {
|
||||
assertTrue(GitDiffScanner.parseAuthorTouchedJavaFiles(Collections.emptyList(), "alice").isEmpty());
|
||||
assertTrue(GitDiffScanner.parseAuthorTouchedJavaFiles(
|
||||
Collections.singletonList("COMMIT alice <a@x.com>"), "").isEmpty());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user