ref #9359 upgrade TaxEditor to log4j2
[taxeditor.git] / eu.etaxonomy.taxeditor.test / src / test / java / eu / etaxonomy / taxeditor / httpinvoker / RemotingSessionAwareTest.java
index 2ef07d2aa874041b1d8883821401acd849038009..c44d337d87934cd460e3c344d79186600b56a84b 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2015 EDIT
 * European Distributed Institute of Taxonomy
@@ -9,12 +8,19 @@
 */
 package eu.etaxonomy.taxeditor.httpinvoker;
 
-import org.apache.log4j.Logger;
+import java.util.UUID;
+
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.junit.After;
 import org.junit.Before;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.model.permission.Group;
+import eu.etaxonomy.cdm.model.permission.User;
+import eu.etaxonomy.taxeditor.remoting.cache.ConversationalTransientEntityCacher;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.MockSessionOwner;
 
@@ -25,21 +31,50 @@ import eu.etaxonomy.taxeditor.session.MockSessionOwner;
  */
 public abstract class RemotingSessionAwareTest extends BaseRemotingTest {
 
-    private static final Logger logger = Logger.getLogger(RemotingSessionAwareTest.class);
+    private static final Logger logger = LogManager.getLogger(RemotingSessionAwareTest.class);
 
-    protected CdmTransientEntityCacher cacher;
+    protected ConversationalTransientEntityCacher cacher;
     protected MockSessionOwner sessionOwner;
 
+    private static String extraUsername = "Someone";
+    private static String extraPassword = "Password";
+    private static UUID editorGroupUuid = UUID.fromString("22e5e8af-b99c-4884-a92f-71978efd3770");
+
+
+    private IUserService userService = getRemoteApplicationController().getUserService();
 
     @Before
     public void initializeSession() {
 
-        sessionOwner = new MockSessionOwner();
+        sessionOwner = new MockSessionOwner<>();
         logger.info("created mock session owner : " + sessionOwner);
         ICdmEntitySession cdmEntitySession = cdmEntitySessionManager.newSession(sessionOwner, true);
         CdmApplicationState.getCurrentDataChangeService().register(sessionOwner);
         sessionOwner.setCdmEntitySession(cdmEntitySession);
         cacher = getCacher(sessionOwner);
+
+        UserDetails extraUser = null;
+
+        try {
+            extraUser = userService.loadUserByUsername(extraUsername);
+            Group editorGroup = getRemoteApplicationController().getGroupService().find(editorGroupUuid);
+            if (!((User)extraUser).getGroups().contains(editorGroup)){
+                ((User)extraUser).getGroups().add(editorGroup);
+                userService.merge(((User)extraUser), true);
+
+            }
+        } catch (UsernameNotFoundException unfe) {
+            UserDetails user = User.NewInstance(extraUsername, extraPassword);
+            user = userService.save((User)user);
+            //user = userService.find(((User)user).getUuid());
+            Group editorGroup = getRemoteApplicationController().getGroupService().find(editorGroupUuid);
+            ((User)user).getGroups().add(editorGroup);
+            userService.merge(((User)user), true);
+
+
+        }
+
+
     }
 
     @After
@@ -48,4 +83,11 @@ public abstract class RemotingSessionAwareTest extends BaseRemotingTest {
         CdmApplicationState.getCurrentDataChangeService().unregister(sessionOwner);
         logger.info("disposed of mock session owner : " + sessionOwner);
     }
+
+
+    protected static void authenticateExtraUser() {
+
+        authenticate(extraUsername, extraPassword);
+    }
+
 }