Skip to content

Commit 5636453

Browse files
committed
Adapt dao test to work with flows and recent changes
1 parent bb2b1d5 commit 5636453

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

owncloudData/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ dependencies {
7171

7272
// Dependencies for instrumented tests
7373
androidTestImplementation project(":owncloudTestUtil")
74+
androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$orgJetbrainsKotlinx"
7475
androidTestImplementation "androidx.test:runner:$androidxTest"
7576
androidTestImplementation "androidx.test.espresso:espresso-core:$androidxTestEspresso"
7677
androidTestImplementation "androidx.test.ext:junit:$androidxTestExt"

owncloudData/src/androidTest/java/com/owncloud/android/data/spaces/db/SpacesDaoTest.kt

+29-8
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,21 @@ import androidx.test.platform.app.InstrumentationRegistry
2626
import com.owncloud.android.data.OwncloudDatabase
2727
import com.owncloud.android.data.spaces.datasources.implementation.OCLocalSpacesDataSource.Companion.toEntity
2828
import com.owncloud.android.data.spaces.datasources.implementation.OCLocalSpacesDataSource.Companion.toModel
29+
import com.owncloud.android.domain.spaces.model.OCSpace.Companion.DRIVE_TYPE_PROJECT
2930
import com.owncloud.android.testutil.OC_SPACE_PROJECT_WITHOUT_IMAGE
3031
import com.owncloud.android.testutil.OC_SPACE_PROJECT_WITH_IMAGE
3132
import com.owncloud.android.testutil.OC_SPACE_SPECIAL_IMAGE
3233
import com.owncloud.android.testutil.OC_SPACE_SPECIAL_README
34+
import kotlinx.coroutines.ExperimentalCoroutinesApi
35+
import kotlinx.coroutines.flow.first
36+
import kotlinx.coroutines.test.runTest
3337
import org.junit.Assert.assertEquals
3438
import org.junit.Assert.assertNotNull
3539
import org.junit.Before
3640
import org.junit.Rule
3741
import org.junit.Test
3842

43+
@OptIn(ExperimentalCoroutinesApi::class)
3944
@MediumTest
4045
class SpacesDaoTest {
4146
@Rule
@@ -53,7 +58,7 @@ class SpacesDaoTest {
5358
}
5459

5560
@Test
56-
fun insertOrDeleteSpacesWithEmptyDatabase() {
61+
fun insertOrDeleteSpacesWithEmptyDatabase() = runTest {
5762
val accountName = OC_SPACE_PROJECT_WITHOUT_IMAGE.accountName
5863

5964
val specialsToInsert = listOf(
@@ -68,15 +73,18 @@ class SpacesDaoTest {
6873

6974
spacesDao.insertOrDeleteSpaces(spacesToInsert, specialsToInsert)
7075

71-
val spacesInDatabase = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName).map { it.toModel() }
76+
val spacesInDatabase = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
77+
accountName = accountName,
78+
filterDriveTypes = setOf(DRIVE_TYPE_PROJECT),
79+
).first().map { it.toModel() }
7280

7381
assertNotNull(spacesInDatabase)
7482
assertEquals(1, spacesInDatabase.size)
7583
assertEquals(spacesToInsertModel, spacesInDatabase)
7684
}
7785

7886
@Test
79-
fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseNotAttachedToAccountAnymore() {
87+
fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseNotAttachedToAccountAnymore() = runTest {
8088
val accountName = OC_SPACE_PROJECT_WITHOUT_IMAGE.accountName
8189

8290
val specialsAlreadyInDatabaseToInsert = listOf(
@@ -90,7 +98,10 @@ class SpacesDaoTest {
9098

9199
spacesDao.insertOrDeleteSpaces(spacesAlreadyInDatabaseToInsert, specialsAlreadyInDatabaseToInsert)
92100

93-
val spacesAlreadyInDatabase = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
101+
val spacesAlreadyInDatabase = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
102+
accountName = accountName,
103+
filterDriveTypes = setOf(DRIVE_TYPE_PROJECT),
104+
).first()
94105

95106
assertEquals(1, spacesAlreadyInDatabase.size)
96107
assertEquals(2, spacesAlreadyInDatabase[0].specials.size)
@@ -107,7 +118,11 @@ class SpacesDaoTest {
107118

108119
spacesDao.insertOrDeleteSpaces(newSpacesToInsert, newSpecialsToInsert)
109120

110-
val spacesInDatabaseEntity = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
121+
val spacesInDatabaseEntity = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
122+
accountName = accountName,
123+
filterDriveTypes = setOf(DRIVE_TYPE_PROJECT),
124+
).first()
125+
111126
val spacesInDatabase = spacesInDatabaseEntity.map { it.toModel() }
112127
val specialsInDatabase = spacesInDatabaseEntity.flatMap { it.specials }
113128

@@ -118,7 +133,7 @@ class SpacesDaoTest {
118133
}
119134

120135
@Test
121-
fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseStillAttachedToAccount() {
136+
fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseStillAttachedToAccount() = runTest {
122137
val accountName = OC_SPACE_PROJECT_WITHOUT_IMAGE.accountName
123138

124139
val specialsAlreadyInDatabaseToInsert = listOf(
@@ -132,7 +147,10 @@ class SpacesDaoTest {
132147

133148
spacesDao.insertOrDeleteSpaces(spacesAlreadyInDatabaseToInsert, specialsAlreadyInDatabaseToInsert)
134149

135-
val spacesAlreadyInDatabase = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
150+
val spacesAlreadyInDatabase = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
151+
accountName = accountName,
152+
filterDriveTypes = setOf(DRIVE_TYPE_PROJECT),
153+
).first()
136154

137155
assertEquals(1, spacesAlreadyInDatabase.size)
138156
assertEquals(2, spacesAlreadyInDatabase[0].specials.size)
@@ -151,7 +169,10 @@ class SpacesDaoTest {
151169

152170
spacesDao.insertOrDeleteSpaces(newSpacesToInsert, newSpecialsToInsert)
153171

154-
val spacesInDatabase = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
172+
val spacesInDatabase = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
173+
accountName = accountName,
174+
filterDriveTypes = setOf(DRIVE_TYPE_PROJECT),
175+
).first()
155176
val specialsInDatabase = spacesInDatabase.flatMap { it.specials }
156177

157178
assertNotNull(spacesInDatabase)

0 commit comments

Comments
 (0)