improve repository manager test base

This commit is contained in:
Sebastian Sdorra
2013-01-29 21:55:08 +01:00
parent bab2901dd0
commit d165baffe9
4 changed files with 42 additions and 21 deletions

View File

@@ -179,7 +179,8 @@ public class AbstractTestBase
//~--- methods -------------------------------------------------------------- //~--- 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() protected void clearSubject()
{ {
@@ -242,8 +243,6 @@ public class AbstractTestBase
subjectThreadState.bind(); subjectThreadState.bind();
} }
;
//~--- fields --------------------------------------------------------------- //~--- fields ---------------------------------------------------------------
/** Field description */ /** Field description */

View File

@@ -35,11 +35,15 @@ package sonia.scm.repository;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import org.apache.shiro.subject.Subject;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import sonia.scm.HandlerEvent; import sonia.scm.HandlerEvent;
import sonia.scm.Manager; import sonia.scm.Manager;
import sonia.scm.ManagerTestBase; import sonia.scm.ManagerTestBase;
import sonia.scm.util.MockUtil;
import static org.junit.Assert.*; import static org.junit.Assert.*;
@@ -354,6 +358,22 @@ public abstract class RepositoryManagerTestBase
assertEquals(2, hook.eventsReceived); assertEquals(2, hook.eventsReceived);
} }
//~--- set methods ----------------------------------------------------------
/**
* Method description
*
*/
@Before
public void setAdminSubject()
{
Subject admin = MockUtil.createAdminSubject();
setSubject(admin);
}
//~--- methods --------------------------------------------------------------
/** /**
* Method description * Method description
* *

View File

@@ -39,6 +39,7 @@ import com.google.inject.Provider;
import org.apache.shiro.authz.Permission; import org.apache.shiro.authz.Permission;
import org.apache.shiro.subject.PrincipalCollection; import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.SimplePrincipalCollection;
import org.apache.shiro.subject.Subject; import org.apache.shiro.subject.Subject;
import org.mockito.invocation.InvocationOnMock; import org.mockito.invocation.InvocationOnMock;
@@ -46,6 +47,7 @@ import org.mockito.stubbing.Answer;
import sonia.scm.SCMContextProvider; import sonia.scm.SCMContextProvider;
import sonia.scm.user.User; import sonia.scm.user.User;
import sonia.scm.user.UserTestData;
import sonia.scm.web.security.DummyWebSecurityContext; import sonia.scm.web.security.DummyWebSecurityContext;
import sonia.scm.web.security.WebSecurityContext; import sonia.scm.web.security.WebSecurityContext;
@@ -119,6 +121,24 @@ public class MockUtil
return subject; 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 ---------------------------------------------------------- //~--- get methods ----------------------------------------------------------
/** /**

View File

@@ -37,9 +37,6 @@ package sonia.scm.repository;
import com.google.inject.Provider; import com.google.inject.Provider;
import org.apache.shiro.subject.Subject;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import sonia.scm.Type; import sonia.scm.Type;
@@ -48,7 +45,6 @@ import sonia.scm.repository.xml.XmlRepositoryDAO;
import sonia.scm.security.DefaultKeyGenerator; import sonia.scm.security.DefaultKeyGenerator;
import sonia.scm.store.JAXBStoreFactory; import sonia.scm.store.JAXBStoreFactory;
import sonia.scm.store.StoreFactory; import sonia.scm.store.StoreFactory;
import sonia.scm.util.MockUtil;
import static org.junit.Assert.*; import static org.junit.Assert.*;
@@ -96,20 +92,6 @@ public class DefaultRepositoryManagerTest extends RepositoryManagerTestBase
assertNull(m.getFromUri("/git/project1/test-3/ka/some/path")); 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 -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
/** /**