blob: ffb91ffe18712abac1713f544d91566a2cac7b75 [file] [log] [blame]
Roman Elizarov331750b2017-02-15 17:59:17 +03001/*
2 * Copyright 2016-2017 JetBrains s.r.o.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package kotlinx.coroutines.experimental.rx1
18
19import rx.Observable
20import rx.Single
21
22fun <T> checkSingleValue(
23 observable: Observable<T>,
24 checker: (T) -> Unit
25) {
26 val singleValue = observable.toBlocking().single()
27 checker(singleValue)
28}
29
30fun checkErroneous(
31 observable: Observable<*>,
32 checker: (Throwable) -> Unit
33) {
34 val singleNotification = observable.materialize().toBlocking().single()
35 checker(singleNotification.throwable)
36}
37
38fun <T> checkSingleValue(
39 single: Single<T>,
40 checker: (T) -> Unit
41) {
42 val singleValue = single.toBlocking().value()
43 checker(singleValue)
44}
45
46fun checkErroneous(
47 single: Single<*>,
48 checker: (Throwable) -> Unit
49) {
50 try {
51 single.toBlocking().value()
52 error("Should have failed")
53 } catch (e: Throwable) {
54 checker(e)
55 }
56}
57