package siena.core.test;
import java.lang.reflect.Field;
import java.util.List;
import junit.framework.TestCase;
import siena.ClassInfo;
import siena.base.test.model.SampleModelMultipleKeys;
public class ClassInfoTest extends TestCase {
public void testAcceptedFields() {
ClassInfo info = ClassInfo.getClassInfo(SampleModelMultipleKeys.class);
assertNotNull(info);
List<Field> fields = null;
fields = info.allFields;
assertEquals(5, info.allFields.size());
assertEquals("id", fields.get(0).getName());
assertEquals("key", fields.get(1).getName());
assertEquals("privateField", fields.get(2).getName());
assertEquals("publicField", fields.get(3).getName());
assertEquals("relationship", fields.get(4).getName());
assertFalse(fields.contains("query"));
assertFalse(fields.contains("clazz"));
assertFalse(fields.contains("foobar"));
assertFalse(fields.contains("ignoredData"));
fields = info.generatedKeys;
assertEquals(1, fields.size());
assertEquals("id", fields.get(0).getName());
fields = info.insertFields;
assertEquals(4, fields.size());
assertEquals("key", fields.get(0).getName());
assertEquals("privateField", fields.get(1).getName());
assertEquals("publicField", fields.get(2).getName());
assertEquals("relationship", fields.get(3).getName());
fields = info.updateFields;
assertEquals(3, fields.size());
assertEquals("privateField", fields.get(0).getName());
assertEquals("publicField", fields.get(1).getName());
assertEquals("relationship", fields.get(2).getName());
String[] columns = ClassInfo.getColumnNames(fields.get(2));
assertNotNull(columns);
assertEquals(2, columns.length);
assertEquals("p_id", columns[0]);
assertEquals("p_key", columns[1]);
fields = info.keys;
assertEquals(2, fields.size());
assertEquals("id", fields.get(0).getName());
assertEquals("key", fields.get(1).getName());
assertEquals("SampleModelMultipleKeys", info.tableName);
}
}