Skip to content

Commit 52a7427

Browse files
author
eranboudjnah
committed
Chanced nullable implementation
1 parent 3e66f7d commit 52a7427

File tree

5 files changed

+1216
-8
lines changed

5 files changed

+1216
-8
lines changed

Diff for: app/src/main/java/com/mitteloupe/testit/generator/formatting/DataType.kt

+11-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@ package com.mitteloupe.testit.generator.formatting
22

33
import com.mitteloupe.testit.model.DataType
44

5+
fun DataType.toNonNullableKotlinString() = when (this) {
6+
is DataType.Specific -> name
7+
is DataType.Generic -> "$name<${genericTypes.toNonNullableKotlinString()}>"
8+
}
9+
10+
private fun Array<out DataType>.toNonNullableKotlinString(): String =
11+
joinToString(", ") { dataType ->
12+
dataType.toNonNullableKotlinString()
13+
}
14+
515
fun DataType.toKotlinString() = when (this) {
616
is DataType.Specific -> name
717
is DataType.Generic -> "$name<${genericTypes.toKotlinString()}>"
@@ -17,4 +27,4 @@ private fun String.makeNullableIfTrue(isNullable: Boolean) =
1727
"$this?"
1828
} else {
1929
this
20-
}
30+
}

Diff for: app/src/main/java/com/mitteloupe/testit/generator/mocking/MockKCodeGenerator.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.mitteloupe.testit.generator.mocking
22

33
import com.mitteloupe.testit.generator.formatting.Formatting
44
import com.mitteloupe.testit.generator.formatting.toKotlinString
5+
import com.mitteloupe.testit.generator.formatting.toNonNullableKotlinString
56
import com.mitteloupe.testit.model.ClassMetadata
67
import com.mitteloupe.testit.model.DataType
78
import com.mitteloupe.testit.model.concreteFunctions
@@ -36,7 +37,7 @@ class MockKCodeGenerator(
3637

3738
override fun getConstructorMock(parameterName: String, parameterType: DataType) =
3839
"${indent()}@MockK\n" +
39-
"${indent()}lateinit var $parameterName: ${parameterType.toKotlinString()}"
40+
"${indent()}lateinit var $parameterName: ${parameterType.toNonNullableKotlinString()}"
4041

4142
override fun getAbstractClassUnderTest(classUnderTest: ClassMetadata): String {
4243
val arguments =
@@ -55,7 +56,8 @@ class MockKCodeGenerator(
5556
return stringBuilder.toString()
5657
}
5758

58-
override fun getMockedInstance(variableType: DataType) = "mockk<${variableType.toKotlinString()}>()"
59+
override fun getMockedInstance(variableType: DataType) =
60+
"mockk<${variableType.toKotlinString()}>()"
5961

6062
override fun setHasMockedConstructorParameters(classUnderTest: ClassMetadata) {
6163
_hasMockedConstructorParameters = true

Diff for: app/src/main/java/com/mitteloupe/testit/generator/mocking/MockitoCodeGenerator.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.mitteloupe.testit.generator.mocking
22

33
import com.mitteloupe.testit.generator.formatting.Formatting
4-
import com.mitteloupe.testit.generator.formatting.toKotlinString
4+
import com.mitteloupe.testit.generator.formatting.toNonNullableKotlinString
55
import com.mitteloupe.testit.model.ClassMetadata
66
import com.mitteloupe.testit.model.DataType
77

@@ -35,9 +35,10 @@ class MockitoCodeGenerator(
3535

3636
override fun getConstructorMock(parameterName: String, parameterType: DataType) =
3737
"${indent()}@Mock\n" +
38-
"${indent()}lateinit var $parameterName: ${parameterType.toKotlinString()}"
38+
"${indent()}lateinit var $parameterName: ${parameterType.toNonNullableKotlinString()}"
3939

40-
override fun getMockedInstance(variableType: DataType) = "mock<${variableType.toKotlinString()}>()"
40+
override fun getMockedInstance(variableType: DataType) =
41+
"mock<${variableType.toNonNullableKotlinString()}>()"
4142

4243
override fun getAbstractClassUnderTest(classUnderTest: ClassMetadata) =
4344
"mock(defaultAnswer = Mockito.CALLS_REAL_METHODS${getConstructorArgumentsForAbstract(

Diff for: app/src/test/java/com/mitteloupe/testit/generator/mocking/MockitoCodeGeneratorTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ class MockitoCodeGeneratorTest {
237237
}
238238

239239
@Test
240-
fun `Given _ when setIsAbstractClassUnderTest then _`() {
240+
fun `When setIsAbstractClassUnderTest then adds expected imports`() {
241241
// Given
242242
val expected1 = "mock"
243243
val expected2 = "Mockito"
@@ -278,7 +278,7 @@ class MockitoCodeGeneratorTest {
278278
),
279279
DataType.Specific("another type", false)
280280
)
281-
val expected = "mock<data type<nested type<deeply nested>?, another type>>()"
281+
val expected = "mock<data type<nested type<deeply nested>, another type>>()"
282282
given { mockableTypeQualifier.getNonMockableType(variableType.name) }
283283
.willReturn(null)
284284

0 commit comments

Comments
 (0)