/** * */ package org.minnal.instrument.entity.metadata; import static org.testng.Assert.assertEquals; import java.util.Set; 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.AggregateRoot; import org.minnal.instrument.entity.EntityKey; import org.minnal.instrument.entity.Searchable; import org.testng.annotations.Test; /** * @author ganeshs * */ public class EntityMetaDataBuilderTest { @Test public void shouldBuildEntityMetaData() { EntityMetaDataBuilder builder = new EntityMetaDataBuilder(DummyEntity.class); EntityMetaData metaData = builder.build(); assertEquals(metaData.getActionMethods().size(), 1); assertEquals(metaData.getSearchFields().size(), 1); assertEquals(metaData.getEntityKey(), "field3"); assertEquals(metaData.getCollections().size(), 2); assertEquals(metaData.getAssociations().size(), 2); } @Test public void shouldBuildUnderEntityMetaData() { EntityMetaDataBuilder builder = new EntityMetaDataBuilder(DummyUnderEntity.class); EntityMetaData metaData = builder.build(); assertEquals(metaData.getSearchFields().size(), 2); } @AggregateRoot class DummyEntity{ @Searchable String field1; @OneToMany Set<DummyEntity> field2; @EntityKey String field3; @ManyToOne String field5; @ManyToMany String field6; @OneToOne String field7; @Action("action") public String getField4() { return null; } } @AggregateRoot class DummyUnderEntity extends DummyEntity{ @Searchable private String field8; /** * @return the field8 */ public String getField8() { return field8; } /** * @param field8 the field8 to set */ public void setField8(String field8) { this.field8 = field8; } } }