1
+ package com.baeldung.constValCompilerError
2
+
3
+ import org.junit.jupiter.api.Assertions.assertEquals
4
+ import org.junit.jupiter.api.Test
5
+
6
+ const val MSG_PREFIX_TOP_LVL : String = " App User Event (top level):"
7
+
8
+ object AppConstants {
9
+ const val MSG_PREFIX : String = " App User Event (in object):"
10
+ }
11
+
12
+ data class UserEvent (val name : String ) {
13
+ // ===== code doesn't compile =====
14
+ // const val MSG_PREFIX: String = "App User Event:"
15
+ // fun login(): String {
16
+ // return "$MSG_PREFIX User [$name] login successful"
17
+ // }
18
+ // ================================
19
+
20
+ fun loginTopLevelPrefix (): String {
21
+ return " $MSG_PREFIX_TOP_LVL User [$name ] login successful"
22
+ }
23
+
24
+ fun loginObjectPrefix (): String {
25
+ return " ${AppConstants .MSG_PREFIX } User [$name ] login successful"
26
+ }
27
+
28
+ fun loginCompanionObjPrefix (): String {
29
+ return " $MSG_PREFIX_IN_COMPANION_OBJ User [$name ] login successful"
30
+ }
31
+
32
+ companion object {
33
+ const val MSG_PREFIX_IN_COMPANION_OBJ : String = " App User Event (in Companion object):"
34
+ }
35
+ }
36
+
37
+ class ConstValCompilerErrorUnitTest {
38
+ @Test
39
+ fun `when using top level constant then correct` () {
40
+ val result = UserEvent (" Kai" ).loginTopLevelPrefix()
41
+ assertEquals(" App User Event (top level): User [Kai] login successful" , result)
42
+ }
43
+
44
+ @Test
45
+ fun `when using constant in object then correct` () {
46
+ val result = UserEvent (" Kai" ).loginObjectPrefix()
47
+ assertEquals(" App User Event (in object): User [Kai] login successful" , result)
48
+ }
49
+ @Test
50
+ fun `when using constant in companion object then correct` () {
51
+ val result = UserEvent (" Kai" ).loginCompanionObjPrefix()
52
+ assertEquals(" App User Event (in Companion object): User [Kai] login successful" , result)
53
+ }
54
+ }
0 commit comments