Skip to content

Commit

Permalink
Improve messages
Browse files Browse the repository at this point in the history
  • Loading branch information
BraisGabin committed Dec 26, 2021
1 parent cc718a7 commit a386e35
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
Expand Up @@ -77,6 +77,8 @@ class UnnecessaryAbstractClass(config: Config = Config.empty) : Rule(config) {
if (namedMembers.isNotEmpty()) {
NamedClassMembers(klass, namedMembers)
.detectAbstractAndConcreteType()
} else if (!klass.hasConstructorParameter()) {
report(CodeSmell(issue, Entity.from(klass), noConcreteMember), klass)
} else {
report(CodeSmell(issue, Entity.from(klass), noAbstractMember), klass)
}
Expand Down
Expand Up @@ -22,6 +22,7 @@ class UnnecessaryAbstractClassSpec : Spek({
describe("UnnecessaryAbstractClass rule") {

context("abstract classes with no concrete members") {
val message = "An abstract class without a concrete member can be refactored to an interface."

it("reports an abstract class with no concrete member") {
val code = """
Expand All @@ -32,35 +33,32 @@ class UnnecessaryAbstractClassSpec : Spek({
}
"""
val findings = subject.compileAndLintWithContext(env, code)
assertFindingMessage(
findings,
"An abstract class without a concrete member can be refactored to an interface."
)
assertFindingMessage(findings, message)
}

context("reports completely-empty abstract classes") {
it("case 1") {
val code = "abstract class A"
val findings = subject.compileAndLintWithContext(env, code)
assertThat(findings).hasSize(1)
assertFindingMessage(findings, message)
}

it("case 2") {
val code = "abstract class A()"
val findings = subject.compileAndLintWithContext(env, code)
assertThat(findings).hasSize(1)
assertFindingMessage(findings, message)
}

it("case 3") {
val code = "abstract class A {}"
val findings = subject.compileAndLintWithContext(env, code)
assertThat(findings).hasSize(1)
assertFindingMessage(findings, message)
}

it("case 4") {
val code = "abstract class A() {}"
val findings = subject.compileAndLintWithContext(env, code)
assertThat(findings).hasSize(1)
assertFindingMessage(findings, message)
}

it("that inherits from an interface") {
Expand All @@ -71,7 +69,7 @@ class UnnecessaryAbstractClassSpec : Spek({
abstract class B : A
""".trimIndent()
val findings = subject.compileAndLintWithContext(env, code)
assertThat(findings).hasSize(1)
assertFindingMessage(findings, message)
}

it("that inherits from another abstract class") {
Expand All @@ -83,7 +81,7 @@ class UnnecessaryAbstractClassSpec : Spek({
abstract class B : A()
""".trimIndent()
val findings = subject.compileAndLintWithContext(env, code)
assertThat(findings).hasSize(1)
assertFindingMessage(findings, message)
}
}

Expand Down

0 comments on commit a386e35

Please sign in to comment.