X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fext%2Ftest%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifUserAdminTest.java;h=748abe8353202b499e43ff4f92a142f8ff41b044;hb=9885228c89ca6da1835c1c3e098c92589d76301e;hp=06f1e6d2e19f5e9b1a5364b6d5edd5dad12f2e7f;hpb=77a5498dd5d10d2442127022efd6501a7dbddbae;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 06f1e6d2e..748abe835 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 @@ -2,40 +2,44 @@ package org.argeo.osgi.useradmin; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; import java.util.Arrays; import java.util.Base64; import java.util.Dictionary; import java.util.Hashtable; import java.util.List; -import java.util.UUID; import javax.transaction.TransactionManager; -import junit.framework.TestCase; - +import org.argeo.naming.LdapAttrs; +import org.argeo.transaction.simple.SimpleTransactionManager; import org.osgi.service.useradmin.Authorization; import org.osgi.service.useradmin.Group; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; -import bitronix.tm.BitronixTransactionManager; -import bitronix.tm.TransactionManagerServices; -import bitronix.tm.resource.ehcache.EhCacheXAResourceProducer; +import junit.framework.TestCase; public class LdifUserAdminTest extends TestCase implements BasicTestConstants { - private BitronixTransactionManager tm; + final static int TM_SIMPLE = 0; + final static int TM_BITRONIX = 1; + + private int tmType = TM_SIMPLE; + private TransactionManager tm; private URI uri; private AbstractUserDirectory userAdmin; + private Path tempDir; - public void testConcurrent() throws Exception { - } + // public void testConcurrent() throws Exception { + // } - @SuppressWarnings("unchecked") public void testEdition() throws Exception { User demoUser = (User) userAdmin.getRole(DEMO_USER_DN); assertNotNull(demoUser); @@ -96,8 +100,8 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { // credentials byte[] hashedPassword = ("{SHA}" + Base64.getEncoder().encodeToString(DigestUtils.sha1("demo".getBytes()))) .getBytes(); - assertTrue(rootUser.hasCredential(LdifName.userPassword.name(), hashedPassword)); - assertTrue(demoUser.hasCredential(LdifName.userPassword.name(), hashedPassword)); + assertTrue(rootUser.hasCredential(LdapAttrs.userPassword.name(), hashedPassword)); + assertTrue(demoUser.hasCredential(LdapAttrs.userPassword.name(), hashedPassword)); // search Role[] search = userAdmin.getRoles(null); @@ -133,7 +137,8 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { @Override protected void setUp() throws Exception { - Path tempDir = Files.createTempDirectory(getClass().getName()); + tempDir = Files.createTempDirectory(getClass().getName()); + tempDir.toFile().deleteOnExit(); String uriProp = System.getProperty("argeo.userdirectory.uri"); if (uriProp != null) uri = new URI(uriProp); @@ -146,11 +151,17 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { uri = ldifPath.toUri(); } - 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(); + // 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); } @@ -168,13 +179,15 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { userAdmin = new LdifUserAdmin(props); userAdmin.init(); // JTA - EhCacheXAResourceProducer.registerXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); +// if (TM_BITRONIX == tmType) +// EhCacheXAResourceProducer.registerXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); userAdmin.setTransactionManager(tm); return userAdmin; } private void persistAndRestart() { - EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); +// if (TM_BITRONIX == tmType) +// EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); if (userAdmin instanceof LdifUserAdmin) ((LdifUserAdmin) userAdmin).save(); userAdmin.destroy(); @@ -183,10 +196,27 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { @Override protected void tearDown() throws Exception { - EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); - tm.shutdown(); +// if (TM_BITRONIX == tmType) { +// EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); +// ((BitronixTransactionManager) tm).shutdown(); +// } if (userAdmin != null) userAdmin.destroy(); + if (tempDir != null) + Files.walkFileTree(tempDir, new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.delete(file); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { + Files.delete(dir); + return FileVisitResult.CONTINUE; + } + + }); } }