/**
*
*/
package org.minnal.instrument.entity.metadata.handler;
import static org.testng.Assert.assertEquals;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import org.minnal.instrument.entity.Action;
import org.minnal.instrument.entity.EntityKey;
import org.minnal.instrument.entity.Searchable;
import org.minnal.instrument.metadata.handler.AbstractAnnotationHandler;
import org.testng.annotations.Test;
/**
* @author ganeshs
*
*/
public class AbstractEntityAnnotationHandlerTest {
@Test
public void shouldGetActionAnnotationHandler() throws Exception {
final class c { @Action("action") public void actionMethod() {} }
Action action = c.class.getDeclaredMethod("actionMethod").getAnnotation(Action.class);
assertEquals(AbstractAnnotationHandler.handlerFor(action).getClass(), ActionAnnotationHandler.class);
}
@Test
public void shouldGetEntityKeyAnnotationHandler() throws Exception {
final class c { @EntityKey private String field; }
EntityKey key = c.class.getDeclaredField("field").getAnnotation(EntityKey.class);
assertEquals(AbstractAnnotationHandler.handlerFor(key).getClass(), EntityKeyAnnotationHandler.class);
}
@Test
public void shouldGetSearchableAnnotationHandler() throws Exception {
final class c { @Searchable private String field; }
Searchable key = c.class.getDeclaredField("field").getAnnotation(Searchable.class);
assertEquals(AbstractAnnotationHandler.handlerFor(key).getClass(), SearchableAnnotationHandler.class);
}
@Test
public void shouldGetOneToManyAnnotationHandler() throws Exception {
final class c { @OneToMany private String field; }
OneToMany key = c.class.getDeclaredField("field").getAnnotation(OneToMany.class);
assertEquals(AbstractAnnotationHandler.handlerFor(key).getClass(), OneToManyAnnotationHandler.class);
}
@Test
public void shouldGetOneToOneAnnotationHandler() throws Exception {
final class c { @OneToOne private String field; }
OneToOne key = c.class.getDeclaredField("field").getAnnotation(OneToOne.class);
assertEquals(AbstractAnnotationHandler.handlerFor(key).getClass(), OneToOneAnnotationHandler.class);
}
@Test
public void shouldGetManyToManyAnnotationHandler() throws Exception {
final class c { @ManyToMany private String field; }
ManyToMany key = c.class.getDeclaredField("field").getAnnotation(ManyToMany.class);
assertEquals(AbstractAnnotationHandler.handlerFor(key).getClass(), ManyToManyAnnotationHandler.class);
}
@Test
public void shouldGetManyToOneAnnotationHandler() throws Exception {
final class c { @ManyToOne private String field; }
ManyToOne key = c.class.getDeclaredField("field").getAnnotation(ManyToOne.class);
assertEquals(AbstractAnnotationHandler.handlerFor(key).getClass(), ManyToOneAnnotationHandler.class);
}
}