Skip to content

Commit 43f19f1

Browse files
committed
test: create new tests for OCUserRepositoryTest and OCRemoteUserDataSourceTest
1 parent fa6f8f4 commit 43f19f1

3 files changed

Lines changed: 60 additions & 2 deletions

File tree

owncloudData/src/test/java/com/owncloud/android/data/user/datasources/implementation/OCRemoteUserDataSourceTest.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
* ownCloud Android client application
33
*
44
* @author Abel García de Prada
5-
* Copyright (C) 2020 ownCloud GmbH.
5+
* @author Jorge Aguado Recio
6+
*
7+
* Copyright (C) 2025 ownCloud GmbH.
68
*
79
* This program is free software: you can redistribute it and/or modify
810
* it under the terms of the GNU General Public License version 2,
@@ -27,6 +29,7 @@ import com.owncloud.android.lib.resources.users.RemoteUserInfo
2729
import com.owncloud.android.lib.resources.users.services.implementation.OCUserService
2830
import com.owncloud.android.testutil.OC_ACCOUNT_NAME
2931
import com.owncloud.android.testutil.OC_USER_AVATAR
32+
import com.owncloud.android.testutil.OC_USER_ID
3033
import com.owncloud.android.testutil.OC_USER_INFO
3134
import com.owncloud.android.testutil.OC_USER_QUOTA
3235
import com.owncloud.android.utils.createRemoteOperationResultMock
@@ -123,5 +126,21 @@ class OCRemoteUserDataSourceTest {
123126

124127
verify(exactly = 1) { ocUserService.getUserAvatar(avatarDimension) }
125128
}
129+
130+
@Test
131+
fun `getUserId returns String containing the user id`() {
132+
val getUserIdResult: RemoteOperationResult<String> = createRemoteOperationResultMock(data = OC_USER_ID, isSuccess = true)
133+
134+
every {
135+
ocUserService.getUserId()
136+
} returns getUserIdResult
137+
138+
val userId = ocRemoteUserDataSource.getUserId(OC_ACCOUNT_NAME)
139+
assertEquals(OC_USER_ID, userId)
140+
141+
verify(exactly = 1) {
142+
ocUserService.getUserId()
143+
}
144+
}
126145
}
127146

owncloudData/src/test/java/com/owncloud/android/data/user/repository/OCUserRepositoryTest.kt

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121

2222
package com.owncloud.android.data.user.repository
2323

24+
import com.owncloud.android.data.authentication.datasources.LocalAuthenticationDataSource
2425
import com.owncloud.android.data.user.datasources.LocalUserDataSource
2526
import com.owncloud.android.data.user.datasources.RemoteUserDataSource
2627
import com.owncloud.android.testutil.OC_ACCOUNT_NAME
2728
import com.owncloud.android.testutil.OC_USER_AVATAR
29+
import com.owncloud.android.testutil.OC_USER_ID
2830
import com.owncloud.android.testutil.OC_USER_INFO
2931
import com.owncloud.android.testutil.OC_USER_QUOTA
3032
import io.mockk.every
@@ -40,7 +42,8 @@ import org.junit.Test
4042
class OCUserRepositoryTest {
4143
private val remoteUserDataSource = mockk<RemoteUserDataSource>()
4244
private val localUserDataSource = mockk<LocalUserDataSource>(relaxUnitFun = true)
43-
private val ocUserRepository = OCUserRepository(localUserDataSource, remoteUserDataSource)
45+
private val localAuthenticationDataSource = mockk<LocalAuthenticationDataSource>(relaxUnitFun = true)
46+
private val ocUserRepository = OCUserRepository(localUserDataSource, localAuthenticationDataSource, remoteUserDataSource)
4447

4548
@Test
4649
fun `getUserInfo returns an UserInfo`() {
@@ -155,4 +158,38 @@ class OCUserRepositoryTest {
155158
}
156159
}
157160

161+
@Test
162+
fun `getUserId returns a String with the user id when it exists in Account Manager`() {
163+
every {
164+
localAuthenticationDataSource.getUserId(OC_ACCOUNT_NAME)
165+
} returns OC_USER_ID
166+
167+
val accountId = ocUserRepository.getUserId(OC_ACCOUNT_NAME)
168+
assertEquals(OC_USER_ID, accountId)
169+
170+
verify(exactly = 1) {
171+
localAuthenticationDataSource.getUserId(OC_ACCOUNT_NAME)
172+
}
173+
}
174+
175+
@Test
176+
fun `getUserId returns a String with the user id when it does not exist in Account Manager`() {
177+
every {
178+
localAuthenticationDataSource.getUserId(OC_ACCOUNT_NAME)
179+
} returns null
180+
181+
every {
182+
remoteUserDataSource.getUserId(OC_ACCOUNT_NAME)
183+
} returns OC_USER_ID
184+
185+
val userId = ocUserRepository.getUserId(OC_ACCOUNT_NAME)
186+
assertEquals(OC_USER_ID, userId)
187+
188+
verify(exactly = 1) {
189+
localAuthenticationDataSource.getUserId(OC_ACCOUNT_NAME)
190+
remoteUserDataSource.getUserId(OC_ACCOUNT_NAME)
191+
localAuthenticationDataSource.saveIdForAccount(OC_ACCOUNT_NAME, OC_USER_ID)
192+
}
193+
}
194+
158195
}

owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCUser.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,5 @@ val OC_USER_AVATAR = UserAvatar(
6565
eTag = "edcdc7d39dc218d197c269c8f75ab0f4",
6666
mimeType = "image/png"
6767
)
68+
69+
const val OC_USER_ID = "us3r1d"

0 commit comments

Comments
 (0)