package co.smartreceipts.android.workers.reports.csv;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.BOMInputStream;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import java.io.File;
import java.io.FileInputStream;
import static org.junit.Assert.*;
@RunWith(RobolectricTestRunner.class)
public class CsvReportWriterTest {
// Class under test
CsvReportWriter writer;
File outputFile = new File("csv.csv");
@Before
public void setUp() {
writer = new CsvReportWriter(outputFile);
}
@SuppressWarnings("ResultOfMethodCallIgnored")
@After
public void tearDown() throws Exception {
outputFile.delete();
}
@Test
public void write() throws Exception {
final String csv = "column1, column2, column3, column4,\nhello, שלום, привет, hello,";
writer.write(csv);
BOMInputStream bomInputStream = null;
try {
bomInputStream = new BOMInputStream(new FileInputStream(outputFile));
final String fileString = IOUtils.toString(bomInputStream, "UTF-8");
assertEquals(fileString, csv);
assertTrue(bomInputStream.hasBOM());
} finally {
IOUtils.closeQuietly(bomInputStream);
}
}
}