package org.quaere.jpa; import org.junit.Test; import org.jmock.Mockery; import org.quaere.jpa.model.NamedEntity; import org.quaere.jpa.model.UnnamedEntity; import org.quaere.expressions.Identifier; import javax.persistence.Entity; import javax.persistence.EntityManager; import junit.framework.Assert; public class QueryableEntityTest { final Mockery context = new Mockery(); final EntityManager dummyManager = context.mock(EntityManager.class); @Test public void entityNameIsAliasForNamedEntities() { QueryableEntityManager manager = new QueryableEntityManager(dummyManager); QueryableEntity<NamedEntity> queryableEntity = manager.entity(NamedEntity.class); Assert.assertEquals("Named", queryableEntity.getEntityName()); } @Test public void entityNameIsClassNameForUnnamedEntities() { QueryableEntityManager manager = new QueryableEntityManager(dummyManager); QueryableEntity<UnnamedEntity> queryableEntity = manager.entity(UnnamedEntity.class); Assert.assertEquals("UnnamedEntity", queryableEntity.getEntityName()); } @Test public void identifierIsNotChanged() { Identifier identifer = new Identifier("id"); QueryableEntityManager manager = new QueryableEntityManager(dummyManager); QueryableEntity<UnnamedEntity> queryableEntity = manager.entity(UnnamedEntity.class); Assert.assertSame(identifer, queryableEntity.getSourceIdentifier(identifer)); } @Test public void annotationIsPresentWithNoName() { QueryableEntityManager manager = new QueryableEntityManager(dummyManager); QueryableEntity<AnnotatedUnnamedEntity> queryableEntity = manager.entity(AnnotatedUnnamedEntity.class); Assert.assertEquals("AnnotatedUnnamedEntity", queryableEntity.getEntityName()); } @Entity static class AnnotatedUnnamedEntity { } }