package com.example.hpostesting import android.content.Context import com.example.hpostesting.data.CsvWriter import org.junit.Assert import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) @Config(manifest = Config.NONE) class CsvWriterTest { private lateinit var csvWriter: CsvWriter private lateinit var context: Context @Before fun setUp() { context = androidx.test.core.app.ApplicationProvider.getApplicationContext() csvWriter = CsvWriter(context) } @Test fun writeCsv_Success() { // Arrange val fileName = "test.csv" val data = listOf( arrayOf("1", "A", "1990", "Positive", "2024-02-04", "image_url1", "John Doe"), arrayOf("2", "B", "1985", "Negative", "2024-02-05", "image_url2", "Jane Doe") ) // Act val result = csvWriter.writeCsv(fileName, data) // Assert Assert.assertTrue(result) } // @Test // fun writeCsv_Failure() { // // Arrange // val fileName = "test.csv" // val data = listOf( // arrayOf("1", "A", "1990", "Positive", "2024-02-04", "image_url1", "John Doe"), // arrayOf("2", "B", "1985", "Negative", "2024-02-05", "image_url2", "Jane Doe") // ) // // // Mocking Environment.getExternalStorageDirectory() // val mockFile = Mockito.mock(File::class.java) // Mockito.`when`(Environment.getExternalStorageDirectory()).thenReturn(mockFile) // Mockito.`when`(mockFile.exists()).thenReturn(true) // // // Mocking FileWriter to simulate IOException // val mockWriter = Mockito.mock(FileWriter::class.java) // Mockito.`when`(mockWriter.write(Mockito.anyString())).thenThrow(IOException::class.java) // Mockito.`when`(mockFile.absolutePath).thenReturn("/fake/path/to/file.csv") // Mockito.`when`(FileWriter(mockFile)).thenReturn(mockWriter) // // // Act // val result = csvWriter.writeCsv(fileName, data) // // // Assert // Assert.assertFalse("Expected writeCsv to fail", result) // } }