refactoring for unit tests
This commit is contained in:
@@ -61,23 +61,23 @@ class DatabaseRepository @Inject constructor(
|
||||
return safeApiCall { molbioAuthApi.deviceProvision(deviceProvisionRequest) }
|
||||
}
|
||||
|
||||
suspend fun login(loginRequest: LoginRequest): Result<LoginResponse> {
|
||||
override suspend fun login(loginRequest: LoginRequest): Result<LoginResponse> {
|
||||
return safeApiCall { molbioAuthApi.login(loginRequest) }
|
||||
}
|
||||
|
||||
suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result<MolbioV2ResultResponse> {
|
||||
override suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result<MolbioV2ResultResponse> {
|
||||
return safeApiCall { molbioResultApi.uploadResults(molbioV2ResultRequest) }
|
||||
}
|
||||
|
||||
suspend fun checkUpdate(checkUpdateRequest: CheckUpdateRequest): Result<CheckUpdateResponse> {
|
||||
override suspend fun checkUpdate(checkUpdateRequest: CheckUpdateRequest): Result<CheckUpdateResponse> {
|
||||
return safeApiCall { molbioResultApi.checkUpdate(checkUpdateRequest) }
|
||||
}
|
||||
|
||||
suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): Result<ResponseBody> {
|
||||
override suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): Result<ResponseBody> {
|
||||
return safeApiCall { molbioResultApi.deviceUpdate(deviceUpdateRequest) }
|
||||
}
|
||||
|
||||
suspend fun uploadLogs(logFile: MultipartBody.Part): Result<UploadLogsResponse> {
|
||||
override suspend fun uploadLogs(logFile: MultipartBody.Part): Result<UploadLogsResponse> {
|
||||
return safeApiCall { molbioResultApi.uploadLogs(logFile) }
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,22 @@
|
||||
package com.example.hpostesting.data.repository
|
||||
|
||||
import com.example.hpostesting.data.Result
|
||||
import com.example.hpostesting.data.model.Response
|
||||
import com.example.hpostesting.data.model.diagnostics.DiagnosticsData
|
||||
import com.example.hpostesting.data.model.log.UploadLogsResponse
|
||||
import com.example.hpostesting.data.model.login.LoginRequest
|
||||
import com.example.hpostesting.data.model.login.LoginResponse
|
||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultRequest
|
||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultResponse
|
||||
import com.example.hpostesting.data.model.patient.BufferCheckData
|
||||
import com.example.hpostesting.data.model.patient.DeviceData
|
||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||
import com.example.hpostesting.data.model.patient.UserData
|
||||
import com.example.hpostesting.data.model.updates.CheckUpdateRequest
|
||||
import com.example.hpostesting.data.model.updates.CheckUpdateResponse
|
||||
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
||||
import okhttp3.MultipartBody
|
||||
import okhttp3.ResponseBody
|
||||
|
||||
interface Repository {
|
||||
suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String>
|
||||
@@ -21,4 +32,14 @@ interface Repository {
|
||||
suspend fun getDeviceDataById(deviceId: String): DeviceData?
|
||||
abstract fun <UserData> addTestToDatabase(testDetails: UserData): Any
|
||||
// suspend fun addToDatabase(data: PatientDetails)
|
||||
|
||||
suspend fun login(loginRequest: LoginRequest): Result<LoginResponse>
|
||||
|
||||
suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result<MolbioV2ResultResponse>
|
||||
|
||||
suspend fun checkUpdate(checkUpdateRequest: CheckUpdateRequest): Result<CheckUpdateResponse>
|
||||
|
||||
suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): Result<ResponseBody>
|
||||
|
||||
suspend fun uploadLogs(logFile: MultipartBody.Part): Result<UploadLogsResponse>
|
||||
}
|
||||
@@ -52,12 +52,12 @@ import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
import javax.inject.Inject
|
||||
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
@HiltViewModel
|
||||
class HemoCubeViewModel @Inject constructor(
|
||||
private val hemoCubeDao: HemoCubeDao,
|
||||
private val hemoCubeBufferDao: HemoCubeBufferDao,
|
||||
private val repository: Repository,
|
||||
private val databaseRepository: DatabaseRepository,
|
||||
private val logFileManager: LogFileManager,
|
||||
private val localFileDataSource: LocalFileDataSource,
|
||||
context: Context,
|
||||
@@ -132,28 +132,28 @@ class HemoCubeViewModel @Inject constructor(
|
||||
|
||||
fun login(loginRequest: LoginRequest) = viewModelScope.launch {
|
||||
loginResponse.postValue(Result.Loading())
|
||||
databaseRepository.login(loginRequest).let {
|
||||
repository.login(loginRequest).let {
|
||||
loginResponse.postValue(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun uploadResult(molbioV2ResultRequest: MolbioV2ResultRequest) = viewModelScope.launch {
|
||||
resultUpload.postValue(Result.Loading())
|
||||
databaseRepository.uploadResults(molbioV2ResultRequest).let {
|
||||
repository.uploadResults(molbioV2ResultRequest).let {
|
||||
resultUpload.postValue(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun checkUpdate(checkUpdateRequest: CheckUpdateRequest) = viewModelScope.launch {
|
||||
checkUpdate.postValue(Result.Loading())
|
||||
databaseRepository.checkUpdate(checkUpdateRequest).let {
|
||||
repository.checkUpdate(checkUpdateRequest).let {
|
||||
checkUpdate.postValue(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest) = viewModelScope.launch {
|
||||
deviceUpdate.postValue(Result.Loading())
|
||||
databaseRepository.deviceUpdate(deviceUpdateRequest).let {
|
||||
repository.deviceUpdate(deviceUpdateRequest).let {
|
||||
deviceUpdate.postValue(it)
|
||||
}
|
||||
}
|
||||
@@ -175,7 +175,7 @@ class HemoCubeViewModel @Inject constructor(
|
||||
val multipartFile =
|
||||
requestBody?.let { MultipartBody.Part.createFormData("logFile", file?.name, it) }
|
||||
multipartFile?.let { partFile ->
|
||||
databaseRepository.uploadLogs(partFile).let { result ->
|
||||
repository.uploadLogs(partFile).let { result ->
|
||||
uploadLogs.postValue(result)
|
||||
}
|
||||
}
|
||||
@@ -244,7 +244,7 @@ class HemoCubeViewModel @Inject constructor(
|
||||
deviceData.postValue(deviceId?.let { repository.getDeviceDataById(it) })
|
||||
}
|
||||
|
||||
private fun parseData() {
|
||||
fun parseData() {
|
||||
testDetails?.deviceRatio = DataHolder.hemocubeResult
|
||||
testDetails?.resultData = DataHolder.hemoCubeTestData?.resultData.toString()
|
||||
testDetails?.location = DataHolder.location
|
||||
@@ -528,7 +528,7 @@ class HemoCubeViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun getCurrentDate(): String {
|
||||
fun getCurrentDate(): String {
|
||||
return SimpleDateFormat(
|
||||
"yyyy-MM-dd HH:mm:ss", Locale.getDefault()
|
||||
).format(Calendar.getInstance().time)
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
package com.example.hpostesting
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.view.View
|
||||
import com.example.hpostesting.data.constant.Constants
|
||||
import com.example.hpostesting.data.dao.HemoCubeBufferDao
|
||||
import com.example.hpostesting.data.dao.HemoCubeDao
|
||||
import com.example.hpostesting.data.datasource.LocalFileDataSource
|
||||
import com.example.hpostesting.data.repository.DatabaseRepository
|
||||
import com.example.hpostesting.data.repository.Repository
|
||||
import com.example.hpostesting.domain.LogFileManager
|
||||
import com.example.hpostesting.presentation.hemocube.HemoCubeFragment
|
||||
import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel
|
||||
import com.example.hpostesting.presentation.hemocube.HemocubeActivity
|
||||
@@ -10,11 +15,8 @@ import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBindi
|
||||
import junit.framework.TestCase.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentMatchers.any
|
||||
import org.mockito.ArgumentMatchers.anyString
|
||||
import org.mockito.ArgumentMatchers.eq
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
@@ -28,12 +30,47 @@ class HemocubeViewModelTest {
|
||||
@Mock
|
||||
private lateinit var mockBinding: FragmentHemoCubeReferenceBinding // Replace with your actual Binding class
|
||||
|
||||
@Mock
|
||||
private lateinit var mockContext: Context
|
||||
|
||||
@Mock
|
||||
private lateinit var hemoCubeDaoMock: HemoCubeDao
|
||||
|
||||
@Mock
|
||||
private lateinit var mockRepository: Repository
|
||||
|
||||
@Mock
|
||||
private lateinit var mockHemoCubeBufferDao: HemoCubeBufferDao
|
||||
|
||||
// @Mock
|
||||
// private lateinit var mockLogFileManager: LogFileManager
|
||||
//
|
||||
// @Mock
|
||||
// private lateinit var mockLocalFileDataSource: LocalFileDataSource
|
||||
|
||||
private lateinit var hemoCubeFragment: HemoCubeFragment
|
||||
|
||||
private lateinit var hemoCubeViewModel: HemoCubeViewModel
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
MockitoAnnotations.openMocks(this)
|
||||
hemoCubeFragment = HemoCubeFragment()
|
||||
// hemoCubeViewModel = HemoCubeViewModel(hemoCubeDaoMock, mockHemoCubeBufferDao, mockRepository, mockLogFileManager, mockLocalFileDataSource, mockContext)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `parseData test`() {
|
||||
assertEquals(1, 1)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `getCurrentDate returns date`() {
|
||||
// `when`(hemoCubeViewModel.getCurrentDate()).thenReturn("1705429433")
|
||||
//
|
||||
// val result = hemoCubeViewModel.getCurrentDate()
|
||||
//
|
||||
// assertEquals("1705429433", hemoCubeViewModel.getCurrentDate())
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user