forked from detekt/detekt
/
SignaturesSpec.kt
47 lines (39 loc) · 1.53 KB
/
SignaturesSpec.kt
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
38
39
40
41
42
43
44
45
46
47
package io.gitlab.arturbosch.detekt.api.internal
import io.github.detekt.test.utils.compileContentForTest
import org.assertj.core.api.Assertions.assertThat
import org.assertj.core.api.Assertions.assertThatThrownBy
import org.jetbrains.kotlin.psi.KtNamedFunction
import org.junit.jupiter.api.Test
class SignaturesSpec {
@Test
fun `function with type reference`() {
val result = compileContentForTest("fun data(): Int = 0")
.findChildByClass(KtNamedFunction::class.java)!!
.buildFullSignature()
assertThat(result).isEqualTo("Test.kt\$fun data(): Int")
}
@Test
fun `function without type reference`() {
val result = compileContentForTest("fun data() = 0")
.findChildByClass(KtNamedFunction::class.java)!!
.buildFullSignature()
assertThat(result).isEqualTo("Test.kt\$fun data()")
}
@Test
fun `function with comments`() {
val result = compileContentForTest("/* comments */ fun data() = 0")
.findChildByClass(KtNamedFunction::class.java)!!
.buildFullSignature()
assertThat(result).isEqualTo("Test.kt\$fun data()")
}
@Test
fun `function throws exception`() {
assertThatThrownBy {
compileContentForTest("{ fun data() = 0 }")
.findChildByClass(KtNamedFunction::class.java)!!
.buildFullSignature()
}
.isInstanceOf(IllegalArgumentException::class.java)
.hasMessageContaining("Error building function signature")
}
}