From 60da1465d570f316b70815eb7e4fbac691fe00ad Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 29 Jan 2013 21:02:37 +0100 Subject: [PATCH] added unit tests for repository archive --- .../repository/RepositoryManagerTestBase.java | 66 +++++++++++++++++-- .../DefaultRepositoryManagerTest.java | 17 +++++ 2 files changed, 79 insertions(+), 4 deletions(-) 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 db6d6b509e..37ae3ebde3 100644 --- a/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java +++ b/scm-test/src/main/java/sonia/scm/repository/RepositoryManagerTestBase.java @@ -37,6 +37,7 @@ package sonia.scm.repository; import org.junit.Test; +import sonia.scm.Manager; import sonia.scm.ManagerTestBase; import static org.junit.Assert.*; @@ -55,6 +56,17 @@ public abstract class RepositoryManagerTestBase extends ManagerTestBase { + /** + * Method description + * + * + * @param archiveEnabled + * + * @return + */ + protected abstract RepositoryManager createRepositoryManager( + boolean archiveEnabled); + /** * Method description * @@ -96,11 +108,20 @@ public abstract class RepositoryManagerTestBase @Test public void testDelete() throws RepositoryException, IOException { - Repository heartOfGold = createTestRepository(); - String id = heartOfGold.getId(); + delete(manager, createTestRepository()); + } - manager.delete(heartOfGold); - assertNull(manager.get(id)); + /** + * Method description + * + * + * @throws IOException + * @throws RepositoryException + */ + @Test(expected = RepositoryIsNotArchivedException.class) + public void testDeleteNonArchived() throws RepositoryException, IOException + { + delete(createRepositoryManager(true), createTestRepository()); } /** @@ -116,6 +137,23 @@ public abstract class RepositoryManagerTestBase manager.delete(createRepositoryWithId()); } + /** + * Method description + * + * + * @throws IOException + * @throws RepositoryException + */ + @Test + public void testDeleteWithEnabledArchive() + throws RepositoryException, IOException + { + Repository repository = createTestRepository(); + + repository.setArchived(true); + delete(createRepositoryManager(true), repository); + } + /** * Method description * @@ -336,4 +374,24 @@ public abstract class RepositoryManagerTestBase { return createRepository(RepositoryTestData.createHeartOfGold()); } + + /** + * Method description + * + * + * @param manager + * @param repository + * + * @throws IOException + * @throws RepositoryException + */ + private void delete(Manager manager, + Repository repository) + throws RepositoryException, IOException + { + String id = repository.getId(); + + manager.delete(repository); + assertNull(manager.get(id)); + } } 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 ed7c00a90f..77f8882c62 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java @@ -120,6 +120,21 @@ public class DefaultRepositoryManagerTest extends RepositoryManagerTestBase */ @Override protected DefaultRepositoryManager createManager() + { + return createRepositoryManager(false); + } + + /** + * Method description + * + * + * @param archiveEnabled + * + * @return + */ + @Override + protected DefaultRepositoryManager createRepositoryManager( + boolean archiveEnabled) { Set handlerSet = new HashSet(); StoreFactory factory = new JAXBStoreFactory(); @@ -155,6 +170,8 @@ public class DefaultRepositoryManagerTest extends RepositoryManagerTestBase ScmConfiguration configuration = new ScmConfiguration(); + configuration.setEnableRepositoryArchive(archiveEnabled); + return new DefaultRepositoryManager(configuration, contextProvider, new DefaultKeyGenerator(), repositoryDAO, handlerSet, listenerProvider, hookProvider, createEmptyPreProcessorUtil());