Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureTrackOperationTest.java')
-rw-r--r--org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureTrackOperationTest.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureTrackOperationTest.java b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureTrackOperationTest.java
new file mode 100644
index 0000000000..47cee9fcc1
--- /dev/null
+++ b/org.eclipse.egit.gitflow.test/src/org/eclipse/egit/gitflow/op/FeatureTrackOperationTest.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (C) 2015, Max Hohenegger <eclipse@hohenegger.eu>
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.eclipse.egit.gitflow.op;
+
+import static org.eclipse.jgit.lib.Constants.DEFAULT_REMOTE_NAME;
+import static org.eclipse.jgit.lib.Constants.R_HEADS;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.egit.gitflow.GitFlowRepository;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.transport.FetchResult;
+import org.junit.Test;
+
+public class FeatureTrackOperationTest extends AbstractDualRepositoryTestCase {
+ @Test
+ public void testFeatureTrack() throws Exception {
+ GitFlowRepository gfRepo1 = new GitFlowRepository(
+ repository1.getRepository());
+ GitFlowRepository gfRepo2 = new GitFlowRepository(
+ repository2.getRepository());
+ new FeatureStartOperation(gfRepo1, MY_FEATURE).execute(null);
+ RevCommit branchCommit = repository1
+ .createInitialCommit("testFeatureTrack");
+
+ FeatureTrackOperation featureTrackOperation = new FeatureTrackOperation(
+ gfRepo2, getFirstRemoteFeatureRef(gfRepo2));
+ featureTrackOperation.execute(null);
+ FetchResult operationResult = featureTrackOperation
+ .getOperationResult();
+ assertNotNull(operationResult.getAdvertisedRef(gfRepo2
+ .getConfig().getFullFeatureBranchName(MY_FEATURE)));
+ assertEquals(gfRepo2.getConfig().getFeatureBranchName(MY_FEATURE),
+ repository2.getRepository().getBranch());
+ assertEquals(branchCommit, findHead(repository2.getRepository()));
+
+ RevCommit localCommit = repository2
+ .createInitialCommit("testFeatureTrack2");
+ new CurrentBranchPublishOperation(gfRepo2, 0).execute(null);
+ assertEquals(localCommit, findHead(repository2.getRepository()));
+
+ // config updated?
+ assertEquals(DEFAULT_REMOTE_NAME, getRemoteName(gfRepo2, MY_FEATURE));
+ assertEquals(R_HEADS + gfRepo2.getConfig().getFeatureBranchName(MY_FEATURE),
+ gfRepo2.getUpstreamBranchName(MY_FEATURE));
+ }
+
+ private Ref getFirstRemoteFeatureRef(GitFlowRepository gfRepo)
+ throws CoreException {
+ FeatureListOperation featureListOperation = new FeatureListOperation(
+ gfRepo, 0);
+ featureListOperation.execute(null);
+ return featureListOperation.getResult().get(0);
+ }
+}

Back to the top