Mocking methods de Kotlin con Java + Mockito

Así que estoy migrando una pequeña base de código de Java a Kotlin solo por diversión, y he migrado esta class de Java:

public class Inputs { private String engineURL; private Map<String, String> parameters; public Inputs(String engineURL, Map<String, String> parameters) { this.engineURL = engineURL; this.parameters = parameters; } public String getEngineURL() { return engineURL; } public String getParameter(String key) { return parameters.get(key); } } 

en esta representación de Kotlin:

 open class Inputs (val engineURL: String, private val parameters: Map<String, String>) { fun getParameter(key: String?): String { return parameters["$key"].orEmpty() } } 

Pero ahora estoy teniendo algunos problemas con el set de testings existente, escrito en Java. Más específicamente, tengo esta testing unitaria que usa Mockito:

 @Before public void setupInputs() { inputs = mock(Inputs.class); when(inputs.getEngineURL()).thenReturn("http://example.com"); } 

y falla en la línea when , diciendo

 org.mockito.exceptions.misusing.MissingMethodInvocationException: when() requires an argument which has to be 'a method call on a mock'. For example: when(mock.getArticles()).thenReturn(articles); Also, this error might show up because: 1. you stub either of: final/private/equals()/hashCode() methods. Those methods *cannot* be stubbed/verified. Mocking methods declanetworking on non-public parent classes is not supported. 2. inside when() you don't call method on mock but on some other object. 

¿Alguien sabe cómo puedo hacer que esto funcione? Intenté crear un getter real en la versión de Kotlin (en lugar de depender del getter implícito), pero hasta ahora no he tenido suerte.

¡Muchas gracias!

(En caso de que se pregunte por qué empecé con el código de producción en lugar de las testings, o por qué no uso mockito-kotlin, no hay una respuesta real a esas preguntas. Como dije, migro solo por diversión y quería mostrar a otros desarrolladores de mi equipo lo fácil que es tener interoperabilidad entre idiomas en proyectos reales)

ACTUALIZACIÓN : Me di count si agrego when(inputs.getParameter("key")).thenReturn("value") al mismo método setupInputs() (antes de la inputs.getEngineURL() ), termino con una NullPointerException en las Inputs#getParameter . ¡¿WTF ?!