mirror of
https://github.com/bitwarden/android.git
synced 2026-04-29 12:32:26 -05:00
[PM-20193] Migrate DownloadService to network module (#5053)
This commit is contained in:
@@ -2,11 +2,11 @@ package com.x8bit.bitwarden.data.vault.datasource.network.di
|
||||
|
||||
import com.bitwarden.network.service.CiphersService
|
||||
import com.bitwarden.network.service.CiphersServiceImpl
|
||||
import com.bitwarden.network.service.DownloadService
|
||||
import com.bitwarden.network.service.DownloadServiceImpl
|
||||
import com.bitwarden.network.service.FolderService
|
||||
import com.bitwarden.network.service.FolderServiceImpl
|
||||
import com.x8bit.bitwarden.data.platform.datasource.network.retrofit.Retrofits
|
||||
import com.x8bit.bitwarden.data.vault.datasource.network.service.DownloadService
|
||||
import com.x8bit.bitwarden.data.vault.datasource.network.service.DownloadServiceImpl
|
||||
import com.x8bit.bitwarden.data.vault.datasource.network.service.SendsService
|
||||
import com.x8bit.bitwarden.data.vault.datasource.network.service.SendsServiceImpl
|
||||
import com.x8bit.bitwarden.data.vault.datasource.network.service.SyncService
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.x8bit.bitwarden.data.vault.datasource.network.service
|
||||
|
||||
import okhttp3.ResponseBody
|
||||
|
||||
/**
|
||||
* Provides an API for querying arbitrary endpoints.
|
||||
*/
|
||||
interface DownloadService {
|
||||
/**
|
||||
* Streams data from [url], returning a raw [ResponseBody].
|
||||
*/
|
||||
suspend fun getDataStream(url: String): Result<ResponseBody>
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.x8bit.bitwarden.data.vault.datasource.network.service
|
||||
|
||||
import com.bitwarden.network.api.DownloadApi
|
||||
import com.bitwarden.network.util.toResult
|
||||
import okhttp3.ResponseBody
|
||||
|
||||
/**
|
||||
* Default implementation of [DownloadService].
|
||||
*/
|
||||
class DownloadServiceImpl(
|
||||
private val downloadApi: DownloadApi,
|
||||
) : DownloadService {
|
||||
override suspend fun getDataStream(
|
||||
url: String,
|
||||
): Result<ResponseBody> =
|
||||
downloadApi
|
||||
.getDataStream(url = url)
|
||||
.toResult()
|
||||
}
|
||||
@@ -6,8 +6,8 @@ import android.content.Context
|
||||
import android.net.Uri
|
||||
import com.bitwarden.core.annotation.OmitFromCoverage
|
||||
import com.bitwarden.data.manager.DispatcherManager
|
||||
import com.bitwarden.network.service.DownloadService
|
||||
import com.x8bit.bitwarden.data.platform.util.sdkAgnosticTransferTo
|
||||
import com.x8bit.bitwarden.data.vault.datasource.network.service.DownloadService
|
||||
import com.x8bit.bitwarden.data.vault.manager.model.DownloadResult
|
||||
import com.x8bit.bitwarden.data.vault.manager.model.ZipFileResult
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.x8bit.bitwarden.data.vault.manager.di
|
||||
import android.content.Context
|
||||
import com.bitwarden.data.manager.DispatcherManager
|
||||
import com.bitwarden.network.service.CiphersService
|
||||
import com.bitwarden.network.service.DownloadService
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
|
||||
import com.x8bit.bitwarden.data.auth.datasource.sdk.AuthSdkSource
|
||||
import com.x8bit.bitwarden.data.auth.manager.TrustedDeviceManager
|
||||
@@ -11,7 +12,6 @@ import com.x8bit.bitwarden.data.platform.manager.AppStateManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.ReviewPromptManager
|
||||
import com.x8bit.bitwarden.data.platform.repository.SettingsRepository
|
||||
import com.x8bit.bitwarden.data.vault.datasource.disk.VaultDiskSource
|
||||
import com.x8bit.bitwarden.data.vault.datasource.network.service.DownloadService
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.VaultSdkSource
|
||||
import com.x8bit.bitwarden.data.vault.manager.CipherManager
|
||||
import com.x8bit.bitwarden.data.vault.manager.CipherManagerImpl
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
package com.x8bit.bitwarden.data.vault.datasource.network.service
|
||||
|
||||
import com.bitwarden.network.api.DownloadApi
|
||||
import com.bitwarden.network.base.BaseServiceTest
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import okhttp3.mockwebserver.MockResponse
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
import org.junit.jupiter.api.Test
|
||||
import retrofit2.create
|
||||
|
||||
class DownloadServiceTest : BaseServiceTest() {
|
||||
private val downloadApi: DownloadApi = retrofit.create()
|
||||
|
||||
private val downloadService: DownloadService = DownloadServiceImpl(
|
||||
downloadApi = downloadApi,
|
||||
)
|
||||
|
||||
@Test
|
||||
fun `getDataStream should return a raw stream RespondBody`() = runTest {
|
||||
server.enqueue(
|
||||
MockResponse()
|
||||
.setResponseCode(200)
|
||||
.setBody("Bitwarden")
|
||||
.setHeader("Content-Type", "application/stream"),
|
||||
)
|
||||
val url = "/test-url"
|
||||
val result = downloadService.getDataStream(url)
|
||||
assertTrue(result.isSuccess)
|
||||
assertEquals("Bitwarden", String(result.getOrThrow().bytes()))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user