X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fext%2Ftest%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifUserAdminTest.java;h=1d6b0f3a5d80bcfef29b0af53b3e01fcd7066c1d;hb=438237c2b8c995d4f9562d53bfe4ea63c4442054;hp=748abe8353202b499e43ff4f92a142f8ff41b044;hpb=9885228c89ca6da1835c1c3e098c92589d76301e;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java b/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java index 748abe835..1d6b0f3a5 100644 --- a/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java +++ b/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java @@ -27,7 +27,11 @@ import org.osgi.service.useradmin.User; import junit.framework.TestCase; +/** {@link LdifUserAdmin} tests. */ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { + // We have to keep using JUnit because of + // https://issues.apache.org/jira/browse/SUREFIRE-1669 + final static int TM_SIMPLE = 0; final static int TM_BITRONIX = 1; @@ -37,20 +41,52 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { private AbstractUserDirectory userAdmin; private Path tempDir; - // public void testConcurrent() throws Exception { - // } + public void setUp() { + System.out.println("Enter setUp()"); + try { + tempDir = Files.createTempDirectory(getClass().getName()); + tempDir.toFile().deleteOnExit(); + String uriProp = System.getProperty("argeo.userdirectory.uri"); + if (uriProp != null) + uri = new URI(uriProp); + else { + tempDir.toFile().deleteOnExit(); + Path ldifPath = tempDir.resolve(BASE_DN + ".ldif"); + try (InputStream in = getClass().getResource("basic.ldif").openStream()) { + Files.copy(in, ldifPath); + } + uri = ldifPath.toUri(); + } + + // Init transaction manager + if (TM_SIMPLE == tmType) { + tm = new SimpleTransactionManager(); + } +// else if (TM_BITRONIX == tmType) { +// bitronix.tm.Configuration tmConf = TransactionManagerServices.getConfiguration(); +// tmConf.setServerId(UUID.randomUUID().toString()); +// tmConf.setLogPart1Filename(new File(tempDir.toFile(), "btm1.tlog").getAbsolutePath()); +// tmConf.setLogPart2Filename(new File(tempDir.toFile(), "btm2.tlog").getAbsolutePath()); +// tm = TransactionManagerServices.getTransactionManager(); +// } + + userAdmin = initUserAdmin(uri, tm); + } catch (Exception e) { + throw new RuntimeException(e); + } + } public void testEdition() throws Exception { User demoUser = (User) userAdmin.getRole(DEMO_USER_DN); - assertNotNull(demoUser); + assert demoUser != null; tm.begin(); String newName = "demo"; demoUser.getProperties().put("cn", newName); - assertEquals(newName, demoUser.getProperties().get("cn")); + assert newName.equals(demoUser.getProperties().get("cn")); tm.commit(); persistAndRestart(); - assertEquals(newName, demoUser.getProperties().get("cn")); + assert newName.equals(demoUser.getProperties().get("cn")); tm.begin(); userAdmin.removeRole(DEMO_USER_DN); @@ -59,59 +95,59 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { // check data Role[] search = userAdmin.getRoles("(objectclass=inetOrgPerson)"); - assertEquals(1, search.length); + assert 1 == search.length; Group editorGroup = (Group) userAdmin.getRole(EDITORS_GROUP_DN); - assertNotNull(editorGroup); + assert editorGroup != null; Role[] members = editorGroup.getMembers(); - assertEquals(1, members.length); + assert 1 == members.length; } public void testRetrieve() throws Exception { // users User rootUser = (User) userAdmin.getRole(ROOT_USER_DN); - assertNotNull(rootUser); + assert rootUser != null; User demoUser = (User) userAdmin.getRole(DEMO_USER_DN); - assertNotNull(demoUser); + assert demoUser != null; // groups Group adminGroup = (Group) userAdmin.getRole(ADMIN_GROUP_DN); - assertNotNull(adminGroup); + assert adminGroup != null; Role[] members = adminGroup.getMembers(); - assertEquals(1, members.length); - assertEquals(rootUser, members[0]); + assert 1 == members.length; + assert rootUser.equals(members[0]); Group editorGroup = (Group) userAdmin.getRole(EDITORS_GROUP_DN); - assertNotNull(editorGroup); + assert editorGroup != null; members = editorGroup.getMembers(); - assertEquals(2, members.length); - assertEquals(adminGroup, members[0]); - assertEquals(demoUser, members[1]); + assert 2 == members.length; + assert adminGroup.equals(members[0]); + assert demoUser.equals(members[1]); Authorization rootAuth = userAdmin.getAuthorization(rootUser); List rootRoles = Arrays.asList(rootAuth.getRoles()); - assertEquals(3, rootRoles.size()); - assertTrue(rootRoles.contains(ROOT_USER_DN)); - assertTrue(rootRoles.contains(ADMIN_GROUP_DN)); - assertTrue(rootRoles.contains(EDITORS_GROUP_DN)); + assert 3 == rootRoles.size(); + assert rootRoles.contains(ROOT_USER_DN); + assert rootRoles.contains(ADMIN_GROUP_DN); + assert rootRoles.contains(EDITORS_GROUP_DN); // properties - assertEquals("root@localhost", rootUser.getProperties().get("mail")); + assert "root@localhost".equals(rootUser.getProperties().get("mail")); // credentials byte[] hashedPassword = ("{SHA}" + Base64.getEncoder().encodeToString(DigestUtils.sha1("demo".getBytes()))) .getBytes(); - assertTrue(rootUser.hasCredential(LdapAttrs.userPassword.name(), hashedPassword)); - assertTrue(demoUser.hasCredential(LdapAttrs.userPassword.name(), hashedPassword)); + assert rootUser.hasCredential(LdapAttrs.userPassword.name(), hashedPassword); + assert demoUser.hasCredential(LdapAttrs.userPassword.name(), hashedPassword); // search Role[] search = userAdmin.getRoles(null); - assertEquals(4, search.length); + assert 4 == search.length; search = userAdmin.getRoles("(objectClass=groupOfNames)"); - assertEquals(2, search.length); + assert 2 == search.length; search = userAdmin.getRoles("(objectclass=inetOrgPerson)"); - assertEquals(2, search.length); + assert 2 == search.length; search = userAdmin.getRoles("(&(objectclass=inetOrgPerson)(uid=demo))"); - assertEquals(1, search.length); + assert 1 == search.length; } public void testReadWriteRead() throws Exception { @@ -129,43 +165,12 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { ((LdifUserAdmin) userAdmin).load(in); } Role[] search = userAdmin.getRoles(null); - assertEquals(4, search.length); + assert 4 == search.length; } else { // test not relevant for LDAP } } - @Override - protected void setUp() throws Exception { - tempDir = Files.createTempDirectory(getClass().getName()); - tempDir.toFile().deleteOnExit(); - String uriProp = System.getProperty("argeo.userdirectory.uri"); - if (uriProp != null) - uri = new URI(uriProp); - else { - tempDir.toFile().deleteOnExit(); - Path ldifPath = tempDir.resolve(BASE_DN + ".ldif"); - try (InputStream in = getClass().getResource("basic.ldif").openStream()) { - Files.copy(in, ldifPath); - } - uri = ldifPath.toUri(); - } - - // Init transaction manager - if (TM_SIMPLE == tmType) { - tm = new SimpleTransactionManager(); - } -// else if (TM_BITRONIX == tmType) { -// bitronix.tm.Configuration tmConf = TransactionManagerServices.getConfiguration(); -// tmConf.setServerId(UUID.randomUUID().toString()); -// tmConf.setLogPart1Filename(new File(tempDir.toFile(), "btm1.tlog").getAbsolutePath()); -// tmConf.setLogPart2Filename(new File(tempDir.toFile(), "btm2.tlog").getAbsolutePath()); -// tm = TransactionManagerServices.getTransactionManager(); -// } - - userAdmin = initUserAdmin(uri, tm); - } - private AbstractUserDirectory initUserAdmin(URI uri, TransactionManager tm) { Dictionary props = new Hashtable<>(); props.put(UserAdminConf.uri.name(), uri.toString()); @@ -194,8 +199,7 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { userAdmin = initUserAdmin(uri, tm); } - @Override - protected void tearDown() throws Exception { + public void tearDown() throws Exception { // if (TM_BITRONIX == tmType) { // EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); // ((BitronixTransactionManager) tm).shutdown();