package com.example.hpostesting import android.content.SharedPreferences import android.view.View import com.example.hpostesting.data.constant.Constants 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.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 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 private lateinit var hemoCubeFragment: HemoCubeFragment @Before fun setUp() { MockitoAnnotations.initMocks(this) hemoCubeFragment = HemoCubeFragment() } @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) } }