package de.jpaw.bonaparte.core.tests;
import org.testng.Assert;
import org.testng.annotations.Test;
import de.jpaw.bonaparte.core.BonaPortableFactory;
import de.jpaw.bonaparte.pojos.meta.ClassDefinition;
import de.jpaw.bonaparte.pojos.meta.FieldDefinition;
import de.jpaw.bonaparte.pojos.meta.XEnumSetDefinition;
import de.jpaw.bonaparte.util.FieldGetter;
public class PathResolverTest {
static {
BonaPortableFactory.init(); // required here, tests will fail if omitted
}
private void info() {
System.out.println(ClassDefinition.meta$$fields.getLowerBound() == null ? "NULL!!!!!" : "ok");
}
@Test
public void testPathResolving1() throws Exception {
ClassDefinition obj = XEnumSetDefinition.BClass.INSTANCE.getMetaData();
FieldDefinition f = FieldGetter.getFieldDefinitionForPathname(obj, "baseXEnum");
Assert.assertEquals(f, XEnumSetDefinition.meta$$baseXEnum);
}
@Test
public void testPathResolving2() throws Exception {
ClassDefinition obj = ClassDefinition.BClass.INSTANCE.getMetaData();
FieldDefinition f = FieldGetter.getFieldDefinitionForPathname(obj, "fields[2].dataCategory");
Assert.assertEquals(f, FieldDefinition.meta$$dataCategory);
}
@Test
public void testPathResolving12() throws Exception {
info();
ClassDefinition obj = XEnumSetDefinition.BClass.INSTANCE.getMetaData();
FieldDefinition f = FieldGetter.getFieldDefinitionForPathname(obj, "baseXEnum");
Assert.assertEquals(f, XEnumSetDefinition.meta$$baseXEnum);
ClassDefinition obj2 = ClassDefinition.BClass.INSTANCE.getMetaData();
FieldDefinition f2 = FieldGetter.getFieldDefinitionForPathname(obj2, "fields[2].dataCategory");
Assert.assertEquals(f2, FieldDefinition.meta$$dataCategory);
}
}