package org.simpleflatmapper.csv.test;
import org.junit.Test;
import org.simpleflatmapper.csv.CellValueReader;
import org.simpleflatmapper.csv.CellValueReaderFactory;
import org.simpleflatmapper.csv.CsvColumnDefinition;
import org.simpleflatmapper.csv.CsvMapper;
import org.simpleflatmapper.csv.CsvMapperFactory;
import org.simpleflatmapper.csv.ParsingContext;
import org.simpleflatmapper.csv.ParsingContextFactoryBuilder;
import org.simpleflatmapper.test.beans.DbObject;
import java.io.IOException;
import java.io.StringReader;
import java.lang.reflect.Type;
import static org.junit.Assert.assertEquals;
public class CsvMapperCustomReaderFactoryTest {
@Test
public void testCustomReaderFactory() throws IOException {
CsvMapper<DbObject> mapper = CsvMapperFactory.newInstance().failOnAsm(true).cellValueReaderFactory(new CellValueReaderFactory() {
@Override
public <P> CellValueReader<P> getReader(Type propertyType, int index, CsvColumnDefinition columnDefinition, ParsingContextFactoryBuilder builder) {
return new CellValueReader<P>() {
@SuppressWarnings("unchecked")
@Override
public P read(char[] chars, int offset, int length, ParsingContext parsingContext) {
return (P) "Hello!";
}
};
}
}).newBuilder(DbObject.class).addMapping("name").mapper();
DbObject bop = mapper.iterator(new StringReader("bop")).next();
assertEquals("Hello!", bop.getName());
}
}