diff --git a/scm-core/pom.xml b/scm-core/pom.xml
index 7045c52051..5712172e07 100644
--- a/scm-core/pom.xml
+++ b/scm-core/pom.xml
@@ -126,7 +126,7 @@
${ssp.version}
true
-
+
diff --git a/scm-test/pom.xml b/scm-test/pom.xml
index a839d36dde..6c9f5f598e 100644
--- a/scm-test/pom.xml
+++ b/scm-test/pom.xml
@@ -33,6 +33,12 @@
junit
${junit.version}
+
+
+ com.github.sdorra
+ shiro-unit
+ 1.0.0
+
org.mockito
diff --git a/scm-test/src/main/java/sonia/scm/ManagerTestBase.java b/scm-test/src/main/java/sonia/scm/ManagerTestBase.java
index ccf34a0629..24bd2a0ebb 100644
--- a/scm-test/src/main/java/sonia/scm/ManagerTestBase.java
+++ b/scm-test/src/main/java/sonia/scm/ManagerTestBase.java
@@ -33,6 +33,13 @@
package sonia.scm;
+import java.io.IOException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.rules.TemporaryFolder;
+import sonia.scm.util.MockUtil;
+
/**
*
* @author Sebastian Sdorra
@@ -40,10 +47,28 @@ package sonia.scm;
* @param
* @param
*/
-public abstract class ManagerTestBase extends AbstractTestBase
+public abstract class ManagerTestBase
{
+ @Rule
+ public TemporaryFolder tempFolder = new TemporaryFolder();
+
+ protected SCMContextProvider contextProvider;
+
+ protected Manager manager;
+
+ @Before
+ public void setUp() throws IOException {
+ contextProvider = MockUtil.getSCMContextProvider(tempFolder.newFolder());
+ manager = createManager();
+ manager.init(contextProvider);
+ }
+
+ @After
+ public void tearDown() throws IOException {
+ manager.close();
+ }
+
/**
* Method description
*
@@ -52,33 +77,4 @@ public abstract class ManagerTestBase createManager();
- /**
- * Method description
- *
- *
- * @throws Exception
- */
- @Override
- protected void postSetUp() throws Exception
- {
- manager = createManager();
- manager.init(contextProvider);
- }
-
- /**
- * Method description
- *
- *
- * @throws Exception
- */
- @Override
- protected void preTearDown() throws Exception
- {
- manager.close();
- }
-
- //~--- fields ---------------------------------------------------------------
-
- /** Field description */
- protected Manager manager;
}
diff --git a/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java b/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java
index e8d8caf603..bd12ab67be 100644
--- a/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java
+++ b/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java
@@ -36,6 +36,7 @@ package sonia.scm.repository;
//~--- non-JDK imports --------------------------------------------------------
import com.github.legman.Subscribe;
+import com.github.sdorra.shiro.SubjectAware;
import org.apache.shiro.subject.Subject;
@@ -47,7 +48,6 @@ import sonia.scm.Manager;
import sonia.scm.ManagerTestBase;
import sonia.scm.event.ScmEventBus;
import sonia.scm.repository.api.HookContext;
-import sonia.scm.util.MockUtil;
import static org.junit.Assert.*;
@@ -61,8 +61,7 @@ import java.util.Collection;
*
* @author Sebastian Sdorra
*/
-public abstract class RepositoryManagerTestBase
- extends ManagerTestBase
+public abstract class RepositoryManagerTestBase extends ManagerTestBase
{
/**
@@ -378,19 +377,6 @@ public abstract class RepositoryManagerTestBase
assertEquals(2, hook.eventsReceived);
}
- //~--- set methods ----------------------------------------------------------
-
- /**
- * Method description
- *
- */
- @Before
- public void setAdminSubject()
- {
- Subject admin = MockUtil.createAdminSubject();
-
- setSubject(admin);
- }
//~--- methods --------------------------------------------------------------
diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml
index 06a76353d7..7fcbfba541 100644
--- a/scm-webapp/pom.xml
+++ b/scm-webapp/pom.xml
@@ -243,6 +243,13 @@
+
+ com.github.sdorra
+ shiro-unit
+ 1.0.0
+ test
+
+
sonia.scm.plugins
scm-git-plugin
diff --git a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java
index 94c9c2b4df..4de03b3f11 100644
--- a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java
@@ -35,6 +35,8 @@ package sonia.scm.repository;
//~--- non-JDK imports --------------------------------------------------------
+import com.github.sdorra.shiro.ShiroRule;
+import com.github.sdorra.shiro.SubjectAware;
import com.google.common.collect.ImmutableSet;
import org.junit.Test;
@@ -60,14 +62,23 @@ import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
+import org.junit.Rule;
/**
*
* @author Sebastian Sdorra
*/
+@SubjectAware(
+ username = "trillian",
+ password = "secret",
+ configuration = "classpath:sonia/scm/repository/shiro.ini"
+)
public class DefaultRepositoryManagerTest extends RepositoryManagerTestBase
{
+ @Rule
+ public ShiroRule shiro = new ShiroRule();
+
/**
* Method description
*
diff --git a/scm-webapp/src/test/java/sonia/scm/user/DefaultUserManagerTest.java b/scm-webapp/src/test/java/sonia/scm/user/DefaultUserManagerTest.java
index 9931e52ad7..8a4894fa11 100644
--- a/scm-webapp/src/test/java/sonia/scm/user/DefaultUserManagerTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/user/DefaultUserManagerTest.java
@@ -35,6 +35,8 @@ package sonia.scm.user;
//~--- non-JDK imports --------------------------------------------------------
+import com.github.sdorra.shiro.ShiroRule;
+import com.github.sdorra.shiro.SubjectAware;
import com.google.common.collect.Lists;
import org.junit.Before;
@@ -51,13 +53,22 @@ import static org.mockito.Mockito.*;
import java.util.Collections;
import java.util.List;
+import org.junit.Rule;
/**
*
* @author Sebastian Sdorra
*/
+@SubjectAware(
+ username = "trillian",
+ password = "secret",
+ configuration = "classpath:sonia/scm/repository/shiro.ini"
+)
public class DefaultUserManagerTest extends UserManagerTestBase
{
+
+ @Rule
+ public ShiroRule shiro = new ShiroRule();
/**
* Method description
@@ -107,18 +118,6 @@ public class DefaultUserManagerTest extends UserManagerTestBase
verify(userDAO, times(2)).add(any(User.class));
}
- //~--- set methods ----------------------------------------------------------
-
- /**
- * Method description
- *
- */
- @Before
- public void setAdminSubject()
- {
- setSubject(MockUtil.createAdminSubject());
- }
-
//~--- methods --------------------------------------------------------------
/**
diff --git a/scm-webapp/src/test/resources/sonia/scm/repository/shiro.ini b/scm-webapp/src/test/resources/sonia/scm/repository/shiro.ini
new file mode 100644
index 0000000000..ac6822a96d
--- /dev/null
+++ b/scm-webapp/src/test/resources/sonia/scm/repository/shiro.ini
@@ -0,0 +1,5 @@
+[users]
+trillian = secret, admin
+
+[roles]
+admin = *