package crmdna.user; import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig; import com.google.appengine.tools.development.testing.LocalServiceTestHelper; import com.googlecode.objectify.ObjectifyFilter; import crmdna.client.Client; import crmdna.group.Group; import crmdna.group.Group.GroupProp; import crmdna.user.User.GroupLevelPrivilege; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class UserHelperTest { private final LocalServiceTestHelper datastoreHelper = new LocalServiceTestHelper( new LocalDatastoreServiceTestConfig().setApplyAllHighRepJobPolicy()); // local implementation / test harness implementation becomes HRD // only if setApplyAllHighRepJobPolicy is set. If the implementation is not // HRD then // cross group transactions would fail (as master slave does not support it) String client = "isha"; GroupProp sgp; GroupProp kl; @Before public void setUp() { datastoreHelper.setUp(); ObjectifyFilter.complete(); Client.create(client); sgp = Group.create(client, "Singapore", User.SUPER_USER); assertEquals(1, sgp.groupId); kl = Group.create(client, "KL", User.SUPER_USER); assertEquals(2, kl.groupId); } @After public void tearDown() { ObjectifyFilter.complete(); datastoreHelper.tearDown(); } @Test public void getGroupIdsWithPrivilegeTest() { UserProp userProp = User.create(client, "email1@dummy.com", sgp.groupId, User.SUPER_USER); User.addGroupLevelPrivilege(client, sgp.groupId, userProp.email, GroupLevelPrivilege.CHECK_IN, User.SUPER_USER); User.addGroupLevelPrivilege(client, kl.groupId, userProp.email, GroupLevelPrivilege.CHECK_IN, User.SUPER_USER); Set<Long> groupIds = UserHelper.getGroupIdsWithPrivilage(client, userProp.email, GroupLevelPrivilege.CHECK_IN); assertEquals(2, groupIds.size()); assertTrue(groupIds.contains(sgp.groupId)); assertTrue(groupIds.contains(kl.groupId)); } }