This repository has been archived by the owner on Feb 10, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
codecoveragefactory.ts
37 lines (33 loc) · 1.68 KB
/
codecoveragefactory.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import {ICodeCoverageEnabler} from "./codecoverageenabler";
import {JacocoAntCodeCoverageEnabler} from "./jacoco/jacoco.ant.ccenabler";
import {JacocoGradleCodeCoverageEnabler} from "./jacoco/jacoco.gradle.ccenabler";
import {JacocoMavenCodeCoverageEnabler} from "./jacoco/jacoco.maven.ccenabler";
import {CoberturaAntCodeCoverageEnabler} from "./cobertura/cobertura.ant.ccenabler";
import {CoberturaMavenCodeCoverageEnabler} from "./cobertura/cobertura.maven.ccenabler";
import {CoberturaGradleCodeCoverageEnabler} from "./cobertura/cobertura.gradle.ccenabler";
export interface ICodeCoverageEnablerFactory {
getTool(buildTool: string, ccTool: string): ICodeCoverageEnabler;
}
export class CodeCoverageEnablerFactory implements ICodeCoverageEnablerFactory {
public getTool(buildTool: string, ccTool: string): ICodeCoverageEnabler {
if (!buildTool || !ccTool) {
throw new Error("Invalid build tool/code coverage tool");
}
switch (buildTool.toLowerCase() + "-" + ccTool.toLowerCase()) {
case "ant-jacoco":
return new JacocoAntCodeCoverageEnabler();
case "ant-cobertura":
return new CoberturaAntCodeCoverageEnabler();
case "maven-jacoco":
return new JacocoMavenCodeCoverageEnabler();
case "maven-cobertura":
return new CoberturaMavenCodeCoverageEnabler();
case "gradle-jacoco":
return new JacocoGradleCodeCoverageEnabler();
case "gradle-cobertura":
return new CoberturaGradleCodeCoverageEnabler();
default:
throw new Error("Invalid build tool/code coverage tool");
}
}
}