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 895e5e0d2b..724571461a 100644 --- a/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java +++ b/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java @@ -40,7 +40,6 @@ import com.github.legman.Subscribe; import org.apache.shiro.subject.Subject; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import sonia.scm.HandlerEvent; @@ -66,6 +65,16 @@ public abstract class RepositoryManagerTestBase extends ManagerTestBase { + /** + * Method description + * + * + * @param repository + * + * @return + */ + public abstract HookContext createHookContext(Repository repository); + /** * Method description * @@ -346,7 +355,6 @@ public abstract class RepositoryManagerTestBase * @throws RepositoryException */ @Test - @Ignore public void testRepositoryHook() throws RepositoryException, IOException { CountingReceiveHook hook = new CountingReceiveHook(); @@ -357,9 +365,7 @@ public abstract class RepositoryManagerTestBase assertEquals(0, hook.eventsReceived); Repository repository = createTestRepository(); - - // TODO - HookContext ctx = null; + HookContext ctx = createHookContext(repository); repoManager.fireHookEvent(new RepositoryHookEvent(ctx, repository, RepositoryHookType.POST_RECEIVE)); @@ -508,12 +514,24 @@ public abstract class RepositoryManagerTestBase * * @param event */ - @Subscribe + @Subscribe(async = false) public void onEvent(PostReceiveRepositoryHookEvent event) { eventsReceived++; } + /** + * Method description + * + * + * @param event + */ + @Subscribe(async = false) + public void onEvent(PreReceiveRepositoryHookEvent event) + { + eventsReceived++; + } + //~--- fields ------------------------------------------------------------- /** Field description */ 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 e2c7c2f5e8..e0c67da45a 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java @@ -36,9 +36,15 @@ package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- import org.junit.Test; +import org.junit.runner.RunWith; + +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; import sonia.scm.Type; import sonia.scm.config.ScmConfiguration; +import sonia.scm.repository.api.HookContext; +import sonia.scm.repository.api.HookFeature; import sonia.scm.repository.xml.XmlRepositoryDAO; import sonia.scm.security.DefaultKeyGenerator; import sonia.scm.store.JAXBStoreFactory; @@ -46,6 +52,8 @@ import sonia.scm.store.StoreFactory; import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + //~--- JDK imports ------------------------------------------------------------ import java.io.IOException; @@ -57,9 +65,32 @@ import java.util.Set; * * @author Sebastian Sdorra */ +@RunWith(PowerMockRunner.class) +@PrepareForTest(HookContext.class) public class DefaultRepositoryManagerTest extends RepositoryManagerTestBase { + /** + * Method description + * + * + * @param repository + * + * @return + */ + @Override + public HookContext createHookContext(Repository repository) + { + HookContext ctx = mock(HookContext.class); + + when(ctx.isFeatureSupported(any(HookFeature.class))).thenReturn( + Boolean.FALSE); + + return ctx; + } + + //~--- get methods ---------------------------------------------------------- + /** * Method description *