package org.nishen.alma.toolkit; import java.util.Arrays; import java.util.Set; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.nishen.alma.toolkit.tasks.Task; import org.nishen.alma.toolkit.tasks.TaskListUsers; import org.reflections.Reflections; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestReflection { private static final Logger log = LoggerFactory.getLogger(TestReflection.class); private static Reflections r; @BeforeClass public static void setup() { r = new Reflections("org.nishen.alma.toolkit.tasks"); } @Test public void TestCheckTaskClasses() { log.debug("running test: {}", Arrays.asList(new Throwable().getStackTrace()).get(0).getMethodName()); Set<Class<? extends Task>> tasks = r.getSubTypesOf(Task.class); Assert.assertTrue("task does not exist: ListUsers", tasks.contains(TaskListUsers.class)); if (log.isDebugEnabled()) for (Class<? extends Task> c : tasks) log.debug("task class: {}", c.getName()); } }