package com.example.hpostesting import android.content.Context import android.content.SharedPreferences 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 import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding import junit.framework.TestCase.assertEquals import org.junit.Before import org.junit.Test import org.mockito.ArgumentMatchers.anyString import org.mockito.Mock import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations class HemocubeViewModelTest { @Mock private lateinit var mockSharedPreferences: SharedPreferences @Mock private lateinit var mockActivity: HemocubeActivity // Replace with your actual Activity class @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.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 fun `extractMiddleString to get device id`() { // Arrange `when`(mockSharedPreferences.getString(anyString(), anyString())).thenReturn("dummy_value") // Act val deviceId = hemoCubeFragment.extractMiddleString("SNS HPP1-9000 SNE") // Assert assertEquals("HPP1-9000", deviceId) } @Test fun `updateDeviceId in shared pref`() { // Arrange `when`(mockSharedPreferences.getString(anyString(), anyString())).thenReturn("HPP1-0001") // Act val deviceId = mockSharedPreferences.getString(anyString(), anyString()) // Assert assertEquals("HPP1-0001", deviceId) } @Test fun `allReadingsComplete check`() { // Arrange val repeatReadingCount = 1 val readingsPerSample = 1 // Act val result = hemoCubeFragment.allReadingsComplete(repeatReadingCount, readingsPerSample) // Assert assertEquals(true, result) assertEquals(hemoCubeFragment.allReadingsComplete(0, 1), false) } }