From d165baffe9de1f3f87d668862881b99dbf3036cf Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 29 Jan 2013 21:55:08 +0100 Subject: [PATCH] improve repository manager test base --- .../main/java/sonia/scm/AbstractTestBase.java | 5 ++--- .../repository/RepositoryManagerTestBase.java | 20 +++++++++++++++++++ .../main/java/sonia/scm/util/MockUtil.java | 20 +++++++++++++++++++ .../DefaultRepositoryManagerTest.java | 18 ----------------- 4 files changed, 42 insertions(+), 21 deletions(-) diff --git a/scm-test/src/main/java/sonia/scm/AbstractTestBase.java b/scm-test/src/main/java/sonia/scm/AbstractTestBase.java index 2a8a43ad7a..b991b67c4f 100644 --- a/scm-test/src/main/java/sonia/scm/AbstractTestBase.java +++ b/scm-test/src/main/java/sonia/scm/AbstractTestBase.java @@ -179,7 +179,8 @@ public class AbstractTestBase //~--- methods -------------------------------------------------------------- /** - * Clears Shiro's thread state, ensuring the thread remains clean for future test execution. + * Clears Shiro's thread state, ensuring the thread remains clean for + * future test execution. */ protected void clearSubject() { @@ -242,8 +243,6 @@ public class AbstractTestBase subjectThreadState.bind(); } - ; - //~--- fields --------------------------------------------------------------- /** Field description */ 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 d800abf59d..7bacc31faa 100644 --- a/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java +++ b/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java @@ -35,11 +35,15 @@ package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- +import org.apache.shiro.subject.Subject; + +import org.junit.Before; import org.junit.Test; import sonia.scm.HandlerEvent; import sonia.scm.Manager; import sonia.scm.ManagerTestBase; +import sonia.scm.util.MockUtil; import static org.junit.Assert.*; @@ -354,6 +358,22 @@ public abstract class RepositoryManagerTestBase assertEquals(2, hook.eventsReceived); } + //~--- set methods ---------------------------------------------------------- + + /** + * Method description + * + */ + @Before + public void setAdminSubject() + { + Subject admin = MockUtil.createAdminSubject(); + + setSubject(admin); + } + + //~--- methods -------------------------------------------------------------- + /** * Method description * diff --git a/scm-test/src/main/java/sonia/scm/util/MockUtil.java b/scm-test/src/main/java/sonia/scm/util/MockUtil.java index bb6a0a1ca8..ab663d360a 100644 --- a/scm-test/src/main/java/sonia/scm/util/MockUtil.java +++ b/scm-test/src/main/java/sonia/scm/util/MockUtil.java @@ -39,6 +39,7 @@ import com.google.inject.Provider; import org.apache.shiro.authz.Permission; import org.apache.shiro.subject.PrincipalCollection; +import org.apache.shiro.subject.SimplePrincipalCollection; import org.apache.shiro.subject.Subject; import org.mockito.invocation.InvocationOnMock; @@ -46,6 +47,7 @@ import org.mockito.stubbing.Answer; import sonia.scm.SCMContextProvider; import sonia.scm.user.User; +import sonia.scm.user.UserTestData; import sonia.scm.web.security.DummyWebSecurityContext; import sonia.scm.web.security.WebSecurityContext; @@ -119,6 +121,24 @@ public class MockUtil return subject; } + /** + * Method description + * + * + * @return + */ + public static Subject createUserSubject() + { + SimplePrincipalCollection collection = new SimplePrincipalCollection(); + User user = UserTestData.createTrillian(); + + collection.add(user.getName(), "junit"); + collection.add(user, "junit"); + + return new Subject.Builder().principals(collection).authenticated( + true).buildSubject(); + } + //~--- get methods ---------------------------------------------------------- /** 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 77f8882c62..28fa3f862c 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java @@ -37,9 +37,6 @@ package sonia.scm.repository; import com.google.inject.Provider; -import org.apache.shiro.subject.Subject; - -import org.junit.Before; import org.junit.Test; import sonia.scm.Type; @@ -48,7 +45,6 @@ import sonia.scm.repository.xml.XmlRepositoryDAO; import sonia.scm.security.DefaultKeyGenerator; import sonia.scm.store.JAXBStoreFactory; import sonia.scm.store.StoreFactory; -import sonia.scm.util.MockUtil; import static org.junit.Assert.*; @@ -96,20 +92,6 @@ public class DefaultRepositoryManagerTest extends RepositoryManagerTestBase assertNull(m.getFromUri("/git/project1/test-3/ka/some/path")); } - //~--- set methods ---------------------------------------------------------- - - /** - * Method description - * - */ - @Before - public void setAdminSubject() - { - Subject admin = MockUtil.createAdminSubject(); - - setSubject(admin); - } - //~--- methods -------------------------------------------------------------- /**