summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChalard Jean <jchalard@google.com>2020-05-25 22:42:21 +0900
committerChalard Jean <jchalard@google.com>2020-05-25 22:43:34 +0900
commitd44175e9f54421e9d8b6a01512174f3afb76a73e (patch)
treead29ec9a18c54db388e73eb141e1ae2a80aa5577
parent5abdc91e97ae900b3a6840a1089244768a09464f (diff)
Add an eventuallyExpect call that returns null
Test: GtsNetworkStackHostTestCases Bug: 157284669 Change-Id: Ieba523cd6cebce5f5e6d2fd8b9acd28228403540
-rw-r--r--tests/lib/src/com/android/testutils/TestableNetworkCallback.kt12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/lib/src/com/android/testutils/TestableNetworkCallback.kt b/tests/lib/src/com/android/testutils/TestableNetworkCallback.kt
index c9da2f2..b63e137 100644
--- a/tests/lib/src/com/android/testutils/TestableNetworkCallback.kt
+++ b/tests/lib/src/com/android/testutils/TestableNetworkCallback.kt
@@ -32,6 +32,7 @@ import com.android.testutils.RecorderCallback.CallbackEntry.Suspended
import com.android.testutils.RecorderCallback.CallbackEntry.Unavailable
import kotlin.reflect.KClass
import kotlin.test.assertEquals
+import kotlin.test.assertNotNull
import kotlin.test.assertTrue
import kotlin.test.fail
@@ -194,7 +195,16 @@ open class TestableNetworkCallback private constructor(
timeoutMs: Long = defaultTimeoutMs,
from: Int = mark,
crossinline predicate: (T) -> Boolean = { true }
- ) = history.poll(timeoutMs, from) { it is T && predicate(it) } as T
+ ): T = eventuallyExpectOrNull(timeoutMs, from, predicate).also {
+ assertNotNull(it, "Callback ${T::class} not received within ${timeoutMs}ms")
+ } as T
+
+ // TODO (b/157405399) straighten and unify the method names
+ inline fun <reified T : CallbackEntry> eventuallyExpectOrNull(
+ timeoutMs: Long = defaultTimeoutMs,
+ from: Int = mark,
+ crossinline predicate: (T) -> Boolean = { true }
+ ) = history.poll(timeoutMs, from) { it is T && predicate(it) } as T?
fun expectCallbackThat(
timeoutMs: Long = defaultTimeoutMs,