]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java
Introduce SSH server.
[lgpl/argeo-commons.git] / org.argeo.enterprise / ext / test / org / argeo / osgi / useradmin / LdifUserAdminTest.java
index 06f1e6d2e19f5e9b1a5364b6d5edd5dad12f2e7f..748abe8353202b499e43ff4f92a142f8ff41b044 100644 (file)
@@ -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<Path>() {
+                               @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;
+                               }
+
+                       });
        }
 
 }