From 8b65115887932db1733fea110c8be54727750502 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 19 Feb 2011 13:41:06 +0100 Subject: [PATCH] improve repository integration test --- .../java/sonia/scm/it/AbstractITCaseBase.java | 6 +- .../java/sonia/scm/it/RepositoryITCase.java | 61 ++++++++++++++++--- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/scm-webapp/src/test/java/sonia/scm/it/AbstractITCaseBase.java b/scm-webapp/src/test/java/sonia/scm/it/AbstractITCaseBase.java index 4b412407dd..d8d88d3bc6 100644 --- a/scm-webapp/src/test/java/sonia/scm/it/AbstractITCaseBase.java +++ b/scm-webapp/src/test/java/sonia/scm/it/AbstractITCaseBase.java @@ -69,9 +69,6 @@ public class AbstractITCaseBase /** Field description */ public static final String EXTENSION = ".xml"; - /** Field description */ - public static final String REPOSITORYTEST_TYPE = "git"; - //~--- methods -------------------------------------------------------------- /** @@ -85,6 +82,7 @@ public class AbstractITCaseBase ClientResponse cr = login(client, "scmadmin", "scmadmin"); ScmState state = cr.getEntity(ScmState.class); + cr.close(); assertNotNull(state); assertTrue(state.isSuccess()); @@ -166,5 +164,7 @@ public class AbstractITCaseBase assertNotNull(response); assertTrue(response.getStatus() == 200); + response.close(); + client.destroy(); } } diff --git a/scm-webapp/src/test/java/sonia/scm/it/RepositoryITCase.java b/scm-webapp/src/test/java/sonia/scm/it/RepositoryITCase.java index 8fc112e2b2..9b9e46b6ca 100644 --- a/scm-webapp/src/test/java/sonia/scm/it/RepositoryITCase.java +++ b/scm-webapp/src/test/java/sonia/scm/it/RepositoryITCase.java @@ -36,11 +36,15 @@ package sonia.scm.it; //~--- non-JDK imports -------------------------------------------------------- import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; import sonia.scm.repository.Permission; import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryTestData; +import sonia.scm.util.IOUtil; import static org.junit.Assert.*; @@ -50,6 +54,7 @@ import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.GenericType; import com.sun.jersey.api.client.WebResource; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -57,9 +62,45 @@ import java.util.Collection; * * @author Sebastian Sdorra */ +@RunWith(Parameterized.class) public class RepositoryITCase extends AbstractAdminITCaseBase { + /** + * Constructs ... + * + * + * @param repositoryType + */ + public RepositoryITCase(String repositoryType) + { + this.repositoryType = repositoryType; + } + + //~--- methods -------------------------------------------------------------- + + /** + * Method description + * + * + * @return + */ + @Parameters + public static Collection createParameters() + { + Collection params = new ArrayList(); + + params.add(new String[] { "git" }); + params.add(new String[] { "svn" }); + + if (IOUtil.search("hg") != null) + { + params.add(new String[] { "hg" }); + } + + return params; + } + /** * Method description * @@ -68,7 +109,7 @@ public class RepositoryITCase extends AbstractAdminITCaseBase public void create() { Repository repository = - RepositoryTestData.createHeartOfGold(REPOSITORYTEST_TYPE); + RepositoryTestData.createHeartOfGold(repositoryType); createRepository(repository); } @@ -81,8 +122,7 @@ public class RepositoryITCase extends AbstractAdminITCaseBase public void delete() { Repository repository = - RepositoryTestData.createHappyVerticalPeopleTransporter( - REPOSITORYTEST_TYPE); + RepositoryTestData.createHappyVerticalPeopleTransporter(repositoryType); repository = createRepository(repository); deleteRepository(repository.getId()); @@ -96,8 +136,7 @@ public class RepositoryITCase extends AbstractAdminITCaseBase // @Test public void doubleCreate() { - Repository repository = - RepositoryTestData.create42Puzzle(REPOSITORYTEST_TYPE); + Repository repository = RepositoryTestData.create42Puzzle(repositoryType); repository = createRepository(repository); @@ -112,8 +151,7 @@ public class RepositoryITCase extends AbstractAdminITCaseBase public void modify() { Repository repository = - RepositoryTestData.createHappyVerticalPeopleTransporter( - REPOSITORYTEST_TYPE); + RepositoryTestData.createHappyVerticalPeopleTransporter(repositoryType); repository = createRepository(repository); repository.setPermissions(Arrays.asList(new Permission("dent", @@ -143,8 +181,7 @@ public class RepositoryITCase extends AbstractAdminITCaseBase public void getAll() { Repository repository = - RepositoryTestData.createHappyVerticalPeopleTransporter( - REPOSITORYTEST_TYPE); + RepositoryTestData.createHappyVerticalPeopleTransporter(repositoryType); repository = createRepository(repository); @@ -208,7 +245,6 @@ public class RepositoryITCase extends AbstractAdminITCaseBase ClientResponse response = wr.post(ClientResponse.class, repository); assertNotNull(response); - System.out.println(response.getStatus()); assertTrue(response.getStatus() == 201); String url = response.getHeaders().get("Location").get(0); @@ -292,4 +328,9 @@ public class RepositoryITCase extends AbstractAdminITCaseBase return repository; } + + //~--- fields --------------------------------------------------------------- + + /** Field description */ + private String repositoryType; }