Skip to content
This repository was archived by the owner on Jan 20, 2023. It is now read-only.

Commit e19c99b

Browse files
authored
Merge pull request #38 from k163377/dummy_constructors
Add dummy constructors.
2 parents 56c4b07 + 7f48e5d commit e19c99b

File tree

3 files changed

+40
-9
lines changed

3 files changed

+40
-9
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
@file:Suppress("FunctionName")
2+
3+
package com.mapk.kmapper
4+
5+
import com.mapk.kmapper.BoundKMapper as Bound
6+
import com.mapk.kmapper.KMapper as Normal
7+
import com.mapk.kmapper.PlainKMapper as Plain
8+
import kotlin.reflect.KFunction
9+
10+
inline fun <reified S : Any, reified D : Any> BoundKMapper(): Bound<S, D> = Bound(D::class, S::class)
11+
12+
inline fun <reified S : Any, reified D : Any> BoundKMapper(
13+
noinline parameterNameConverter: ((String) -> String)
14+
): Bound<S, D> = Bound(D::class, S::class, parameterNameConverter)
15+
16+
inline fun <reified S : Any, D : Any> BoundKMapper(function: KFunction<D>): Bound<S, D> = Bound(function, S::class)
17+
18+
inline fun <reified S : Any, D : Any> BoundKMapper(
19+
function: KFunction<D>,
20+
noinline parameterNameConverter: ((String) -> String)
21+
): Bound<S, D> = Bound(function, S::class, parameterNameConverter)
22+
23+
inline fun <reified T : Any> KMapper(): Normal<T> = Normal(T::class)
24+
25+
inline fun <reified T : Any> KMapper(noinline parameterNameConverter: ((String) -> String)): Normal<T> =
26+
Normal(T::class, parameterNameConverter)
27+
28+
inline fun <reified T : Any> PlainKMapper(): Plain<T> = Plain(T::class)
29+
30+
inline fun <reified T : Any> PlainKMapper(noinline parameterNameConverter: ((String) -> String)): Plain<T> =
31+
Plain(T::class, parameterNameConverter)

src/test/kotlin/com/mapk/kmapper/ConverterKMapperTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class ConverterKMapperTest {
3737
@Test
3838
@DisplayName("コンストラクターでのコンバートテスト")
3939
fun constructorConverterTest() {
40-
val mapper = KMapper(ConstructorConverterDst::class)
40+
val mapper = KMapper(::ConstructorConverterDst)
4141
val result = mapper.map(mapOf("argument" to 1))
4242

4343
assertEquals(ConstructorConverter(1), result.argument)
@@ -55,7 +55,7 @@ class ConverterKMapperTest {
5555
@Test
5656
@DisplayName("スタティックメソッドに定義したコンバータでのコンバートテスト")
5757
fun staticMethodConverterTest() {
58-
val mapper = KMapper(StaticMethodConverterDst::class)
58+
val mapper = KMapper<StaticMethodConverterDst>()
5959
val result = mapper.map(mapOf("argument" to "1,2,3"))
6060

6161
assertTrue(intArrayOf(1, 2, 3) contentEquals result.argument.arg)
@@ -77,7 +77,7 @@ class ConverterKMapperTest {
7777
@Test
7878
@DisplayName("コンパニオンオブジェクトに定義したコンバータでのコンバートテスト")
7979
fun companionConverterTest() {
80-
val mapper = PlainKMapper(CompanionConverterDst::class)
80+
val mapper = PlainKMapper(::CompanionConverterDst)
8181
val result = mapper.map(mapOf("argument" to "arg"))
8282

8383
assertEquals("arg", result.argument.arg)
@@ -86,7 +86,7 @@ class ConverterKMapperTest {
8686
@Test
8787
@DisplayName("スタティックメソッドに定義したコンバータでのコンバートテスト")
8888
fun staticMethodConverterTest() {
89-
val mapper = PlainKMapper(StaticMethodConverterDst::class)
89+
val mapper = PlainKMapper<StaticMethodConverterDst>()
9090
val result = mapper.map(mapOf("argument" to "1,2,3"))
9191

9292
assertTrue(intArrayOf(1, 2, 3) contentEquals result.argument.arg)
@@ -108,7 +108,7 @@ class ConverterKMapperTest {
108108
@Test
109109
@DisplayName("コンパニオンオブジェクトに定義したコンバータでのコンバートテスト")
110110
fun companionConverterTest() {
111-
val mapper = BoundKMapper(::CompanionConverterDst, BoundCompanionConverterSrc::class)
111+
val mapper: BoundKMapper<BoundCompanionConverterSrc, CompanionConverterDst> = BoundKMapper()
112112
val result = mapper.map(BoundCompanionConverterSrc("arg"))
113113

114114
assertEquals("arg", result.argument.arg)
@@ -117,7 +117,7 @@ class ConverterKMapperTest {
117117
@Test
118118
@DisplayName("スタティックメソッドに定義したコンバータでのコンバートテスト")
119119
fun staticMethodConverterTest() {
120-
val mapper = BoundKMapper(::StaticMethodConverterDst, BoundStaticMethodConverterSrc::class)
120+
val mapper = BoundKMapper(StaticMethodConverterDst::class, BoundStaticMethodConverterSrc::class)
121121
val result = mapper.map(BoundStaticMethodConverterSrc("1,2,3"))
122122

123123
assertTrue(intArrayOf(1, 2, 3) contentEquals result.argument.arg)

src/test/kotlin/com/mapk/kmapper/ParameterNameConverterTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class ParameterNameConverterTest {
2020
val expected = "snakeCase"
2121
val src = mapOf("camel_case" to expected)
2222

23-
val mapper = KMapper(CamelCaseDst::class) {
23+
val mapper = KMapper<CamelCaseDst> {
2424
CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, it)
2525
}
2626
val result = mapper.map(src)
@@ -38,7 +38,7 @@ class ParameterNameConverterTest {
3838
val expected = "snakeCase"
3939
val src = mapOf("camel_case" to expected)
4040

41-
val mapper = PlainKMapper(CamelCaseDst::class) {
41+
val mapper = PlainKMapper<CamelCaseDst> {
4242
CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, it)
4343
}
4444
val result = mapper.map(src)
@@ -54,7 +54,7 @@ class ParameterNameConverterTest {
5454
@DisplayName("スネークケースsrc -> キャメルケースdst")
5555
fun test() {
5656

57-
val mapper = BoundKMapper(::CamelCaseDst, BoundSrc::class) {
57+
val mapper = BoundKMapper<BoundSrc, CamelCaseDst> {
5858
CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, it)
5959
}
6060
val result = mapper.map(BoundSrc("snakeCase"))

0 commit comments

Comments
 (0)