package com.khmelenko.lab.varis; import android.content.Context; import com.khmelenko.lab.varis.util.FileUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.annotation.Config; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** * Tests for FileUtils * * @author Dmytro Khmelenko (d.khmelenko@gmail.com) */ @RunWith(RobolectricGradleTestRunner.class) @Config(constants = BuildConfig.class, sdk = 21) public class TestFileUtils { @Before public void setupMock() { } @Test public void testReadFile() throws Exception { final String fileName = "test.txt"; Context context = mock(Context.class); File file = mock(File.class); FileInputStream stream = mock(FileInputStream.class); when(context.getFileStreamPath(fileName)).thenReturn(file); when(file.exists()).thenReturn(true); when(context.openFileInput(fileName)).thenReturn(stream); FileUtils.readInternalFile(fileName, context); verify(context).getFileStreamPath(fileName); verify(context).openFileInput(fileName); } @Test public void testWriteFile() throws Exception { final String fileName = "test.txt"; final String body = "content"; final int mode = Context.MODE_PRIVATE; Context context = mock(Context.class); FileOutputStream stream = mock(FileOutputStream.class); when(context.openFileOutput(fileName, mode)).thenReturn(stream); FileUtils.writeInternalFile(fileName, body, context); verify(context).openFileOutput(fileName, mode); } @Test public void testDeleteFile() throws Exception { final String fileName = "test.txt"; Context context = mock(Context.class); FileUtils.deleteInternalFile(fileName, context); verify(context).deleteFile(fileName); } }