Fix errors in tests in the data module

pull/1323/head
lihenggui 2 years ago
parent 94b14e7279
commit e6fa41db81

@ -22,7 +22,9 @@ import com.google.samples.apps.nowinandroid.core.data.model.asEntity
import com.google.samples.apps.nowinandroid.core.data.model.topicCrossReferences
import com.google.samples.apps.nowinandroid.core.data.model.topicEntityShells
import com.google.samples.apps.nowinandroid.core.database.dao.NewsResourceDao
import com.google.samples.apps.nowinandroid.core.database.dao.NewsResourceDaoInterface
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDao
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDaoInterface
import com.google.samples.apps.nowinandroid.core.database.model.PopulatedNewsResource
import com.google.samples.apps.nowinandroid.core.database.model.TopicEntity
import com.google.samples.apps.nowinandroid.core.database.model.asExternalModel
@ -48,8 +50,8 @@ private const val SYNC_BATCH_SIZE = 40
@Inject
internal class OfflineFirstNewsRepository(
private val niaPreferencesDataSource: NiaPreferencesDataSource,
private val newsResourceDao: NewsResourceDao,
private val topicDao: TopicDao,
private val newsResourceDao: NewsResourceDaoInterface,
private val topicDao: TopicDaoInterface,
private val network: NiaNetworkDataSource,
private val notifier: Notifier,
) : NewsRepository {

@ -20,6 +20,7 @@ import com.google.samples.apps.nowinandroid.core.data.Synchronizer
import com.google.samples.apps.nowinandroid.core.data.changeListSync
import com.google.samples.apps.nowinandroid.core.data.model.asEntity
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDao
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDaoInterface
import com.google.samples.apps.nowinandroid.core.database.model.TopicEntity
import com.google.samples.apps.nowinandroid.core.database.model.asExternalModel
import com.google.samples.apps.nowinandroid.core.datastore.ChangeListVersions
@ -36,7 +37,7 @@ import me.tatarka.inject.annotations.Inject
*/
@Inject
internal class OfflineFirstTopicsRepository(
private val topicDao: TopicDao,
private val topicDao: TopicDaoInterface,
private val network: NiaNetworkDataSource,
) : TopicsRepository {

@ -32,18 +32,17 @@ import com.google.samples.apps.nowinandroid.core.database.model.PopulatedNewsRes
import com.google.samples.apps.nowinandroid.core.database.model.TopicEntity
import com.google.samples.apps.nowinandroid.core.database.model.asExternalModel
import com.google.samples.apps.nowinandroid.core.datastore.NiaPreferencesDataSource
import com.google.samples.apps.nowinandroid.core.datastore.test.testUserPreferencesDataStore
import com.google.samples.apps.nowinandroid.core.model.data.NewsResource
import com.google.samples.apps.nowinandroid.core.model.data.Topic
import com.google.samples.apps.nowinandroid.core.network.model.NetworkChangeList
import com.google.samples.apps.nowinandroid.core.network.model.NetworkNewsResource
import com.google.samples.apps.nowinandroid.core.testing.notifications.TestNotifier
import com.russhwolf.settings.MapSettings
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.runTest
import org.junit.Rule
import org.junit.rules.TemporaryFolder
import kotlin.test.BeforeTest
import kotlin.test.Test
import kotlin.test.assertEquals
@ -51,7 +50,10 @@ import kotlin.test.assertTrue
class OfflineFirstNewsRepositoryTest {
private val testScope = TestScope(UnconfinedTestDispatcher())
@OptIn(ExperimentalCoroutinesApi::class)
private val dispatcher = UnconfinedTestDispatcher()
private val testScope = TestScope(dispatcher)
private lateinit var subject: OfflineFirstNewsRepository
@ -67,13 +69,11 @@ class OfflineFirstNewsRepositoryTest {
private lateinit var synchronizer: Synchronizer
@get:Rule
val tmpFolder: TemporaryFolder = TemporaryFolder.builder().assureDeletion().build()
@BeforeTest
fun setup() {
niaPreferencesDataSource = NiaPreferencesDataSource(
tmpFolder.testUserPreferencesDataStore(testScope),
settings = MapSettings(),
dispatcher = dispatcher,
)
newsResourceDao = TestNewsResourceDao()
topicDao = TestTopicDao()
@ -176,7 +176,7 @@ class OfflineFirstNewsRepositoryTest {
// Delete half of the items on the network
val deletedItems = newsResourcesFromNetwork
.map(NewsResource::id)
.partition { it.chars().sum() % 2 == 0 }
.partition { it.length % 2 == 0 }
.first
.toSet()
@ -327,7 +327,7 @@ class OfflineFirstNewsRepositoryTest {
val followedTopicIds = networkNewsResources
.flatMap(NetworkNewsResource::topicEntityShells)
.mapNotNull { topic ->
when (topic.id.chars().sum() % 2) {
when (topic.id.length % 2) {
0 -> topic.id
else -> null
}

@ -21,13 +21,14 @@ import com.google.samples.apps.nowinandroid.core.data.model.asEntity
import com.google.samples.apps.nowinandroid.core.data.testdoubles.CollectionType
import com.google.samples.apps.nowinandroid.core.data.testdoubles.TestNiaNetworkDataSource
import com.google.samples.apps.nowinandroid.core.data.testdoubles.TestTopicDao
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDao
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDaoInterface
import com.google.samples.apps.nowinandroid.core.database.model.TopicEntity
import com.google.samples.apps.nowinandroid.core.database.model.asExternalModel
import com.google.samples.apps.nowinandroid.core.datastore.NiaPreferencesDataSource
import com.google.samples.apps.nowinandroid.core.datastore.test.testUserPreferencesDataStore
import com.google.samples.apps.nowinandroid.core.model.data.Topic
import com.google.samples.apps.nowinandroid.core.network.model.NetworkTopic
import com.russhwolf.settings.MapSettings
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.UnconfinedTestDispatcher
@ -38,11 +39,14 @@ import kotlin.test.assertEquals
class OfflineFirstTopicsRepositoryTest {
private val testScope = TestScope(UnconfinedTestDispatcher())
@OptIn(ExperimentalCoroutinesApi::class)
private val dispatcher = UnconfinedTestDispatcher()
private val testScope = TestScope(dispatcher)
private lateinit var subject: OfflineFirstTopicsRepository
private lateinit var topicDao: TopicDao
private lateinit var topicDao: TopicDaoInterface
private lateinit var network: TestNiaNetworkDataSource
@ -55,7 +59,8 @@ class OfflineFirstTopicsRepositoryTest {
topicDao = TestTopicDao()
network = TestNiaNetworkDataSource()
niaPreferences = NiaPreferencesDataSource(
tmpFolder.testUserPreferencesDataStore(testScope),
settings = MapSettings(),
dispatcher = dispatcher,
)
synchronizer = TestSynchronizer(niaPreferences)
@ -140,7 +145,7 @@ class OfflineFirstTopicsRepositoryTest {
// Delete half of the items on the network
val deletedItems = networkTopics
.map(Topic::id)
.partition { it.chars().sum() % 2 == 0 }
.partition { it.length % 2 == 0 }
.first
.toSet()

Loading…
Cancel
Save