diff --git a/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityMetric.kt b/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityMetric.kt index c81750ce5..431e715e7 100644 --- a/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityMetric.kt +++ b/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityMetric.kt @@ -1,11 +1,11 @@ package io.gitlab.arturbosch.detekt.cli.console import io.gitlab.arturbosch.detekt.api.Detektion -import io.gitlab.arturbosch.detekt.core.processors.commentLinesKey -import io.gitlab.arturbosch.detekt.core.processors.complexityKey -import io.gitlab.arturbosch.detekt.core.processors.linesKey -import io.gitlab.arturbosch.detekt.core.processors.logicalLinesKey -import io.gitlab.arturbosch.detekt.core.processors.sourceLinesKey +import io.github.detekt.metrics.processors.commentLinesKey +import io.github.detekt.metrics.processors.complexityKey +import io.github.detekt.metrics.processors.linesKey +import io.github.detekt.metrics.processors.logicalLinesKey +import io.github.detekt.metrics.processors.sourceLinesKey class ComplexityMetric(detektion: Detektion) { diff --git a/detekt-cli/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.FileProcessListener b/detekt-cli/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.FileProcessListener index d0ede32a1..73e9e3e28 100644 --- a/detekt-cli/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.FileProcessListener +++ b/detekt-cli/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.FileProcessListener @@ -1,12 +1,12 @@ io.gitlab.arturbosch.detekt.cli.DetektProgressListener -io.gitlab.arturbosch.detekt.core.processors.KtFileCountProcessor -io.gitlab.arturbosch.detekt.core.processors.PackageCountProcessor -io.gitlab.arturbosch.detekt.core.processors.ClassCountProcessor -io.gitlab.arturbosch.detekt.core.processors.FunctionCountProcessor -io.gitlab.arturbosch.detekt.core.processors.PropertyCountProcessor -io.gitlab.arturbosch.detekt.core.processors.ProjectComplexityProcessor -io.gitlab.arturbosch.detekt.core.processors.ProjectLLOCProcessor -io.gitlab.arturbosch.detekt.core.processors.ProjectCLOCProcessor -io.gitlab.arturbosch.detekt.core.processors.ProjectLOCProcessor -io.gitlab.arturbosch.detekt.core.processors.ProjectSLOCProcessor +io.github.detekt.metrics.processors.KtFileCountProcessor +io.github.detekt.metrics.processors.PackageCountProcessor +io.github.detekt.metrics.processors.ClassCountProcessor +io.github.detekt.metrics.processors.FunctionCountProcessor +io.github.detekt.metrics.processors.PropertyCountProcessor +io.github.detekt.metrics.processors.ProjectComplexityProcessor +io.github.detekt.metrics.processors.ProjectLLOCProcessor +io.github.detekt.metrics.processors.ProjectCLOCProcessor +io.github.detekt.metrics.processors.ProjectLOCProcessor +io.github.detekt.metrics.processors.ProjectSLOCProcessor io.gitlab.arturbosch.detekt.rules.documentation.LicenceHeaderLoaderExtension diff --git a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/FileProcessorLocatorSpec.kt b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/FileProcessorLocatorSpec.kt index 9c755c496..84e683300 100644 --- a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/FileProcessorLocatorSpec.kt +++ b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/FileProcessorLocatorSpec.kt @@ -41,7 +41,7 @@ class FileProcessorLocatorSpec : Spek({ }) private fun getProcessorClasses(): List> { - return Reflections("io.gitlab.arturbosch.detekt.core.processors") + return Reflections("io.github.detekt.metrics.processors") .getSubTypesOf(FileProcessListener::class.java) .filter { !Modifier.isAbstract(it.modifiers) } } diff --git a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportGeneratorSpec.kt b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportGeneratorSpec.kt index 8e17f1cb0..85fdda45b 100644 --- a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportGeneratorSpec.kt +++ b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportGeneratorSpec.kt @@ -2,11 +2,11 @@ package io.gitlab.arturbosch.detekt.cli.console import io.gitlab.arturbosch.detekt.api.Detektion import io.gitlab.arturbosch.detekt.cli.createFinding -import io.gitlab.arturbosch.detekt.core.processors.commentLinesKey -import io.gitlab.arturbosch.detekt.core.processors.complexityKey -import io.gitlab.arturbosch.detekt.core.processors.linesKey -import io.gitlab.arturbosch.detekt.core.processors.logicalLinesKey -import io.gitlab.arturbosch.detekt.core.processors.sourceLinesKey +import io.github.detekt.metrics.processors.commentLinesKey +import io.github.detekt.metrics.processors.complexityKey +import io.github.detekt.metrics.processors.linesKey +import io.github.detekt.metrics.processors.logicalLinesKey +import io.github.detekt.metrics.processors.sourceLinesKey import io.gitlab.arturbosch.detekt.test.TestDetektion import org.assertj.core.api.Assertions.assertThat import org.spekframework.spek2.Spek diff --git a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportSpec.kt b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportSpec.kt index a1a9b52a5..2812b692d 100644 --- a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportSpec.kt +++ b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/console/ComplexityReportSpec.kt @@ -3,11 +3,11 @@ package io.gitlab.arturbosch.detekt.cli.console import io.gitlab.arturbosch.detekt.api.Detektion import io.gitlab.arturbosch.detekt.cli.createFinding import io.gitlab.arturbosch.detekt.core.DetektResult -import io.gitlab.arturbosch.detekt.core.processors.commentLinesKey -import io.gitlab.arturbosch.detekt.core.processors.complexityKey -import io.gitlab.arturbosch.detekt.core.processors.linesKey -import io.gitlab.arturbosch.detekt.core.processors.logicalLinesKey -import io.gitlab.arturbosch.detekt.core.processors.sourceLinesKey +import io.github.detekt.metrics.processors.commentLinesKey +import io.github.detekt.metrics.processors.complexityKey +import io.github.detekt.metrics.processors.linesKey +import io.github.detekt.metrics.processors.logicalLinesKey +import io.github.detekt.metrics.processors.sourceLinesKey import org.assertj.core.api.Assertions.assertThat import org.spekframework.spek2.Spek import org.spekframework.spek2.style.specification.describe diff --git a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/out/HtmlOutputReportSpec.kt b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/out/HtmlOutputReportSpec.kt index 07afbcfae..92831bdd5 100644 --- a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/out/HtmlOutputReportSpec.kt +++ b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/out/HtmlOutputReportSpec.kt @@ -6,11 +6,11 @@ import io.gitlab.arturbosch.detekt.api.ProjectMetric import io.gitlab.arturbosch.detekt.cli.createEntity import io.gitlab.arturbosch.detekt.cli.createFinding import io.gitlab.arturbosch.detekt.cli.createIssue -import io.gitlab.arturbosch.detekt.core.processors.commentLinesKey -import io.gitlab.arturbosch.detekt.core.processors.complexityKey -import io.gitlab.arturbosch.detekt.core.processors.linesKey -import io.gitlab.arturbosch.detekt.core.processors.logicalLinesKey -import io.gitlab.arturbosch.detekt.core.processors.sourceLinesKey +import io.github.detekt.metrics.processors.commentLinesKey +import io.github.detekt.metrics.processors.complexityKey +import io.github.detekt.metrics.processors.linesKey +import io.github.detekt.metrics.processors.logicalLinesKey +import io.github.detekt.metrics.processors.sourceLinesKey import io.gitlab.arturbosch.detekt.core.whichDetekt import io.gitlab.arturbosch.detekt.test.TestDetektion import io.github.detekt.test.utils.createTempFileForTest diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/ComplexityVisitorTest.kt b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/ComplexityVisitorTest.kt deleted file mode 100644 index 47fd84c6d..000000000 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/ComplexityVisitorTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -package io.gitlab.arturbosch.detekt.core.processors - -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest -import org.assertj.core.api.Assertions.assertThat -import org.spekframework.spek2.Spek -import org.spekframework.spek2.style.specification.describe -import java.nio.file.Path - -class ComplexityVisitorTest : Spek({ - describe("something") { - - it("complexityOfDefaultCaseIsOne") { - val path = path.resolve("Default.kt") - - val mcc = calcComplexity(path) - - assertThat(mcc).isEqualTo(0) - } - - it("complexityOfComplexAndNestedClass") { - val path = path.resolve("ComplexClass.kt") - - val mcc = calcComplexity(path) - - assertThat(mcc).isEqualTo(44) - } - } -}) - -private fun calcComplexity(path: Path) = with(compileForTest(path)) { - accept(ComplexityVisitor()) - getUserData(complexityKey) -} diff --git a/detekt-core/src/test/resources/comments/CommentsClass.kt b/detekt-core/src/test/resources/comments/CommentsClass.kt deleted file mode 100644 index 7b8fcaa88..000000000 --- a/detekt-core/src/test/resources/comments/CommentsClass.kt +++ /dev/null @@ -1,22 +0,0 @@ -package comments - -@Suppress("Unused") -class CommentsClass { - - /** - * Doc comment - * - * @param args - */ - fun x(args: String) { // comment total: 10 - /* - comment - */ - //Comment - - println(args) - - println("/* no comment */") - println("// no comment //") - } -} diff --git a/detekt-core/src/test/resources/empty/EmptyEnum.kt b/detekt-core/src/test/resources/empty/EmptyEnum.kt deleted file mode 100644 index e2565fbc3..000000000 --- a/detekt-core/src/test/resources/empty/EmptyEnum.kt +++ /dev/null @@ -1,4 +0,0 @@ -package empty - -@Suppress("Unused") -enum class EmptyEnum diff --git a/detekt-core/src/test/resources/empty/EmptyInterface.kt b/detekt-core/src/test/resources/empty/EmptyInterface.kt deleted file mode 100644 index f847f6b99..000000000 --- a/detekt-core/src/test/resources/empty/EmptyInterface.kt +++ /dev/null @@ -1,4 +0,0 @@ -package empty - -@Suppress("Unused") -interface EmptyInterface diff --git a/detekt-core/src/test/resources/fields/ClassWithFields.kt b/detekt-core/src/test/resources/fields/ClassWithFields.kt deleted file mode 100644 index 924c5d4ab..000000000 --- a/detekt-core/src/test/resources/fields/ClassWithFields.kt +++ /dev/null @@ -1,8 +0,0 @@ -package fields - -@Suppress("unused") -class ClassWithFields { - - private var x = 0 - val y = 0 -} diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/AbstractProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/AbstractProcessor.kt similarity index 93% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/AbstractProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/AbstractProcessor.kt index 46c10e8e6..641c146c1 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/AbstractProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/AbstractProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor import io.gitlab.arturbosch.detekt.api.Detektion diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/AbstractProjectMetricProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/AbstractProjectMetricProcessor.kt similarity index 90% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/AbstractProjectMetricProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/AbstractProjectMetricProcessor.kt index feeaac8e6..d1164e973 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/AbstractProjectMetricProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/AbstractProjectMetricProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.Detektion import io.gitlab.arturbosch.detekt.api.ProjectMetric diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ClassCountProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ClassCountProcessor.kt similarity index 83% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ClassCountProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ClassCountProcessor.kt index 250dbb0c5..0353af238 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ClassCountProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ClassCountProcessor.kt @@ -1,7 +1,7 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor -import io.gitlab.arturbosch.detekt.core.processors.util.collectByType +import io.github.detekt.metrics.processors.util.collectByType import org.jetbrains.kotlin.com.intellij.openapi.util.Key import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtFile diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/FunctionCountProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/FunctionCountProcessor.kt similarity index 84% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/FunctionCountProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/FunctionCountProcessor.kt index 7d96be2a9..55898bb6b 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/FunctionCountProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/FunctionCountProcessor.kt @@ -1,7 +1,7 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor -import io.gitlab.arturbosch.detekt.core.processors.util.collectByType +import io.github.detekt.metrics.processors.util.collectByType import org.jetbrains.kotlin.com.intellij.openapi.util.Key import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtNamedFunction diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/KtFileCountProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/KtFileCountProcessor.kt similarity index 90% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/KtFileCountProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/KtFileCountProcessor.kt index fd516a43a..074b411e2 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/KtFileCountProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/KtFileCountProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor import org.jetbrains.kotlin.com.intellij.openapi.util.Key diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/PackageCountProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/PackageCountProcessor.kt similarity index 95% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/PackageCountProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/PackageCountProcessor.kt index 7b757d6ec..720edf489 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/PackageCountProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/PackageCountProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor import io.gitlab.arturbosch.detekt.api.Detektion diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectCLOCProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectCLOCProcessor.kt similarity index 95% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectCLOCProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectCLOCProcessor.kt index 8717d7179..cdb6f8b2e 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectCLOCProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectCLOCProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor import org.jetbrains.kotlin.com.intellij.openapi.util.Key diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectComplexityProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectComplexityProcessor.kt similarity index 92% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectComplexityProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectComplexityProcessor.kt index 46f2bd490..e25c8128e 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectComplexityProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectComplexityProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.github.detekt.metrics.CyclomaticComplexity import io.gitlab.arturbosch.detekt.api.DetektVisitor diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectLLOCProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectLLOCProcessor.kt similarity index 82% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectLLOCProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectLLOCProcessor.kt index 794088252..1bf624867 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectLLOCProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectLLOCProcessor.kt @@ -1,7 +1,7 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor -import io.gitlab.arturbosch.detekt.core.processors.util.LLOC +import io.github.detekt.metrics.processors.util.LLOC import org.jetbrains.kotlin.com.intellij.openapi.util.Key import org.jetbrains.kotlin.psi.KtFile diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectLOCProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectLOCProcessor.kt similarity index 90% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectLOCProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectLOCProcessor.kt index 0b75a714c..d391f9203 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectLOCProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectLOCProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor import org.jetbrains.kotlin.com.intellij.openapi.util.Key diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectSLOCProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectSLOCProcessor.kt similarity index 94% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectSLOCProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectSLOCProcessor.kt index 1df47a387..16764ab72 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/ProjectSLOCProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/ProjectSLOCProcessor.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor import org.jetbrains.kotlin.com.intellij.openapi.util.Key diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/PropertyCountProcessor.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/PropertyCountProcessor.kt similarity index 83% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/PropertyCountProcessor.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/PropertyCountProcessor.kt index 58b9e3db6..7e03e41f7 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/PropertyCountProcessor.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/PropertyCountProcessor.kt @@ -1,7 +1,7 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors import io.gitlab.arturbosch.detekt.api.DetektVisitor -import io.gitlab.arturbosch.detekt.core.processors.util.collectByType +import io.github.detekt.metrics.processors.util.collectByType import org.jetbrains.kotlin.com.intellij.openapi.util.Key import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtProperty diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/util/Junk.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/util/Junk.kt similarity index 89% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/util/Junk.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/util/Junk.kt index bb7fe8634..541de7f7d 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/util/Junk.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/util/Junk.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors.util +package io.github.detekt.metrics.processors.util import io.gitlab.arturbosch.detekt.api.DetektVisitor import org.jetbrains.kotlin.psi.KtElement diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/util/LLOC.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/util/LLOC.kt similarity index 98% rename from detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/util/LLOC.kt rename to detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/util/LLOC.kt index 064568ee4..17b5378c9 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/processors/util/LLOC.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/processors/util/LLOC.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.core.processors.util +package io.github.detekt.metrics.processors.util object LLOC { diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/CLOCVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/CLOCVisitorTest.kt similarity index 65% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/CLOCVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/CLOCVisitorTest.kt index 7d62994e9..71f06d729 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/CLOCVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/CLOCVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.spekframework.spek2.Spek import org.spekframework.spek2.style.specification.describe @@ -10,7 +9,7 @@ class CLOCVisitorTest : Spek({ describe("CLOC") { it("commentCases") { - val file = compileForTest(path.resolve("../comments/CommentsClass.kt")) + val file = compileContentForTest(commentsClass) val commentLines = with(file) { accept(CLOCVisitor()) getUserData(commentLinesKey) diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/ClassCountVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/ClassCountVisitorTest.kt similarity index 60% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/ClassCountVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/ClassCountVisitorTest.kt index 6b92a3b3e..4a4e90ac9 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/ClassCountVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/ClassCountVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.jetbrains.kotlin.psi.KtFile import org.spekframework.spek2.Spek @@ -12,23 +11,23 @@ class ClassCountVisitorTest : Spek({ it("twoClassesInSeparateFile") { val files = arrayOf( - compileForTest(path.resolve("Test.kt")), - compileForTest(path.resolve("Default.kt")) + compileContentForTest(default), + compileContentForTest(classWithFields) ) val count = getClassCount(files) assertThat(count).isEqualTo(2) } it("oneClassWithOneNestedClass") { - val file = compileForTest(path.resolve("ComplexClass.kt")) + val file = compileContentForTest(complexClass) val count = getClassCount(arrayOf(file)) assertThat(count).isEqualTo(2) } it("testEnumAndInterface") { val files = arrayOf( - compileForTest(path.resolve("../empty/EmptyEnum.kt")), - compileForTest(path.resolve("../empty/EmptyInterface.kt")) + compileContentForTest(emptyEnum), + compileContentForTest(emptyInterface) ) val count = getClassCount(files) assertThat(count).isEqualTo(2) @@ -38,14 +37,13 @@ class ClassCountVisitorTest : Spek({ private fun getClassCount(files: Array): Int { return files - .map { getData(it) } - .sum() + .map { getData(it) } + .sum() } private fun getData(file: KtFile): Int { return with(file) { accept(ClassCountVisitor()) - @Suppress("UnsafeCallOnNullableType") - getUserData(numberOfClassesKey)!! + checkNotNull(getUserData(numberOfClassesKey)) } } diff --git a/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/ComplexityVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/ComplexityVisitorTest.kt new file mode 100644 index 000000000..5b7ca74e2 --- /dev/null +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/ComplexityVisitorTest.kt @@ -0,0 +1,29 @@ +package io.github.detekt.metrics.processors + +import io.github.detekt.test.utils.compileContentForTest +import org.assertj.core.api.Assertions.assertThat +import org.spekframework.spek2.Spek +import org.spekframework.spek2.style.specification.describe + +class ComplexityVisitorTest : Spek({ + describe("something") { + + it("complexityOfDefaultCaseIsOne") { + val mcc = calcComplexity(default) + + assertThat(mcc).isEqualTo(0) + } + + it("complexityOfComplexAndNestedClass") { + val mcc = calcComplexity(complexClass) + + assertThat(mcc).isEqualTo(44) + } + } +}) + +private fun calcComplexity(content: String) = + with(compileContentForTest(content)) { + accept(ComplexityVisitor()) + getUserData(complexityKey) + } diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/FieldCountVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/FieldCountVisitorTest.kt similarity index 66% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/FieldCountVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/FieldCountVisitorTest.kt index b2860e2e6..78978a8d9 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/FieldCountVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/FieldCountVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.spekframework.spek2.Spek import org.spekframework.spek2.style.specification.describe @@ -10,7 +9,7 @@ class FieldCountVisitorTest : Spek({ describe("something") { it("defaultFieldCount") { - val file = compileForTest(path.resolve("../fields/ClassWithFields.kt")) + val file = compileContentForTest(classWithFields) val count = with(file) { accept(PropertyCountVisitor()) getUserData(numberOfFieldsKey) diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/KtFileCountVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/KtFileCountVisitorTest.kt similarity index 55% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/KtFileCountVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/KtFileCountVisitorTest.kt index 0d1792619..a20e77f05 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/KtFileCountVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/KtFileCountVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.jetbrains.kotlin.psi.KtFile import org.spekframework.spek2.Spek @@ -12,12 +11,12 @@ class KtFileCountVisitorTest : Spek({ it("twoFiles") { val files = arrayOf( - compileForTest(path.resolve("Default.kt")), - compileForTest(path.resolve("Test.kt")) + compileContentForTest(default), + compileContentForTest(complexClass) ) val count = files - .map { getData(it) } - .sum() + .map { getData(it) } + .sum() assertThat(count).isEqualTo(2) } } @@ -26,7 +25,6 @@ class KtFileCountVisitorTest : Spek({ private fun getData(file: KtFile): Int { return with(file) { accept(KtFileCountVisitor()) - @Suppress("UnsafeCallOnNullableType") - getUserData(numberOfFilesKey)!! + checkNotNull(getUserData(numberOfFilesKey)) } } diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/LLOCVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/LLOCVisitorTest.kt similarity index 67% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/LLOCVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/LLOCVisitorTest.kt index 08fdd670c..ad97abf45 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/LLOCVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/LLOCVisitorTest.kt @@ -1,16 +1,15 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.spekframework.spek2.Spek import org.spekframework.spek2.style.specification.describe class LLOCVisitorTest : Spek({ - describe("seomthing") { + describe("LLOC Visitor") { it("defaultCaseHasOneClassAndAnnotationLine") { - val file = compileForTest(path.resolve("Default.kt")) + val file = compileContentForTest(default) val lloc = with(file) { accept(LLOCVisitor()) @@ -21,7 +20,7 @@ class LLOCVisitorTest : Spek({ } it("llocOfComplexClass") { - val file = compileForTest(path.resolve("ComplexClass.kt")) + val file = compileContentForTest(complexClass) val lloc = with(file) { accept(LLOCVisitor()) diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/LOCVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/LOCVisitorTest.kt similarity index 66% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/LOCVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/LOCVisitorTest.kt index 2429c6554..1f681e5df 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/LOCVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/LOCVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.spekframework.spek2.Spek import org.spekframework.spek2.style.specification.describe @@ -10,7 +9,7 @@ class LOCVisitorTest : Spek({ describe("LOC Visitor") { it("defaultClass") { - val file = compileForTest(path.resolve("Default.kt")) + val file = compileContentForTest(default) val loc = with(file) { accept(LOCVisitor()) getUserData(linesKey) diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/MethodCountVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/MethodCountVisitorTest.kt similarity index 63% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/MethodCountVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/MethodCountVisitorTest.kt index 079af9ee6..c1f5d6e03 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/MethodCountVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/MethodCountVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.jetbrains.kotlin.psi.KtFile import org.spekframework.spek2.Spek @@ -11,7 +10,7 @@ class MethodCountVisitorTest : Spek({ describe("Method Count Visitor") { it("defaultMethodCount") { - val file = compileForTest(path.resolve("ComplexClass.kt")) + val file = compileContentForTest(complexClass) val count = getMethodCount(file) assertThat(count).isEqualTo(6) } @@ -21,7 +20,6 @@ class MethodCountVisitorTest : Spek({ private fun getMethodCount(file: KtFile): Int { return with(file) { accept(FunctionCountVisitor()) - @Suppress("UnsafeCallOnNullableType") - getUserData(numberOfFunctionsKey)!! + checkNotNull(getUserData(numberOfFunctionsKey)) } } diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/PackageCountVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/PackageCountVisitorTest.kt similarity index 54% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/PackageCountVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/PackageCountVisitorTest.kt index 661b6b533..578373a2e 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/PackageCountVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/PackageCountVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.jetbrains.kotlin.psi.KtFile import org.spekframework.spek2.Spek @@ -12,13 +11,13 @@ class PackageCountVisitorTest : Spek({ it("twoClassesInSeparatePackage") { val files = arrayOf( - compileForTest(path.resolve("Default.kt")), - compileForTest(path.resolve("../empty/EmptyEnum.kt")) + compileContentForTest(default), + compileContentForTest(emptyEnum) ) val count = files - .map { getData(it) } - .distinct() - .count() + .map { getData(it) } + .distinct() + .count() assertThat(count).isEqualTo(2) } } @@ -27,7 +26,6 @@ class PackageCountVisitorTest : Spek({ private fun getData(file: KtFile): String { return with(file) { accept(PackageCountVisitor()) - @Suppress("UnsafeCallOnNullableType") - getUserData(numberOfPackagesKey)!! + checkNotNull(getUserData(numberOfPackagesKey)) } } diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/SLOCVisitorTest.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/SLOCVisitorTest.kt similarity index 66% rename from detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/SLOCVisitorTest.kt rename to detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/SLOCVisitorTest.kt index d3bd0f499..9a3672668 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/processors/SLOCVisitorTest.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/SLOCVisitorTest.kt @@ -1,7 +1,6 @@ -package io.gitlab.arturbosch.detekt.core.processors +package io.github.detekt.metrics.processors -import io.gitlab.arturbosch.detekt.core.path -import io.github.detekt.test.utils.compileForTest +import io.github.detekt.test.utils.compileContentForTest import org.assertj.core.api.Assertions.assertThat import org.spekframework.spek2.Spek import org.spekframework.spek2.style.specification.describe @@ -10,7 +9,7 @@ class SLOCVisitorTest : Spek({ describe("SLOC Visitor") { it("defaultClass") { - val file = compileForTest(path.resolve("Default.kt")) + val file = compileContentForTest(default) val loc = with(file) { accept(SLOCVisitor()) getUserData(sourceLinesKey) diff --git a/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/package.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/package.kt new file mode 100644 index 000000000..4ed90eb31 --- /dev/null +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/processors/package.kt @@ -0,0 +1,209 @@ +package io.github.detekt.metrics.processors + +val default = """ +package cases + +/** + * A comment + */ +@Suppress("Unused") +class Default +""".trimStart() + +val emptyEnum = """ +package empty + +@Suppress("Unused") +enum class EmptyEnum +""".trimStart() + +val emptyInterface = """ +package empty + +@Suppress("Unused") +interface EmptyInterface +""".trimStart() + +val classWithFields = """ +package fields + +@Suppress("unused") +class ClassWithFields { + + private var x = 0 + val y = 0 +} +""".trimStart() + +val commentsClass = """ +package comments + +@Suppress("Unused") +class CommentsClass { + + /** + * Doc comment + * + * @param args + */ + fun x(args: String) { // comment total: 10 + /* + comment + */ + //Comment + + println(args) + + println("/* no comment */") + println("// no comment //") + } +} +""".trimStart() + +val complexClass = """ +package cases + +import org.jetbrains.kotlin.utils.sure + +@Suppress("unused") +class ComplexClass {// McCabe: 44, LLOC: 20 + 20 + 4x4 + + class NestedClass { //14 + fun complex() { //1 + + try {//4 + while (true) { + if (true) { + when ("string") { + "" -> println() + else -> println() + } + } + } + } catch (ex: Exception) { //1 + 3 + try { + println() + } catch (ex: Exception) { + while (true) { + if (false) { + println() + } else { + println() + } + } + } + } finally { // 3 + try { + println() + } catch (ex: Exception) { + while (true) { + if (false) { + println() + } else { + println() + } + } + } + } + (1..10).forEach { + //1 + println() + } + for (i in 1..10) { //1 + println() + } + } + } + + fun complex() { //1 + + try {//4 + while (true) { + if (true) { + when ("string") { + "" -> println() + else -> println() + } + } + } + } catch (ex: Exception) { //1 + 3 + try { + println() + } catch (ex: Exception) { + while (true) { + if (false) { + println() + } else { + println() + } + } + } + } finally { // 3 + try { + println() + } catch (ex: Exception) { + while (true) { + if (false) { + println() + } else { + println() + } + } + } + } + (1..10).forEach { + //1 + println() + } + for (i in 1..10) { //1 + println() + } + } + + fun manyClosures() {//4 + true.let { + true.apply { + true.run { + true.sure { + "" + } + } + } + } + } + + fun manyClosures2() {//4 + true.let { + true.apply { + true.run { + true.sure { + "" + } + } + } + } + } + + fun manyClosures3() {//4 + true.let { + true.apply { + true.run { + true.sure { + "" + } + } + } + } + } + + fun manyClosures4() {//4 + true.let { + true.apply { + true.run { + true.sure { + "" + } + } + } + } + } +} +""".trimStart()