package services.export;
import helpers.JsonTest;
import models.Resource;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class CsvWithNestedIdsExporterTest implements JsonTest {
private final static CsvWithNestedIdsExporter mCsvExporter = new CsvWithNestedIdsExporter();
private Resource in1;
private Resource in2;
@Before
public void setup() throws IOException {
in1 = getResourceFromJsonFile("CsvWithNestedIdsExporterTest/testPlainExport.IN.1.json");
in2 = getResourceFromJsonFile("CsvWithNestedIdsExporterTest/testPlainExport.IN.2.json");
List<Resource> mockSearchResultItems = new ArrayList<>();
mockSearchResultItems.add(in1);
mockSearchResultItems.add(in2);
mCsvExporter.defineHeaderColumns(mockSearchResultItems);
}
@Test
public void testHeader() throws IOException {
assertEquals("@id;@type;address;authorOf;email;name", mCsvExporter.headerKeysToCsvString());
}
// FIXME: Wrap resources in records
//@Test
public void testPlainExport() throws IOException {
String csv1 = mCsvExporter.export(in1);
String csv2 = mCsvExporter.export(in2);
assertEquals("@id;@type;address;authorOf;name\n" +
"456;Person;Countrycountry, Streetstreet 1, 123456;123, 987;Hans Dampf\n", csv1);
assertEquals("@id;@type;authorOf;email;name\n" +
"345;Person;123;foo@bar.com;Hans Wurst\n", csv2);
}
}