/** * */ package org.minnal.instrument.entity.metadata; import static org.testng.Assert.assertEquals; import org.minnal.instrument.entity.AggregateRoot; import org.minnal.instrument.entity.Secure; import org.minnal.instrument.entity.Secure.Method; import org.minnal.instrument.entity.SecureMultiple; import org.testng.annotations.Test; import com.google.common.collect.Sets; /** * @author ganeshs * */ public class EntityMetaDataTest { @Test public void shouldPopulatePermissionMetaData() { EntityMetaData metaData = new EntityMetaData(DummyAggregateRoot.class); assertEquals(metaData.getPermissionMetaData().size(), 1); assertEquals(metaData.getPermissionMetaData(), Sets.newHashSet(new PermissionMetaData(Method.GET.getMethod(), Sets.newHashSet("permission1")))); } @Test public void shouldNotPopulatePermissionMetaDataForNonAggregateRoot() { EntityMetaData metaData = new EntityMetaData(DummyModel.class); assertEquals(metaData.getPermissionMetaData().size(), 0); } @Test public void shouldPopulateMultiplePermissionMetaData() { EntityMetaData metaData = new EntityMetaData(DummyAggregateRootWithMultiplePermissions.class); assertEquals(metaData.getPermissionMetaData().size(), 2); assertEquals(metaData.getPermissionMetaData(), Sets.newHashSet(new PermissionMetaData(Method.GET.getMethod(), Sets.newHashSet("permission1")), new PermissionMetaData(Method.POST.getMethod(), Sets.newHashSet("permission2", "permission3")))); } @Secure(method=Method.GET, permissions="permission1") public static class DummyModel { } @AggregateRoot @Secure(method=Method.GET, permissions="permission1") public static class DummyAggregateRoot { } @AggregateRoot @SecureMultiple({ @Secure(method=Method.GET, permissions="permission1"), @Secure(method=Method.POST, permissions={"permission2", "permission3"}) }) public static class DummyAggregateRootWithMultiplePermissions { } }