Skip to content
Snippets Groups Projects
Commit 6b2786a8 authored by Dustin Jenkins's avatar Dustin Jenkins
Browse files

AC2: Fix tests.

parent f8e1a0fe
No related branches found
No related tags found
No related merge requests found
# This are the configuration fields required by the Ldap ldap-dao unit tests # This are the configuration fields required by the Ldap ldap-dao unit tests
# Tests are more accurate running on Port 636. If it fails due to SSL/Security
# issues, then make very sure the ca.crt (gimli2.cadc.dao.nrc.ca:~miscsw/ca.crt)
# is installed in your Java Keystore:
# scp gimli2.cadc.dao.nrc.ca:~miscsw/ca.crt /tmp/ca.crt
# ${JAVA_HOME}/bin/keytool -importcert -keystore ${JAVA_HOME}/jre/lib/security/cacerts -file /tmp/ca.crt
server = proc5-03.cadc.dao.nrc.ca server = proc5-03.cadc.dao.nrc.ca
port = 636 port = 636
proxyUser = webproxy proxyUser = testproxy
usersDn = ou=Users,ou=ds,dc=canfar,dc=net usersDn = ou=Users,ou=ds,dc=testcanfar
userRequestsDN = ou=UserRequests,ou=ds,dc=testcanfar userRequestsDN = ou=UserRequests,ou=ds,dc=testcanfar
newUsersDn = ou=NewUsers,ou=ds,dc=canfar,dc=net groupsDn = ou=Groups,ou=ds,dc=testcanfar
groupsDn = ou=Groups,ou=ds,dc=canfar,dc=net adminGroupsDn = ou=adminGroups,ou=ds,dc=testcanfar
adminGroupsDn = ou=adminGroups,ou=ds,dc=canfar,dc=net \ No newline at end of file
\ No newline at end of file
...@@ -97,10 +97,10 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -97,10 +97,10 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
static String testUserDN; static String testUserDN;
static User<X500Principal> testUser; static User<X500Principal> testUser;
static LdapConfig config; static LdapConfig config;
@BeforeClass @BeforeClass
public static void setUpBeforeClass() public static void setUpBeforeClass()
throws Exception throws Exception
{ {
Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG); Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG);
...@@ -118,12 +118,12 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -118,12 +118,12 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
{ {
return new LdapUserDAO(config); return new LdapUserDAO(config);
} }
String getUserID() String getUserID()
{ {
return "CadcDaoTestUser-" + System.currentTimeMillis(); return "CadcDaoTestUser-" + System.currentTimeMillis();
} }
/** /**
* Test of addUser method, of class LdapUserDAO. * Test of addUser method, of class LdapUserDAO.
*/ */
...@@ -143,7 +143,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -143,7 +143,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
User<HttpPrincipal> actual = getUserDAO().addUser(userRequest); User<HttpPrincipal> actual = getUserDAO().addUser(userRequest);
check(expected, actual); check(expected, actual);
} }
/** /**
* Test of getUser method, of class LdapUserDAO. * Test of getUser method, of class LdapUserDAO.
*/ */
...@@ -160,9 +160,10 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -160,9 +160,10 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
{ {
try try
{ {
User<X500Principal> actual = getUserDAO().getUser(testUser.getUserID()); User<X500Principal> actual = getUserDAO()
.getUser(testUser.getUserID());
check(testUser, actual); check(testUser, actual);
return null; return null;
} }
catch (Exception e) catch (Exception e)
...@@ -189,19 +190,25 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -189,19 +190,25 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
public Object run() throws Exception public Object run() throws Exception
{ {
try try
{ {
Collection<DN> groups = getUserDAO().getUserGroups(testUser.getUserID(), false); Collection<DN> groups =
assertNotNull(groups); getUserDAO().getUserGroups(testUser.getUserID(),
assertTrue(!groups.isEmpty()); false);
assertNotNull("Groups should not be null.", groups);
for (DN groupDN : groups) for (DN groupDN : groups)
{
log.debug(groupDN); log.debug(groupDN);
}
groups = getUserDAO().getUserGroups(testUser.getUserID(), true);
assertNotNull(groups); groups = getUserDAO().getUserGroups(testUser.getUserID(),
assertTrue(!groups.isEmpty()); true);
assertNotNull("Groups should not be null.", groups);
for (DN groupDN : groups) for (DN groupDN : groups)
{
log.debug(groupDN); log.debug(groupDN);
}
return null; return null;
} }
catch (Exception e) catch (Exception e)
...@@ -211,7 +218,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -211,7 +218,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
} }
}); });
} }
/** /**
* Test of getUserGroups method, of class LdapUserDAO. * Test of getUserGroups method, of class LdapUserDAO.
*/ */
...@@ -227,14 +234,17 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -227,14 +234,17 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
public Object run() throws Exception public Object run() throws Exception
{ {
try try
{ {
boolean isMember = getUserDAO().isMember(testUser.getUserID(), "foo"); boolean isMember =
assertFalse(isMember); getUserDAO().isMember(testUser.getUserID(), "foo");
assertFalse("Membership should not exist.", isMember);
String groupDN = "cn=cadcdaotestgroup1," + config.getGroupsDN();
isMember = getUserDAO().isMember(testUser.getUserID(), groupDN); String groupDN = "cn=cadcdaotestgroup1,"
assertTrue(isMember); + config.getGroupsDN();
isMember = getUserDAO().isMember(testUser.getUserID(),
groupDN);
assertTrue("Membership should exist.", isMember);
return null; return null;
} }
catch (Exception e) catch (Exception e)
...@@ -244,7 +254,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -244,7 +254,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
} }
}); });
} }
/** /**
* Test of getMember. * Test of getMember.
*/ */
...@@ -260,8 +270,9 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -260,8 +270,9 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
public Object run() throws Exception public Object run() throws Exception
{ {
try try
{ {
User<X500Principal> actual = getUserDAO().getMember(new DN(testUserDN)); User<X500Principal> actual = getUserDAO()
.getMember(new DN(testUserDN));
check(testUser, actual); check(testUser, actual);
return null; return null;
} }
...@@ -271,7 +282,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -271,7 +282,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
} }
} }
}); });
// should also work as a different user // should also work as a different user
subject = new Subject(); subject = new Subject();
subject.getPrincipals().add(new HttpPrincipal("CadcDaoTest2")); subject.getPrincipals().add(new HttpPrincipal("CadcDaoTest2"));
...@@ -282,19 +293,20 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -282,19 +293,20 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
public Object run() throws Exception public Object run() throws Exception
{ {
try try
{ {
User<X500Principal> actual = getUserDAO().getMember(new DN(testUserDN)); User<X500Principal> actual = getUserDAO()
.getMember(new DN(testUserDN));
check(testUser, actual); check(testUser, actual);
return null; return null;
} }
catch (Exception e) catch (Exception e)
{ {
throw new Exception("Problems", e); throw new Exception("Problems", e);
} }
} }
}); });
} }
/** /**
* Test of testGetCadcUserIDs. * Test of testGetCadcUserIDs.
*/ */
...@@ -302,36 +314,38 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -302,36 +314,38 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
public void testGetCadcUserIDs() throws Exception public void testGetCadcUserIDs() throws Exception
{ {
Subject subject = new Subject(); Subject subject = new Subject();
// anonymous access // anonymous access
int users1 = (Integer)Subject.doAs(subject, new PrivilegedExceptionAction<Object>() int users1 = (Integer) Subject
{ .doAs(subject, new PrivilegedExceptionAction<Object>()
public Object run() throws Exception
{
try
{
int count = getUserDAO().getCadcIDs().size();
assertTrue(count > 0);
return count;
}
catch (Exception e)
{ {
throw new Exception("Problems", e); public Object run() throws Exception
} {
} try
}); {
int count = getUserDAO().getCadcIDs().size();
assertTrue(count > 0);
return count;
}
catch (Exception e)
{
throw new Exception("Problems", e);
}
}
});
// authenticated access // authenticated access
subject.getPrincipals().add(testUser.getUserID()); subject.getPrincipals().add(testUser.getUserID());
int users2 = (Integer)Subject.doAs(subject, new PrivilegedExceptionAction<Object>() int users2 = (Integer) Subject
.doAs(subject, new PrivilegedExceptionAction<Object>()
{ {
public Object run() throws Exception public Object run() throws Exception
{ {
try try
{ {
int count = getUserDAO().getCadcIDs().size(); int count = getUserDAO().getCadcIDs().size();
assertTrue(count > 0); assertTrue(count > 0);
return count; return count;
...@@ -343,27 +357,27 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -343,27 +357,27 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
} }
}); });
assertEquals("User listing should be independent of the access type", assertEquals("User listing should be independent of the access type",
users1, users2); users1, users2);
} }
private static void check(final User<? extends Principal> user1, final User<? extends Principal> user2) private static void check(final User<? extends Principal> user1, final User<? extends Principal> user2)
{ {
assertEquals(user1, user2); assertEquals(user1, user2);
assertEquals(user1.details, user2.details); assertEquals(user1.details, user2.details);
assertEquals(user1.details.size(), user2.details.size()); assertEquals(user1.details.size(), user2.details.size());
assertEquals(user1.getIdentities(), user2.getIdentities()); assertEquals(user1.getIdentities(), user2.getIdentities());
for(UserDetails d1 : user1.details) for (UserDetails d1 : user1.details)
{ {
assertTrue(user2.details.contains(d1)); assertTrue(user2.details.contains(d1));
if(d1 instanceof PersonalDetails) if (d1 instanceof PersonalDetails)
{ {
PersonalDetails pd1 = (PersonalDetails)d1; PersonalDetails pd1 = (PersonalDetails) d1;
boolean found = false; boolean found = false;
for(UserDetails d2 : user2.details) for (UserDetails d2 : user2.details)
{ {
if(d2 instanceof PersonalDetails) if (d2 instanceof PersonalDetails)
{ {
PersonalDetails pd2 = (PersonalDetails)d2; PersonalDetails pd2 = (PersonalDetails) d2;
assertEquals(pd1, pd2); // already done in contains above but just in case assertEquals(pd1, pd2); // already done in contains above but just in case
assertEquals(pd1.address, pd2.address); assertEquals(pd1.address, pd2.address);
assertEquals(pd1.city, pd2.city); assertEquals(pd1.city, pd2.city);
...@@ -376,7 +390,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest ...@@ -376,7 +390,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
} }
} }
} }
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment