1717
1818import com .naver .nid .cover .checker .NewCoverageChecker ;
1919import com .naver .nid .cover .checker .model .NewCoverageCheckReport ;
20- import com .naver .nid .cover .github .GithubPullRequestManager ;
21- import com .naver .nid .cover .parser .coverage .CoverageReportParser ;
22- import com .naver .nid .cover .parser .coverage .model .FileCoverageReport ;
23- import com .naver .nid .cover .parser .diff .*;
20+ import com .naver .nid .cover .parser .diff .DiffParser ;
2421import com .naver .nid .cover .parser .diff .model .Diff ;
2522import com .naver .nid .cover .reporter .Reporter ;
2623import com .naver .nid .cover .util .ObjectFactory ;
2724import com .naver .nid .cover .util .Parameter ;
2825import com .naver .nid .cover .util .ParameterParser ;
26+ import com .naver .nid .cover .parser .coverage .CoverageReportParser ;
27+ import com .naver .nid .cover .parser .coverage .model .FileCoverageReport ;
2928import lombok .RequiredArgsConstructor ;
3029import lombok .extern .slf4j .Slf4j ;
3130
32- import java .util .ArrayList ;
3331import java .util .List ;
34- import java .util .Optional ;
3532import java .util .concurrent .CompletableFuture ;
3633import java .util .function .Function ;
34+ import java .util .function .Supplier ;
3735import java .util .stream .Collectors ;
3836import java .util .stream .Stream ;
3937
4038@ Slf4j
4139@ RequiredArgsConstructor
4240public final class CoverChecker {
4341
44- private final GithubPullRequestManager prManager ;
4542 private final CoverageReportParser coverageParser ;
4643 private final DiffParser diffParser ;
4744 private final NewCoverageChecker checker ;
4845 private final Reporter reporter ;
4946
5047 public CoverChecker (ObjectFactory objectManager ) {
51- this (objectManager .getPrManager (),
52- objectManager .getCoverageReportParser (),
53- objectManager .getDiffParser (),
48+ this (objectManager .getCoverageReportParser (),
49+ objectManager .getDiffReader (),
5450 objectManager .getNewCoverageParser (),
5551 objectManager .getReporter ());
5652 }
5753
5854 public boolean check (Parameter param ) {
5955 try {
60- RawDiffReader diffReader = createDiffReader (param );
61-
6256 log .info ("Check new line of code coverage by {}" , coverageParser .getClass ().getSimpleName ());
6357 CompletableFuture <List <FileCoverageReport >> coverage = param .getCoveragePath ().stream ()
6458 .map (s -> executeByBackground ((Function <String , List <FileCoverageReport >>) coverageParser ::parse ).apply (s ))
6559 .reduce ((f1 , f2 ) -> f1 .thenCombine (f2 , (r1 , r2 ) -> Stream .concat (r1 .stream (), r2 .stream ()).collect (Collectors .toList ())))
6660 .orElseThrow (() -> new IllegalStateException ("No Coverage Report" ));
6761
68- log .info ("read diff by {}" , diffReader .getClass ().getSimpleName ());
62+ log .info ("read diff by {}" , diffParser .getClass ().getSimpleName ());
6963 CompletableFuture <List <Diff >> diff = executeByBackground (diffParser ::parse )
70- .apply ( diffReader )
64+ .get ( )
7165 .thenApplyAsync (s -> s .collect (Collectors .toList ()));
7266
7367 NewCoverageCheckReport check = checker .check (coverage .join (), diff .join (), param .getThreshold (), param .getFileThreshold ());
@@ -89,12 +83,8 @@ private <P, R> Function<P, CompletableFuture<R>> executeByBackground(Function<P,
8983 return (P param ) -> CompletableFuture .supplyAsync (() -> execute .apply (param ));
9084 }
9185
92- RawDiffReader createDiffReader (Parameter param ) {
93- if ("file" .equals (param .getDiffType ())) {
94- return new FileRawDiffReader (param .getDiffPath ());
95- } else {
96- return new GithubRawDiffReader (prManager );
97- }
86+ private <R > Supplier <CompletableFuture <R >> executeByBackground (Supplier <R > execute ) {
87+ return () -> CompletableFuture .supplyAsync (execute );
9888 }
9989
10090 public static void main (String [] args ) {
0 commit comments