Skip to content

Commit c3f7e68

Browse files
authored
Merge pull request #107 from nhaarman/create-primitive-instance
Don't try to mock primitive/wrapper instances
2 parents 494e7ca + 0615231 commit c3f7e68

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/CreateInstance.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ fun <T : Any> createInstance(kClass: KClass<T>): T {
6767
return MockitoKotlin.instanceCreator(kClass)?.invoke() as T? ?:
6868
when {
6969
kClass.hasObjectInstance() -> kClass.objectInstance!!
70-
kClass.isMockable() -> kClass.java.uncheckedMock()
7170
kClass.isPrimitive() -> kClass.toDefaultPrimitiveValue()
71+
kClass.isMockable() -> kClass.java.uncheckedMock()
7272
kClass.isEnum() -> kClass.java.enumConstants.first()
7373
kClass.isArray() -> kClass.toArrayInstance()
7474
kClass.isClassObject() -> kClass.toClassObject()

mockito-kotlin/src/testInlineMockito/kotlin/CreateInstanceOfImmutableTest.kt renamed to mockito-kotlin/src/testInlineMockito/kotlin/CreateInstanceInlineTest.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import org.junit.Test
2828
import java.io.IOException
2929
import java.math.BigInteger
3030

31-
class CreateInstanceOfImmutableTest {
31+
class CreateInstanceInlineTest {
3232

3333
class ClassToBeMocked {
3434

@@ -97,6 +97,24 @@ class CreateInstanceOfImmutableTest {
9797
}
9898
}
9999

100+
@Test
101+
fun createPrimitiveInstance() {
102+
/* When */
103+
val i = createInstance<Int>()
104+
105+
/* Then */
106+
expect(i).toBe(0)
107+
}
108+
109+
@Test
110+
fun createStringInstance() {
111+
/* When */
112+
val s = createInstance<String>()
113+
114+
/* Then */
115+
expect(s).toBe("")
116+
}
117+
100118
interface Methods {
101119

102120
fun throwableClass(t: ThrowableClass)

0 commit comments

Comments
 (0)