kotlin-test's assertNotNull lets the compiler know that whatever is passed to it is not null afterwards, while junit's assertNotNull does not. Why is it like that?
/** Asserts that the [actual] value is not `null`, with an optional [message]. */
fun <T : Any> assertNotNull(actual: T?, message: String? = null): T {
contract { returns() implies (actual != null) }
asserter.assertNotNull(message, actual)
return actual!!
}