@@ -26,16 +26,21 @@ import androidx.test.platform.app.InstrumentationRegistry
2626import com.owncloud.android.data.OwncloudDatabase
2727import com.owncloud.android.data.spaces.datasources.implementation.OCLocalSpacesDataSource.Companion.toEntity
2828import com.owncloud.android.data.spaces.datasources.implementation.OCLocalSpacesDataSource.Companion.toModel
29+ import com.owncloud.android.domain.spaces.model.OCSpace.Companion.DRIVE_TYPE_PROJECT
2930import com.owncloud.android.testutil.OC_SPACE_PROJECT_WITHOUT_IMAGE
3031import com.owncloud.android.testutil.OC_SPACE_PROJECT_WITH_IMAGE
3132import com.owncloud.android.testutil.OC_SPACE_SPECIAL_IMAGE
3233import 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
3337import org.junit.Assert.assertEquals
3438import org.junit.Assert.assertNotNull
3539import org.junit.Before
3640import org.junit.Rule
3741import org.junit.Test
3842
43+ @OptIn(ExperimentalCoroutinesApi ::class )
3944@MediumTest
4045class 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