Skip to content

Commit ed933c3

Browse files
committed
fix tests
adapt to changes from 7439238 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
1 parent 02fe457 commit ed933c3

7 files changed

Lines changed: 102 additions & 34 deletions

File tree

app/src/main/java/com/nextcloud/talk/utils/database/user/CurrentUserProviderNew.kt renamed to app/src/main/java/com/nextcloud/talk/utils/database/user/CurrentUserProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ package com.nextcloud.talk.utils.database.user
99

1010
import com.nextcloud.talk.data.user.model.User
1111

12-
interface CurrentUserProviderNew {
13-
suspend fun getCurrentUser(): User
12+
interface CurrentUserProvider {
13+
suspend fun getCurrentUser(timeout: Long = 5000L): Result<User>
1414
}

app/src/test/java/com/nextcloud/talk/contacts/ContactsViewModelTest.kt

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ package com.nextcloud.talk.contacts
1010
import com.nextcloud.talk.contacts.apiService.FakeItem
1111
import com.nextcloud.talk.contacts.repository.FakeRepositoryError
1212
import com.nextcloud.talk.contacts.repository.FakeRepositorySuccess
13+
import com.nextcloud.talk.data.user.UsersDao
14+
import com.nextcloud.talk.data.user.UsersRepository
15+
import com.nextcloud.talk.data.user.UsersRepositoryImpl
16+
import com.nextcloud.talk.users.UserManager
17+
import com.nextcloud.talk.utils.database.user.CurrentUserProviderOld
18+
import com.nextcloud.talk.utils.database.user.CurrentUserProviderOldImpl
19+
import com.nextcloud.talk.utils.preview.DummyUserDaoImpl
1320
import kotlinx.coroutines.Dispatchers
1421
import kotlinx.coroutines.ExperimentalCoroutinesApi
1522
import kotlinx.coroutines.test.TestDispatcher
@@ -28,6 +35,18 @@ class ContactsViewModelTest {
2835

2936
val dispatcher: TestDispatcher = UnconfinedTestDispatcher()
3037

38+
val usersDao: UsersDao
39+
get() = DummyUserDaoImpl()
40+
41+
val userRepository: UsersRepository
42+
get() = UsersRepositoryImpl(usersDao)
43+
44+
val userManager: UserManager
45+
get() = UserManager(userRepository)
46+
47+
val userProvider: CurrentUserProviderOld
48+
get() = CurrentUserProviderOldImpl(userManager)
49+
3150
@Before
3251
fun setup() {
3352
Dispatchers.setMain(dispatcher)
@@ -40,25 +59,25 @@ class ContactsViewModelTest {
4059

4160
@Before
4261
fun setUp() {
43-
viewModel = ContactsViewModel(repository)
62+
viewModel = ContactsViewModel(repository, userProvider)
4463
}
4564

4665
@Test
4766
fun `fetch contacts`() =
4867
runTest {
49-
viewModel = ContactsViewModel(repository)
68+
viewModel = ContactsViewModel(repository, userProvider)
5069
viewModel.getContactsFromSearchParams()
51-
assert(viewModel.contactsViewState.value is ContactsUiState.Success)
52-
val successState = viewModel.contactsViewState.value as ContactsUiState.Success
70+
assert(viewModel.contactsViewState.value is ContactsViewModel.ContactsUiState.Success)
71+
val successState = viewModel.contactsViewState.value as ContactsViewModel.ContactsUiState.Success
5372
assert(successState.contacts == FakeItem.contacts)
5473
}
5574

5675
@Test
5776
fun `test error contacts state`() =
5877
runTest {
59-
viewModel = ContactsViewModel(FakeRepositoryError())
60-
assert(viewModel.contactsViewState.value is ContactsUiState.Error)
61-
val errorState = viewModel.contactsViewState.value as ContactsUiState.Error
78+
viewModel = ContactsViewModel(FakeRepositoryError(), userProvider)
79+
assert(viewModel.contactsViewState.value is ContactsViewModel.ContactsUiState.Error)
80+
val errorState = viewModel.contactsViewState.value as ContactsViewModel.ContactsUiState.Error
6281
assert(errorState.message == "unable to fetch contacts")
6382
}
6483

@@ -88,25 +107,25 @@ class ContactsViewModelTest {
88107
@Test
89108
fun `initial room state is none`() =
90109
runTest {
91-
assert(viewModel.roomViewState.value is RoomUiState.None)
110+
assert(viewModel.roomViewState.value is ContactsViewModel.RoomUiState.None)
92111
}
93112

94113
@Test
95114
fun `test success room state`() =
96115
runTest {
97116
viewModel.createRoom("1", "users", "s@gmail.com", null)
98-
assert(viewModel.roomViewState.value is RoomUiState.Success)
99-
val successState = viewModel.roomViewState.value as RoomUiState.Success
117+
assert(viewModel.roomViewState.value is ContactsViewModel.RoomUiState.Success)
118+
val successState = viewModel.roomViewState.value as ContactsViewModel.RoomUiState.Success
100119
assert(successState.conversation == FakeItem.roomOverall.ocs!!.data)
101120
}
102121

103122
@Test
104123
fun `test failure room state`() =
105124
runTest {
106-
viewModel = ContactsViewModel(FakeRepositoryError())
125+
viewModel = ContactsViewModel(FakeRepositoryError(), userProvider)
107126
viewModel.createRoom("1", "users", "s@gmail.com", null)
108-
assert(viewModel.roomViewState.value is RoomUiState.Error)
109-
val errorState = viewModel.roomViewState.value as RoomUiState.Error
127+
assert(viewModel.roomViewState.value is ContactsViewModel.RoomUiState.Error)
128+
val errorState = viewModel.roomViewState.value as ContactsViewModel.RoomUiState.Error
110129
assert(errorState.message == "unable to create room")
111130
}
112131

app/src/test/java/com/nextcloud/talk/contacts/repository/FakeRepositoryError.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,24 @@
88
package com.nextcloud.talk.contacts.repository
99

1010
import com.nextcloud.talk.contacts.ContactsRepository
11+
import com.nextcloud.talk.data.user.model.User
1112
import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall
1213
import com.nextcloud.talk.models.json.conversations.RoomOverall
1314

1415
class FakeRepositoryError : ContactsRepository {
1516
@Suppress("Detekt.TooGenericExceptionThrown")
16-
override suspend fun getContacts(searchQuery: String?, shareTypes: List<String>): AutocompleteOverall =
17+
override suspend fun getContacts(user: User, searchQuery: String?, shareTypes: List<String>): AutocompleteOverall =
1718
throw Exception("unable to fetch contacts")
1819

1920
@Suppress("Detekt.TooGenericExceptionThrown")
2021
override suspend fun createRoom(
22+
user: User,
2123
roomType: String,
2224
sourceType: String?,
2325
userId: String,
2426
conversationName: String?
2527
): RoomOverall = throw Exception("unable to create room")
2628

27-
override fun getImageUri(avatarId: String, requestBigSize: Boolean) =
29+
override fun getImageUri(user: User, avatarId: String, requestBigSize: Boolean) =
2830
"https://mydoman.com/index.php/avatar/$avatarId/512"
2931
}

app/src/test/java/com/nextcloud/talk/contacts/repository/FakeRepositorySuccess.kt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,20 @@ package com.nextcloud.talk.contacts.repository
99

1010
import com.nextcloud.talk.contacts.ContactsRepository
1111
import com.nextcloud.talk.contacts.apiService.FakeItem
12+
import com.nextcloud.talk.data.user.model.User
1213

1314
class FakeRepositorySuccess : ContactsRepository {
14-
override suspend fun getContacts(searchQuery: String?, shareTypes: List<String>) = FakeItem.contactsOverall
15+
override suspend fun getContacts(user: User, searchQuery: String?, shareTypes: List<String>) =
16+
FakeItem.contactsOverall
1517

16-
override suspend fun createRoom(roomType: String, sourceType: String?, userId: String, conversationName: String?) =
17-
FakeItem.roomOverall
18+
override suspend fun createRoom(
19+
user: User,
20+
roomType: String,
21+
sourceType: String?,
22+
userId: String,
23+
conversationName: String?
24+
) = FakeItem.roomOverall
1825

19-
override fun getImageUri(avatarId: String, requestBigSize: Boolean) =
26+
override fun getImageUri(user: User, avatarId: String, requestBigSize: Boolean) =
2027
"https://mydomain.com/index.php/avatar/$avatarId/512"
2128
}

app/src/test/java/com/nextcloud/talk/messagesearch/MessageSearchHelperTest.kt

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,16 @@
77
*/
88
package com.nextcloud.talk.messagesearch
99

10+
import com.nextcloud.talk.data.user.UsersDao
11+
import com.nextcloud.talk.data.user.UsersRepository
12+
import com.nextcloud.talk.data.user.UsersRepositoryImpl
1013
import com.nextcloud.talk.models.domain.SearchMessageEntry
1114
import com.nextcloud.talk.repositories.unifiedsearch.UnifiedSearchRepository
1215
import com.nextcloud.talk.test.fakes.FakeUnifiedSearchRepository
16+
import com.nextcloud.talk.users.UserManager
17+
import com.nextcloud.talk.utils.database.user.CurrentUserProviderOld
18+
import com.nextcloud.talk.utils.database.user.CurrentUserProviderOldImpl
19+
import com.nextcloud.talk.utils.preview.DummyUserDaoImpl
1320
import io.reactivex.Observable
1421
import org.junit.Assert
1522
import org.junit.Before
@@ -20,6 +27,18 @@ class MessageSearchHelperTest {
2027

2128
val repository = FakeUnifiedSearchRepository()
2229

30+
val usersDao: UsersDao
31+
get() = DummyUserDaoImpl()
32+
33+
val userRepository: UsersRepository
34+
get() = UsersRepositoryImpl(usersDao)
35+
36+
val userManager: UserManager
37+
get() = UserManager(userRepository)
38+
39+
val userProvider: CurrentUserProviderOld
40+
get() = CurrentUserProviderOldImpl(userManager)
41+
2342
@Suppress("LongParameterList")
2443
private fun createMessageEntry(
2544
searchTerm: String = "foo",
@@ -42,7 +61,7 @@ class MessageSearchHelperTest {
4261

4362
val sut = MessageSearchHelper(
4463
repository,
45-
currentUser = null
64+
currentUser = userProvider.currentUser.blockingGet()
4665
)
4766

4867
val testObserver = sut.startMessageSearch("foo").test()
@@ -59,7 +78,7 @@ class MessageSearchHelperTest {
5978

6079
val sut = MessageSearchHelper(
6180
repository,
62-
currentUser = null
81+
currentUser = userProvider.currentUser.blockingGet()
6382
)
6483

6584
val observable = sut.startMessageSearch("foo")
@@ -74,7 +93,7 @@ class MessageSearchHelperTest {
7493

7594
val sut = MessageSearchHelper(
7695
repository,
77-
currentUser = null
96+
currentUser = userProvider.currentUser.blockingGet()
7897
)
7998

8099
val observable = sut.startMessageSearch("foo")
@@ -89,7 +108,7 @@ class MessageSearchHelperTest {
89108

90109
val sut = MessageSearchHelper(
91110
repository,
92-
currentUser = null
111+
currentUser = userProvider.currentUser.blockingGet()
93112
)
94113

95114
repeat(5) {
@@ -103,7 +122,7 @@ class MessageSearchHelperTest {
103122
fun loadMore_noPreviousResults() {
104123
val sut = MessageSearchHelper(
105124
repository,
106-
currentUser = null
125+
currentUser = userProvider.currentUser.blockingGet()
107126
)
108127
Assert.assertEquals(null, sut.loadMore())
109128
}
@@ -112,7 +131,7 @@ class MessageSearchHelperTest {
112131
fun loadMore_previousResults_sameSearch() {
113132
val sut = MessageSearchHelper(
114133
repository,
115-
currentUser = null
134+
currentUser = userProvider.currentUser.blockingGet()
116135
)
117136

118137
val firstPageEntries = (1..5).map { createMessageEntry() }

app/src/test/java/com/nextcloud/talk/test/fakes/FakeCallRecordingRepository.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ import io.reactivex.Observable
1414

1515
class FakeCallRecordingRepository : CallRecordingRepository {
1616

17-
override fun startRecording(roomToken: String) = Observable.just(StartCallRecordingModel(true))
17+
override fun startRecording(credentials: String?, url: String, roomToken: String) =
18+
Observable.just(StartCallRecordingModel(true))
1819

19-
override fun stopRecording(roomToken: String) = Observable.just(StopCallRecordingModel(true))
20+
override fun stopRecording(credentials: String?, url: String, roomToken: String) =
21+
Observable.just(StopCallRecordingModel(true))
2022
}

app/src/test/java/com/nextcloud/talk/viewmodels/CallRecordingViewModelTest.kt

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@
66
*/
77
package com.nextcloud.talk.viewmodels
88

9+
import com.nextcloud.talk.data.user.UsersDao
10+
import com.nextcloud.talk.data.user.UsersRepository
11+
import com.nextcloud.talk.data.user.UsersRepositoryImpl
912
import com.nextcloud.talk.test.fakes.FakeCallRecordingRepository
13+
import com.nextcloud.talk.users.UserManager
14+
import com.nextcloud.talk.utils.database.user.CurrentUserProviderOld
15+
import com.nextcloud.talk.utils.database.user.CurrentUserProviderOldImpl
16+
import com.nextcloud.talk.utils.preview.DummyUserDaoImpl
1017
import com.vividsolutions.jts.util.Assert
1118
import org.junit.Before
1219
import org.junit.Test
@@ -16,14 +23,26 @@ class CallRecordingViewModelTest : AbstractViewModelTest() {
1623

1724
private val repository = FakeCallRecordingRepository()
1825

26+
val usersDao: UsersDao
27+
get() = DummyUserDaoImpl()
28+
29+
val userRepository: UsersRepository
30+
get() = UsersRepositoryImpl(usersDao)
31+
32+
val userManager: UserManager
33+
get() = UserManager(userRepository)
34+
35+
val userProvider: CurrentUserProviderOld
36+
get() = CurrentUserProviderOldImpl(userManager)
37+
1938
@Before
2039
fun setUp() {
2140
MockitoAnnotations.openMocks(this)
2241
}
2342

2443
@Test
2544
fun testCallRecordingViewModel_clickStartRecord() {
26-
val viewModel = CallRecordingViewModel(repository)
45+
val viewModel = CallRecordingViewModel(repository, userProvider)
2746
viewModel.setData("foo")
2847
viewModel.clickRecordButton()
2948

@@ -37,7 +56,7 @@ class CallRecordingViewModelTest : AbstractViewModelTest() {
3756

3857
@Test
3958
fun testCallRecordingViewModel_clickStopRecord() {
40-
val viewModel = CallRecordingViewModel(repository)
59+
val viewModel = CallRecordingViewModel(repository, userProvider)
4160
viewModel.setData("foo")
4261
viewModel.setRecordingState(CallRecordingViewModel.RECORDING_STARTED_VIDEO_CODE)
4362

@@ -54,7 +73,7 @@ class CallRecordingViewModelTest : AbstractViewModelTest() {
5473

5574
@Test
5675
fun testCallRecordingViewModel_keepConfirmState() {
57-
val viewModel = CallRecordingViewModel(repository)
76+
val viewModel = CallRecordingViewModel(repository, userProvider)
5877
viewModel.setData("foo")
5978
viewModel.setRecordingState(CallRecordingViewModel.RECORDING_STARTED_VIDEO_CODE)
6079

@@ -71,7 +90,7 @@ class CallRecordingViewModelTest : AbstractViewModelTest() {
7190

7291
@Test
7392
fun testCallRecordingViewModel_continueRecordingWhenDismissStopDialog() {
74-
val viewModel = CallRecordingViewModel(repository)
93+
val viewModel = CallRecordingViewModel(repository, userProvider)
7594
viewModel.setData("foo")
7695
viewModel.setRecordingState(CallRecordingViewModel.RECORDING_STARTED_VIDEO_CODE)
7796
viewModel.clickRecordButton()
@@ -90,7 +109,7 @@ class CallRecordingViewModelTest : AbstractViewModelTest() {
90109

91110
@Test
92111
fun testSetRecordingStateDirectly() {
93-
val viewModel = CallRecordingViewModel(repository)
112+
val viewModel = CallRecordingViewModel(repository, userProvider)
94113
viewModel.setData("foo")
95114

96115
viewModel.setRecordingState(CallRecordingViewModel.RECORDING_STOPPED_CODE)

0 commit comments

Comments
 (0)