451572: fix test only runs for gerrit versions 2.9 or later 

Change-Id: I19455429f150a397a041cf185b6b5ef0e66da113
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=451572
Signed-off-by: Nicholas Folk <Nicholas.folk@tasktop.com>
diff --git a/org.eclipse.mylyn.gerrit.core/src/org/eclipse/mylyn/internal/gerrit/core/client/GerritClient.java b/org.eclipse.mylyn.gerrit.core/src/org/eclipse/mylyn/internal/gerrit/core/client/GerritClient.java
index 3d45561..8e64b0a 100644
--- a/org.eclipse.mylyn.gerrit.core/src/org/eclipse/mylyn/internal/gerrit/core/client/GerritClient.java
+++ b/org.eclipse.mylyn.gerrit.core/src/org/eclipse/mylyn/internal/gerrit/core/client/GerritClient.java
@@ -296,12 +296,16 @@
 
 	public void createRemoteBranch(String projectName, String branchName, String revision, IProgressMonitor monitor)
 			throws GerritException {
+		Assert.isTrue(isVersion29OrLater(monitor), 
+				"Creating branches is only supported in Gerrit versions 2.9 or later"); //$NON-NLS-1$
 		String url = getProjectBranchesUrl(projectName) + branchName;
 		BranchInput input = new BranchInput(branchName, revision);
 		executePutRestRequest(url, input, BranchInput.class, createErrorHandler(), monitor);
 	}
 
 	public BranchInfo[] getRemoteProjectBranches(String projectName, IProgressMonitor monitor) throws GerritException {
+		Assert.isTrue(isVersion29OrLater(monitor), 
+				"Querying branches is only supported in Gerrit versions 2.9 or later"); //$NON-NLS-1$
 		String url = getProjectBranchesUrl(projectName);
 		return executeGetRestRequest(url, BranchInfo[].class, monitor);
 	}
diff --git a/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java b/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java
index 406a42b..222ea63 100644
--- a/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java
+++ b/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java
@@ -510,6 +510,9 @@
 
 	@Test
 	public void testReviewsWithSameChangeId() throws Exception {
+		if (!supportsBranchCreation()) {
+			return;
+		}
 		String branchName = "test_side_branch";
 		createBranchIfNonExistent(branchName);
 		ReviewHarness reviewHarness2 = reviewHarness.duplicate(); //same ChangeId
@@ -650,6 +653,10 @@
 		return isVersion28OrLater() ? 1 : 0;
 	}
 
+	private boolean isVersion29OrLater() throws GerritException {
+		return GerritVersion.isVersion29OrLater(reviewHarness.getClient().getVersion(new NullProgressMonitor()));
+	}
+
 	private boolean isVersion28OrLater() throws GerritException {
 		return GerritVersion.isVersion28OrLater(reviewHarness.getClient().getVersion(new NullProgressMonitor()));
 	}
@@ -661,4 +668,8 @@
 	private boolean isVersion24x() throws GerritException {
 		return GerritVersion.isVersion24x(reviewHarness.getClient().getVersion(new NullProgressMonitor()));
 	}
+
+	private boolean supportsBranchCreation() throws GerritException {
+		return isVersion29OrLater();
+	}
 }