package io.robe.convert.xml;
import io.robe.convert.SamplePojo;
import io.robe.convert.TestData;
import io.robe.convert.common.OnItemHandler;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
public class XMLImporterTest {
private static final String ENCODING_UTF_16 = "UTF-16LE";
@Test
public void testImportStream() throws Exception {
XMLImporter<SamplePojo> xmlImporter = new XMLImporter<>(SamplePojo.class);
List<SamplePojo> list = xmlImporter.importStream(XMLImporterTest.class.getClassLoader().getResourceAsStream("sample.xml"));
assert list.size() == TestData.getData().size();
int index = 0;
for (SamplePojo item : list) {
SamplePojo ref = TestData.getData().get(index++);
assert item.equals(ref);
}
}
@Test
public void testImportStreamByItem() throws Exception {
XMLImporter<SamplePojo> importer = new XMLImporter<>(SamplePojo.class);
OnItemHandler<SamplePojo> handler = new OnItemHandler<SamplePojo>() {
@Override
public void onItem(SamplePojo samplePojo) {
}
};
importer.importStream(XMLImporterTest.class.getClassLoader().getResourceAsStream("sample.xml"), handler);
}
@Test
public void testImportStreamWithEncoding() throws Exception {
XMLImporter<SamplePojo> xmlImporter = new XMLImporter<>(SamplePojo.class);
List<SamplePojo> list = xmlImporter.importStream(XMLImporterTest.class.getClassLoader().getResourceAsStream("sampleUTF16.xml"), ENCODING_UTF_16);
assert list.size() == TestData.getData().size();
int index = 0;
for (SamplePojo item : list) {
SamplePojo ref = TestData.getData().get(index++);
assert item.equals(ref);
}
}
@Test
public void testImportStreamByItemWithEncoding() throws Exception {
XMLImporter<SamplePojo> importer = new XMLImporter<>(SamplePojo.class);
OnItemHandler<SamplePojo> handler = new OnItemHandler<SamplePojo>() {
@Override
public void onItem(SamplePojo samplePojo) {
}
};
importer.importStream(XMLImporterTest.class.getClassLoader().getResourceAsStream("sampleUTF16.xml"), handler, ENCODING_UTF_16);
}
@Test(expected = IOException.class)
public void testImportStreamWithError() throws Exception {
XMLImporter<SamplePojo> importer = new XMLImporter<>(SamplePojo.class);
OnItemHandler<SamplePojo> handler = new OnItemHandler<SamplePojo>() {
@Override
public void onItem(SamplePojo samplePojo) {
}
};
importer.importStream(XMLImporterTest.class.getClassLoader().getResourceAsStream("sampleError.xml"), handler);
}
}