package io.robe.convert.common;
import io.robe.convert.SamplePojo;
import io.robe.convert.common.annotation.Convert;
import org.junit.Test;
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.Map;
import static org.junit.Assert.*;
public class ConverterTest {
private class TestConverter extends Converter {
public TestConverter(Class dataClass) {
super(dataClass);
}
}
private class InnerSamplePojo extends SamplePojo{
@Convert
private String innerName;
}
@Test
public void getDataClass() throws Exception {
Converter converter = new TestConverter(SamplePojo.class);
assertEquals(SamplePojo.class, converter.getDataClass());
}
@Test
public void isSuitable() throws Exception {
Converter converter = new TestConverter(SamplePojo.class);
assertFalse(converter.isSuitable(null));
assertFalse(converter.isSuitable(SamplePojo.class.getDeclaredField("ignoreString").getDeclaredAnnotation(Convert.class)));
assertTrue(converter.isSuitable(SamplePojo.class.getDeclaredField("name").getDeclaredAnnotation(Convert.class)));
}
@Test
public void getFields() throws Exception {
Converter converter = new TestConverter(SamplePojo.class);
Collection<Converter.FieldEntry> fields = converter.getFields(SamplePojo.class);
assertEquals(10, fields.size()); // will not take ignored fields.
}
@Test
public void getAllFields() throws Exception {
Converter converter = new TestConverter(SamplePojo.class);
Collection<Converter.FieldEntry> fields = converter.getAllFields(InnerSamplePojo.class);
assertEquals(11, fields.size()); // will not take ignored fields.
}
@Test
public void getFieldMap() throws Exception {
Converter converter = new TestConverter(SamplePojo.class);
Map<String,Field> fields = converter.getFieldMap(InnerSamplePojo.class);
assertEquals(11, fields.size()); // will not take ignored fields.
}
}