1 /*
2  * Copyright 2019 The Android Open Source Project
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 
17 package androidx.paging
18 
19 import androidx.arch.core.executor.testing.InstantTaskExecutorRule
20 import androidx.test.ext.junit.runners.AndroidJUnit4
21 import androidx.test.filters.SmallTest
22 import org.junit.Assert.assertEquals
23 import org.junit.Assert.assertNotNull
24 import org.junit.Rule
25 import org.junit.Test
26 import org.junit.runner.RunWith
27 
28 @RunWith(AndroidJUnit4::class)
29 @SmallTest
30 class RxPagedListTest {
31     @JvmField @Rule val instantTaskExecutorRule = InstantTaskExecutorRule()
32 
33     @Test
observable_confignull34     fun observable_config() {
35         @Suppress("DEPRECATION") val observable = dataSourceFactory.toObservable(config)
36         val first = observable.blockingFirst()
37         assertNotNull(first)
38         assertEquals(config, first.config)
39     }
40 
41     @Test
observable_pageSizenull42     fun observable_pageSize() {
43         @Suppress("DEPRECATION") val observable = dataSourceFactory.toObservable(20)
44         val first = observable.blockingFirst()
45         assertNotNull(first)
46         assertEquals(20, first.config.pageSize)
47     }
48 
49     @Test
flowable_confignull50     fun flowable_config() {
51         @Suppress("DEPRECATION") val flowable = dataSourceFactory.toFlowable(config)
52         val first = flowable.blockingFirst()
53         assertNotNull(first)
54         assertEquals(config, first.config)
55     }
56 
57     @Test
flowable_pageSizenull58     fun flowable_pageSize() {
59         @Suppress("DEPRECATION") val flowable = dataSourceFactory.toFlowable(20)
60         val first = flowable.blockingFirst()
61         assertNotNull(first)
62         assertEquals(20, first.config.pageSize)
63     }
64 
65     companion object {
66         @Suppress("DEPRECATION")
67         private val dataSource =
68             object : PositionalDataSource<String>() {
loadInitialnull69                 override fun loadInitial(
70                     params: LoadInitialParams,
71                     callback: LoadInitialCallback<String>
72                 ) {
73                     callback.onResult(listOf(), 0, 0)
74                 }
75 
loadRangenull76                 override fun loadRange(
77                     params: LoadRangeParams,
78                     callback: LoadRangeCallback<String>
79                 ) {
80                     // never completes...
81                 }
82             }
83 
84         private val dataSourceFactory =
85             object : DataSource.Factory<Int, String>() {
createnull86                 override fun create() = dataSource
87             }
88 
89         private val config = Config(10)
90     }
91 }
92