Skip to content

Commit

Permalink
add test unit for three new extensions
Browse files Browse the repository at this point in the history
Signed-off-by: yuanzicong <[email protected]>
  • Loading branch information
yuanzicong committed May 20, 2021
1 parent db78f88 commit 260e84a
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package extensions.yuan.varenyzc

import com.winterbe.expekt.should
import org.junit.Before
import org.junit.Test
import wu.seal.jsontokotlin.generateKotlinClassCode
import wu.seal.jsontokotlin.test.TestConfig

class BuildFromJsonObjectSupportTest {
private val json = """{"a":1,"b":"abc","c":true}"""

private val expectCode: String = """
data class Test(
@SerializedName("a")
val a: Int = 0, // 1
@SerializedName("b")
val b: String = "", // abc
@SerializedName("c")
val c: Boolean = false // true
) {
companion object {
@JvmStatic
fun buildFromJson(jsonObject: JSONObject?): Test? {
jsonObject?.run {
return Test(
optInt("a"),
optString("b"),
optBoolean("c")
)
}
return null
}
}
}
""".trimIndent()

@Before
fun setUp() {
TestConfig.setToTestInitState()
}

@Test
fun intercept() {
BuildFromJsonObjectSupport.getTestHelper().setConfig(BuildFromJsonObjectSupport.configKey, true.toString())
print(json.generateKotlinClassCode())
json.generateKotlinClassCode().should.be.equal(expectCode)
BuildFromJsonObjectSupport.getTestHelper().setConfig(BuildFromJsonObjectSupport.configKey, false.toString())
json.generateKotlinClassCode()
}
}
32 changes: 32 additions & 0 deletions src/test/kotlin/extensions/yuan/varenyzc/CamelCaseSupportTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package extensions.yuan.varenyzc

import com.winterbe.expekt.should
import org.junit.Before
import org.junit.Test
import wu.seal.jsontokotlin.generateKotlinClass
import wu.seal.jsontokotlin.generateKotlinClassCode
import wu.seal.jsontokotlin.test.TestConfig

class CamelCaseSupportTest {
private val json = """{"data_a":1,"data_b":"123","data_c":true}"""
private val expertCode: String = """
data class Test(
val dataA: Int, // 1
val dataB: String, // 123
val dataC: Boolean // true
)
""".trimIndent()

@Before
fun setUp() {
TestConfig.setToTestInitState()
}

@Test
fun intercept() {
val kotlinDataClass = json.generateKotlinClass()
CamelCaseSupport.getTestHelper().setConfig(CamelCaseSupport.configKey, true.toString())
val generatedCode = kotlinDataClass.applyInterceptor(CamelCaseSupport).getCode()
generatedCode.trimMargin().should.be.equal(expertCode.trimMargin())
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package extensions.yuan.varenyzc

import com.winterbe.expekt.should
import extensions.nstd.ReplaceConstructorParametersByMemberVariablesSupport
import org.junit.Before
import org.junit.Test
import wu.seal.jsontokotlin.generateKotlinClass
import wu.seal.jsontokotlin.generateKotlinClassCode
import wu.seal.jsontokotlin.test.TestConfig

class NeedNonNullableClassesSupportTest {
private val json = """{"a":1,"b":"abc","c":true}"""
private val expectCode: String = """
data class Test(
val a: Int, // 1
val b: String?, // abc
val c: Boolean // true
)
""".trimIndent()

private val nonNullableClasses = "Int,Boolean"

@Before
fun setUp() {
TestConfig.setToTestInitState()
}

@Test
fun intercept() {
val kotlinDataClass = json.generateKotlinClass()
NeedNonNullableClassesSupport.getTestHelper()
.setConfig(NeedNonNullableClassesSupport.prefixKeyEnable, true.toString())
NeedNonNullableClassesSupport.getTestHelper()
.setConfig(NeedNonNullableClassesSupport.prefixKey, nonNullableClasses)
val generatedCode = kotlinDataClass.applyInterceptors(listOf(NeedNonNullableClassesSupport)).getCode()
generatedCode.trimMargin().should.equal(expectCode.trimMargin())
}
}

0 comments on commit 260e84a

Please sign in to comment.