package cz.cvut.fel.adaptiverestfulapi.meta.reflection; import cz.cvut.fel.adaptiverestfulapi.meta.ConfigurationInspectionListener; import cz.cvut.fel.adaptiverestfulapi.meta.ModelInspectionListener; import cz.cvut.fel.adaptiverestfulapi.meta.data.Provider; import org.testng.annotations.Test; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Set; public class ReflectionTest { @Test(dataProvider = "packages", dataProviderClass = Provider.class) public void testLeafs(String pack, Class baseClass, ModelInspectionListener modeler, ConfigurationInspectionListener configurator) throws Exception { Reflection reflection = new Reflection(pack, baseClass); Set<Class<?>> leafs = reflection.leafs(baseClass); assert (leafs.size() > 0) : "There should be leaf classes."; assert (leafs.size() == 2) : "There should 2 leaf classes."; } @Test(dataProvider = "packages", dataProviderClass = Provider.class) public void testTriplets(String pack, Class baseClass, ModelInspectionListener modeler, ConfigurationInspectionListener configurator) throws Exception { Reflection reflection = new Reflection(pack, baseClass); Set<Class<?>> leafs = reflection.leafs(baseClass); for (Class<?> clazz : leafs) { Set<Triplet<Field, Method, Method>> triplets = reflection.triplets(clazz); int size = 0; if (clazz.getName().endsWith("Issue")) { size = 3; } else if (clazz.getName().endsWith("Project")) { size = 5; } assert (triplets.size() == size) : "Class " + clazz.getCanonicalName() + " should have " + size + " triplets, has " + triplets.size() + "."; } } }