Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Hohenegger2015-05-16 12:26:58 +0000
committerMax Hohenegger2015-05-18 12:00:34 +0000
commit4558da7a8d900efe2e2c434ef4dac1685d12eca0 (patch)
tree9ce3d2342fa446f29889f8e1bb9f34713236703c /org.eclipse.egit.gitflow.test
parentd9e1cd1f26f7a636c700b18ca9a94f6b9b101d13 (diff)
downloadegit-4558da7a8d900efe2e2c434ef4dac1685d12eca0.tar.gz
egit-4558da7a8d900efe2e2c434ef4dac1685d12eca0.tar.xz
egit-4558da7a8d900efe2e2c434ef4dac1685d12eca0.zip
[gitflow] fixed unnecessary locking of resources
Bug: 348610 Change-Id: I370109d91e55719a3850cab4a7bb054fcfaa82a9 Signed-off-by: Max Hohenegger <eclipse@hohenegger.eu>
Diffstat (limited to 'org.eclipse.egit.gitflow.test')
-rw-r--r--org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/GitFlowRepositoryTest.java15
-rw-r--r--org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureStartOperationTest.java6
-rw-r--r--org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/HotfixStartOperationTest.java5
-rw-r--r--org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/ReleaseStartOperationTest.java53
4 files changed, 71 insertions, 8 deletions
diff --git a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/GitFlowRepositoryTest.java b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/GitFlowRepositoryTest.java
index 62a8fab98e..5380c936b6 100644
--- a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/GitFlowRepositoryTest.java
+++ b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/GitFlowRepositoryTest.java
@@ -14,10 +14,14 @@ import static org.eclipse.egit.gitflow.GitFlowDefaults.HOTFIX_PREFIX;
import static org.eclipse.egit.gitflow.GitFlowDefaults.RELEASE_PREFIX;
import static org.eclipse.egit.gitflow.GitFlowDefaults.VERSION_TAG;
import static org.eclipse.jgit.lib.Constants.R_HEADS;
+import static org.eclipse.jgit.lib.Constants.DOT_GIT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
+import java.io.File;
+
+import org.eclipse.egit.core.test.TestRepository;
import org.eclipse.egit.gitflow.op.AbstractDualRepositoryTestCase;
import org.eclipse.egit.gitflow.op.FeatureStartOperation;
import org.eclipse.egit.gitflow.op.HotfixStartOperation;
@@ -29,6 +33,15 @@ import org.eclipse.jgit.lib.Repository;
import org.junit.Test;
public class GitFlowRepositoryTest extends AbstractDualRepositoryTestCase {
+ @Test(expected = WrongGitFlowStateException.class)
+ public void testFindHeadFailOnEmptyRepository() throws Exception {
+ File workdir3 = testUtils.createTempDir("Repository3");
+ TestRepository repository3 = new TestRepository(new File(workdir3, DOT_GIT));
+ GitFlowRepository gfRepo = new GitFlowRepository(repository3.getRepository());
+
+ gfRepo.findHead();
+ }
+
@Test
public void testIsMaster() throws Exception {
repository1.createInitialCommit("testIsMaster\n\nfirst commit\n");
diff --git a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureStartOperationTest.java b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureStartOperationTest.java
index 55771a7118..1fd6aa03f5 100644
--- a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureStartOperationTest.java
+++ b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureStartOperationTest.java
@@ -8,7 +8,7 @@
*******************************************************************************/
package org.eclipse.egit.gitflow.op;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.egit.core.op.BranchOperation;
@@ -22,7 +22,9 @@ public class FeatureStartOperationTest extends AbstractFeatureOperationTest {
Repository repository = testRepository.getRepository();
GitFlowRepository gfRepo = init("testFeatureStart\n\nfirst commit\n");
- new FeatureStartOperation(gfRepo, MY_FEATURE).execute(null);
+ FeatureStartOperation featureStartOperation = new FeatureStartOperation(gfRepo, MY_FEATURE);
+ assertNull(featureStartOperation.getSchedulingRule());
+ featureStartOperation.execute(null);
assertEquals(gfRepo.getConfig().getFullFeatureBranchName(MY_FEATURE),
repository.getFullBranch());
diff --git a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/HotfixStartOperationTest.java b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/HotfixStartOperationTest.java
index 77ea7da9ec..a46799b3a3 100644
--- a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/HotfixStartOperationTest.java
+++ b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/HotfixStartOperationTest.java
@@ -9,6 +9,7 @@
package org.eclipse.egit.gitflow.op;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import org.eclipse.egit.gitflow.GitFlowRepository;
import org.eclipse.jgit.lib.Repository;
@@ -23,7 +24,9 @@ public class HotfixStartOperationTest extends AbstractGitFlowOperationTest {
new InitOperation(repository).execute(null);
GitFlowRepository gfRepo = new GitFlowRepository(repository);
- new HotfixStartOperation(gfRepo, MY_HOTFIX).execute(null);
+ HotfixStartOperation hotfixStartOperation = new HotfixStartOperation(gfRepo, MY_HOTFIX);
+ assertNull(hotfixStartOperation.getSchedulingRule());
+ hotfixStartOperation.execute(null);
assertEquals(gfRepo.getConfig().getFullHotfixBranchName(MY_HOTFIX),
repository.getFullBranch());
diff --git a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/ReleaseStartOperationTest.java b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/ReleaseStartOperationTest.java
index 53f9a0f2e2..2fc3724621 100644
--- a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/ReleaseStartOperationTest.java
+++ b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/ReleaseStartOperationTest.java
@@ -8,8 +8,7 @@
*******************************************************************************/
package org.eclipse.egit.gitflow.op;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.egit.core.op.TagOperation;
@@ -23,19 +22,65 @@ public class ReleaseStartOperationTest extends AbstractGitFlowOperationTest {
@Test
public void testReleaseBranchCreated() throws Exception {
testRepository
- .createInitialCommit("testReleaseStart\n\nfirst commit\n");
+ .createInitialCommit("testReleaseBranchCreated\n\nfirst commit\n");
Repository repository = testRepository.getRepository();
new InitOperation(repository).execute(null);
GitFlowRepository gfRepo = new GitFlowRepository(repository);
- new ReleaseStartOperation(gfRepo, MY_RELEASE).execute(null);
+ ReleaseStartOperation releaseStartOperation = new ReleaseStartOperation(
+ gfRepo, MY_RELEASE);
+ releaseStartOperation.execute(null);
+
+ assertNull(releaseStartOperation.getSchedulingRule());
+
+ assertEquals(gfRepo.getConfig().getFullReleaseBranchName(MY_RELEASE),
+ repository.getFullBranch());
+ }
+
+ @Test
+ public void testReleaseBranchCreatedFromHeadCommit() throws Exception {
+ RevCommit initialCommit = testRepository
+ .createInitialCommit("testReleaseBranchCreatedFromHeadCommit\n\nfirst commit\n");
+
+ Repository repository = testRepository.getRepository();
+ new InitOperation(repository).execute(null);
+ GitFlowRepository gfRepo = new GitFlowRepository(repository);
+
+ ReleaseStartOperation releaseStartOperation = new ReleaseStartOperation(
+ gfRepo, initialCommit.getName(), MY_RELEASE);
+ releaseStartOperation.execute(null);
+
+ assertNull(releaseStartOperation.getSchedulingRule());
assertEquals(gfRepo.getConfig().getFullReleaseBranchName(MY_RELEASE),
repository.getFullBranch());
}
@Test
+ public void testReleaseBranchCreatedFromCommit() throws Exception {
+ RevCommit initialCommit = testRepository
+ .createInitialCommit("testReleaseBranchCreatedFromCommit\n\nfirst commit\n");
+ testRepository
+ .createInitialCommit("testReleaseBranchCreatedFromCommit\n\nsecond commit\n");
+
+ Repository repository = testRepository.getRepository();
+ new InitOperation(repository).execute(null);
+ GitFlowRepository gfRepo = new GitFlowRepository(repository);
+
+ ReleaseStartOperation releaseStartOperation = new ReleaseStartOperation(
+ gfRepo, initialCommit.getName(), MY_RELEASE);
+ releaseStartOperation.execute(null);
+
+ assertNotNull(releaseStartOperation.getSchedulingRule());
+
+ assertEquals(gfRepo.getConfig().getFullReleaseBranchName(MY_RELEASE),
+ repository.getFullBranch());
+
+ assertEquals(initialCommit, gfRepo.findHead());
+ }
+
+ @Test
public void testReleaseStartWithContent() throws Exception {
testRepository
.createInitialCommit("testReleaseStartWithContent\n\nfirst commit\n");

Back to the top