import org.junit.*; import java.util.*; import play.test.*; import models.*; public class LdapTest extends UnitTest { @Before //to do before EACH test public void setUp() { new LdapUser("flora.dupont@utt.fr", "test", "Flora", "Dupont", "flora.dupont").addUser(); LdapUser flo = LdapUser.connect("flora.dupont", "test"); ArrayList<String> myMembers = new ArrayList(); myMembers.add(flo.getLogin()); LdapGroup.createGroup("myFirstGroup", myMembers, flo); } @Test public void createUser() { int result = new LdapUser("firstname.lastname@utt.fr", "password", "Firstname", "Lastname", "firstname.lastname").addUser(); assertEquals(0, result); } @Test public void connect_OK() { LdapUser flo = LdapUser.connect("flora.dupont", "test"); assertNotNull(flo); } @Test public void connect_KO_no_user() { LdapUser wrong_user = LdapUser.connect("wrong.user", "wrong_password"); assertNull(wrong_user); } @Test public void connect_KO_wrong_password() { LdapUser flo = LdapUser.connect("flora.dupont", "wrong_password"); assertNull(flo); } @Test public void retrieveUserInfo() { LdapUser flo = LdapUser.connect("flora.dupont", "test"); assertEquals("Flora", flo.getFirstname()); assertEquals("Dupont", flo.getLastname()); assertEquals("flora.dupont@utt.fr", flo.getEmail()); } @Test public void updateUserInfo() { LdapUser flo = LdapUser.connect("flora.dupont", "test"); //update information flo.updateUser("flora.dupont@utt.fr", "new_password", "Arolf", "Tnopud"); //try to connect using old and new password LdapUser floModified = LdapUser.connect("flora.dupont", "new_password"); LdapUser floWithOldPwd = LdapUser.connect("flora.dupont", "test"); assertNull(floWithOldPwd); assertNotNull(floModified); assertEquals("flora.dupont@utt.fr", floModified.getEmail()); assertEquals("Arolf", floModified.getFirstname()); assertEquals("Tnopud", floModified.getLastname()); } @Test public void deleteUser() { new LdapUser("firstname.lastname@utt.fr", "password", "Firstname", "Lastname", "firstname.lastname").addUser(); LdapUser user = LdapUser.connect("firstname.lastname", "password"); user.deleteUser(); LdapUser userDeleted = LdapUser.connect("firstname.lastname", "password"); assertNotNull(user); assertNull(userDeleted); } @Test public void createGroup() { LdapUser flo = LdapUser.connect("flora.dupont", "test"); ArrayList<String> myMembers = new ArrayList(); myMembers.add(flo.getLogin()); int aGroup = LdapGroup.createGroup("MySecondGroup", myMembers, flo); assertEquals(0, aGroup); } @Test public void addSpecificMemberInGroup() { LdapUser flo = LdapUser.connect("flora.dupont", "test"); ArrayList<String> myMembers = new ArrayList(); new LdapUser("steve.bobbs@utt.fr", "password", "Steve", "Bobbs", "steve.bobbs").addUser(); LdapUser steve = LdapUser.connect("steve.bobbs", "password"); new LdapUser("michel.vaillant@utt.fr", "password", "Michel", "Vaillant", "michel.vaillant").addUser(); LdapUser michel = LdapUser.connect("michel.vaillant", "password"); new LdapUser("ken.baker@utt.fr", "password", "Ken", "Baker", "ken.baker").addUser(); LdapUser ken = LdapUser.connect("ken.baker", "password"); myMembers.add(flo.getLogin()); LdapGroup.createGroup("MySecondGroup", myMembers, flo); LdapGroup myGroup = LdapGroup.retrieve("mySecondGroup"); myGroup.addSpecificMember(steve.getLogin()); myGroup.addSpecificMember(michel.getLogin()); myGroup.addSpecificMember(ken.getLogin()); myGroup.displayGroupMembers(); } @Test public void removeSpecificMemberInGroup() { LdapUser flo = LdapUser.connect("flora.dupont", "test"); ArrayList<String> myMembers = new ArrayList(); myMembers.add(flo.getLogin()); LdapGroup.createGroup("MySecondGroup", myMembers, flo); new LdapUser("steve.bobbs@utt.fr", "password", "Steve", "Bobbs", "steve.bobbs").addUser(); LdapUser steve = LdapUser.connect("steve.bobbs", "password"); new LdapUser("michel.vaillant@utt.fr", "password", "Michel", "Vaillant", "michel.vaillant").addUser(); LdapUser michel = LdapUser.connect("michel.vaillant", "password"); new LdapUser("ken.baker@utt.fr", "password", "Ken", "Baker", "ken.baker").addUser(); LdapUser ken = LdapUser.connect("ken.baker", "password"); LdapGroup myGroup = LdapGroup.retrieve("mySecondGroup"); myGroup.addSpecificMember(steve.getLogin()); myGroup.addSpecificMember(michel.getLogin()); myGroup.addSpecificMember(ken.getLogin()); myGroup.removeSpecificMember(steve.getLogin()); myGroup.displayGroupMembers(); } @Test public void deleteGroup() { LdapGroup myGroup = LdapGroup.retrieve("myFirstGroup"); myGroup.deleteGroup(); LdapGroup myGroup2 = LdapGroup.retrieve("myFirstGroup"); assertNull(myGroup2); } @After //to do after EACH test public void setDown() { //delete Flora from Ldap LdapUser flo = LdapUser.connect("flora.dupont", "test"); if (flo == null) { flo = LdapUser.connect("flora.dupont", "new_password"); } flo.deleteUser(); //delete the user created during the test if any LdapUser user = LdapUser.connect("firstname.lastname", "password"); if (user != null) { user.deleteUser(); } LdapUser ken = LdapUser.connect("ken.baker", "password"); if (ken != null) { ken.deleteUser(); } LdapUser steve = LdapUser.connect("steve.bobbs", "password"); if (steve != null) { steve.deleteUser(); } LdapUser michel = LdapUser.connect("michel.vaillant", "password"); if (michel != null) { michel.deleteUser(); } LdapGroup myGroup = LdapGroup.retrieve("myFirstGroup"); if (myGroup != null) { myGroup.deleteGroup(); } LdapGroup myGroup2 = LdapGroup.retrieve("mySecondGroup"); if (myGroup2 != null) { myGroup2.deleteGroup(); } } }