Skip to content

Commit 7de644b

Browse files
committed
Add Test Case for PropertyPrefixSupport And PropertySuffixSupport
1 parent 05a3838 commit 7de644b

File tree

4 files changed

+93
-0
lines changed

4 files changed

+93
-0
lines changed

src/main/kotlin/extensions/Extension.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,19 @@ abstract class Extension : IImportClassDeclarationInterceptor, IKotlinDataClassI
4444
return originImportClasses
4545
}
4646

47+
fun getTestHelper() = TestHelper(this)
48+
49+
/**
50+
* Test helper for test config settings
51+
*/
52+
class TestHelper(private val extension: Extension) {
53+
54+
fun setConfig(key: String, value: String) {
55+
extension.setConfig(key,value)
56+
}
57+
58+
fun getConfig(key: String): String {
59+
return getConfig(key)
60+
}
61+
}
4762
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package extensions.wu.seal
2+
3+
import com.winterbe.expekt.should
4+
import org.junit.Before
5+
import org.junit.Test
6+
import wu.seal.jsontokotlin.generateKotlinDataClasses
7+
import wu.seal.jsontokotlin.test.TestConfig
8+
9+
class PropertyPrefixSupportTest {
10+
val json = """{"a":1}"""
11+
12+
13+
val expectResult = """data class Test(
14+
@SerializedName("a")
15+
val sealA: Int = 0 // 1
16+
)"""
17+
18+
@Before
19+
fun setUp() {
20+
TestConfig.setToTestInitState()
21+
}
22+
23+
@Test
24+
fun interceptTest() {
25+
val kotlinDataClass =
26+
json.generateKotlinDataClasses()
27+
PropertyPrefixSupport.getTestHelper().setConfig("wu.seal.property_prefix_enable","true")
28+
PropertyPrefixSupport.getTestHelper().setConfig("wu.seal.property_prefix","seal")
29+
val generatedCode = kotlinDataClass.applyInterceptors(listOf(PropertyPrefixSupport)).getCode()
30+
31+
generatedCode.trimMargin().should.equal(expectResult.trimMargin())
32+
}
33+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package extensions.wu.seal
2+
3+
import com.winterbe.expekt.should
4+
import org.junit.Before
5+
import org.junit.Test
6+
import wu.seal.jsontokotlin.generateKotlinDataClasses
7+
import wu.seal.jsontokotlin.test.TestConfig
8+
9+
class PropertySuffixSupportTest {
10+
11+
val json = """{"a":1}"""
12+
13+
14+
val expectResult = """data class Test(
15+
@SerializedName("a")
16+
val aWu: Int = 0 // 1
17+
)"""
18+
19+
@Before
20+
fun setUp() {
21+
TestConfig.setToTestInitState()
22+
}
23+
24+
@Test
25+
fun interceptTest() {
26+
val kotlinDataClass =
27+
json.generateKotlinDataClasses()
28+
PropertySuffixSupport.getTestHelper().setConfig("wu.seal.property_suffix_enable","true")
29+
PropertySuffixSupport.getTestHelper().setConfig("wu.seal.property_suffix","wu")
30+
val generatedCode = kotlinDataClass.applyInterceptors(listOf(PropertySuffixSupport)).getCode()
31+
32+
generatedCode.trimMargin().should.equal(expectResult.trimMargin())
33+
}
34+
35+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package wu.seal.jsontokotlin
2+
3+
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
4+
import wu.seal.jsontokotlin.utils.classblockparse.ClassCodeParser
5+
6+
/**
7+
* Generate kotlin data classes with root name 'Test'
8+
*/
9+
fun String.generateKotlinDataClasses() =
10+
KotlinDataClass.fromParsedKotlinDataClass(ClassCodeParser(KotlinCodeMaker("Test", this).makeKotlinData()).getKotlinDataClass())

0 commit comments

Comments
 (0)