@@ -26,16 +26,21 @@ import androidx.test.platform.app.InstrumentationRegistry
26
26
import com.owncloud.android.data.OwncloudDatabase
27
27
import com.owncloud.android.data.spaces.datasources.implementation.OCLocalSpacesDataSource.Companion.toEntity
28
28
import com.owncloud.android.data.spaces.datasources.implementation.OCLocalSpacesDataSource.Companion.toModel
29
+ import com.owncloud.android.domain.spaces.model.OCSpace.Companion.DRIVE_TYPE_PROJECT
29
30
import com.owncloud.android.testutil.OC_SPACE_PROJECT_WITHOUT_IMAGE
30
31
import com.owncloud.android.testutil.OC_SPACE_PROJECT_WITH_IMAGE
31
32
import com.owncloud.android.testutil.OC_SPACE_SPECIAL_IMAGE
32
33
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
33
37
import org.junit.Assert.assertEquals
34
38
import org.junit.Assert.assertNotNull
35
39
import org.junit.Before
36
40
import org.junit.Rule
37
41
import org.junit.Test
38
42
43
+ @OptIn(ExperimentalCoroutinesApi ::class )
39
44
@MediumTest
40
45
class SpacesDaoTest {
41
46
@Rule
@@ -53,7 +58,7 @@ class SpacesDaoTest {
53
58
}
54
59
55
60
@Test
56
- fun insertOrDeleteSpacesWithEmptyDatabase () {
61
+ fun insertOrDeleteSpacesWithEmptyDatabase () = runTest {
57
62
val accountName = OC_SPACE_PROJECT_WITHOUT_IMAGE .accountName
58
63
59
64
val specialsToInsert = listOf (
@@ -68,15 +73,18 @@ class SpacesDaoTest {
68
73
69
74
spacesDao.insertOrDeleteSpaces(spacesToInsert, specialsToInsert)
70
75
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() }
72
80
73
81
assertNotNull(spacesInDatabase)
74
82
assertEquals(1 , spacesInDatabase.size)
75
83
assertEquals(spacesToInsertModel, spacesInDatabase)
76
84
}
77
85
78
86
@Test
79
- fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseNotAttachedToAccountAnymore () {
87
+ fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseNotAttachedToAccountAnymore () = runTest {
80
88
val accountName = OC_SPACE_PROJECT_WITHOUT_IMAGE .accountName
81
89
82
90
val specialsAlreadyInDatabaseToInsert = listOf (
@@ -90,7 +98,10 @@ class SpacesDaoTest {
90
98
91
99
spacesDao.insertOrDeleteSpaces(spacesAlreadyInDatabaseToInsert, specialsAlreadyInDatabaseToInsert)
92
100
93
- val spacesAlreadyInDatabase = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
101
+ val spacesAlreadyInDatabase = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
102
+ accountName = accountName,
103
+ filterDriveTypes = setOf (DRIVE_TYPE_PROJECT ),
104
+ ).first()
94
105
95
106
assertEquals(1 , spacesAlreadyInDatabase.size)
96
107
assertEquals(2 , spacesAlreadyInDatabase[0 ].specials.size)
@@ -107,7 +118,11 @@ class SpacesDaoTest {
107
118
108
119
spacesDao.insertOrDeleteSpaces(newSpacesToInsert, newSpecialsToInsert)
109
120
110
- val spacesInDatabaseEntity = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
121
+ val spacesInDatabaseEntity = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
122
+ accountName = accountName,
123
+ filterDriveTypes = setOf (DRIVE_TYPE_PROJECT ),
124
+ ).first()
125
+
111
126
val spacesInDatabase = spacesInDatabaseEntity.map { it.toModel() }
112
127
val specialsInDatabase = spacesInDatabaseEntity.flatMap { it.specials }
113
128
@@ -118,7 +133,7 @@ class SpacesDaoTest {
118
133
}
119
134
120
135
@Test
121
- fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseStillAttachedToAccount () {
136
+ fun insertOrDeleteSpacesWithSpacesAlreadyInDatabaseStillAttachedToAccount () = runTest {
122
137
val accountName = OC_SPACE_PROJECT_WITHOUT_IMAGE .accountName
123
138
124
139
val specialsAlreadyInDatabaseToInsert = listOf (
@@ -132,7 +147,10 @@ class SpacesDaoTest {
132
147
133
148
spacesDao.insertOrDeleteSpaces(spacesAlreadyInDatabaseToInsert, specialsAlreadyInDatabaseToInsert)
134
149
135
- val spacesAlreadyInDatabase = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
150
+ val spacesAlreadyInDatabase = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
151
+ accountName = accountName,
152
+ filterDriveTypes = setOf (DRIVE_TYPE_PROJECT ),
153
+ ).first()
136
154
137
155
assertEquals(1 , spacesAlreadyInDatabase.size)
138
156
assertEquals(2 , spacesAlreadyInDatabase[0 ].specials.size)
@@ -151,7 +169,10 @@ class SpacesDaoTest {
151
169
152
170
spacesDao.insertOrDeleteSpaces(newSpacesToInsert, newSpecialsToInsert)
153
171
154
- val spacesInDatabase = spacesDao.getProjectSpacesWithSpecialsForAccount(accountName)
172
+ val spacesInDatabase = spacesDao.getSpacesByDriveTypeWithSpecialsForAccountAsFlow(
173
+ accountName = accountName,
174
+ filterDriveTypes = setOf (DRIVE_TYPE_PROJECT ),
175
+ ).first()
155
176
val specialsInDatabase = spacesInDatabase.flatMap { it.specials }
156
177
157
178
assertNotNull(spacesInDatabase)
0 commit comments