package crmdna.group;
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.common.ICode;
import crmdna.group.Group.GroupProp;
import crmdna.member.MemberProp;
import crmdna.user.User;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static crmdna.common.TestUtil.ensureResourceNotFoundException;
import static org.junit.Assert.assertEquals;
public class GroupHelperTest {
private final LocalServiceTestHelper datastoreHelper = new LocalServiceTestHelper(
new LocalDatastoreServiceTestConfig().setApplyAllHighRepJobPolicy());
private final String client = "isha";
private final String invalidClient = "invalid";
GroupProp chennai;
GroupProp sgp;
GroupProp kl;
@Before
public void setUp() {
datastoreHelper.setUp();
ObjectifyFilter.complete();
Client.create(client);
chennai = Group.create(client, "Chennai", User.SUPER_USER);
assertEquals(1, chennai.groupId);
sgp = Group.create(client, "Singpaore", User.SUPER_USER);
assertEquals(2, sgp.groupId);
kl = Group.create(client, "KL", User.SUPER_USER);
assertEquals(3, kl.groupId);
}
@Test
public void populateTest() {
MemberProp memberProp1 = new MemberProp();
memberProp1.groupIds.add(sgp.groupId);
memberProp1.groupIds.add(chennai.groupId);
memberProp1.groupIds.add((long) 100); // non existing group id
MemberProp memberProp2 = new MemberProp();
memberProp2.groupIds.add(sgp.groupId);
memberProp2.groupIds.add(chennai.groupId);
memberProp2.groupIds.add(kl.groupId);
final List<MemberProp> memberProps = new ArrayList<>();
memberProps.add(memberProp1);
memberProps.add(memberProp2);
GroupHelper.populateName(client, memberProps);
assertEquals(2, memberProp1.groups.size());
assertEquals(3, memberProp2.groups.size());
// client should be valid
ensureResourceNotFoundException(new ICode() {
@Override
public void run() {
GroupHelper.populateName(invalidClient, memberProps);
}
});
}
}