Skip to content

Commit 9889c7f

Browse files
authored
Merge pull request e-gineering#122 from rdefreitas/feature/fix-repeated-other-branch-renaming
Prevent repeated OtherBranch name suffixes being appended
2 parents 877f841 + a79b41e commit 9889c7f

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

src/main/java/com/e_gineering/maven/gitflowhelper/OtherBranchVersionExtension.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,14 +218,18 @@ private boolean isProjectOfReplacedArtifactVersion(final MavenProject project, f
218218

219219
/**
220220
* Given a String version (which may be a final or -SNAPSHOT version) return a
221-
* version version string mangled to include a `+normalized-branch-name-SNAPSHOT format version.
221+
* version string mangled to include a `+normalized-branch-name-SNAPSHOT format version.
222222
*
223223
* @param version The base version (ie, 1.0.2-SNAPSHOT)
224224
* @param branchName to be normalized
225225
* @return A mangled version string with the branchname and -SNAPSHOT.
226226
*/
227-
private String getAsBranchSnapshotVersion(final String version, final String branchName) {
228-
return version.replace("-SNAPSHOT", "") + otherBranchVersionDelimiter + branchName.replaceAll("[^0-9A-Za-z-.]", "-") + "-SNAPSHOT";
227+
public String getAsBranchSnapshotVersion(final String version, final String branchName) {
228+
String branchNameSanitized = otherBranchVersionDelimiter + branchName.replaceAll("[^0-9A-Za-z-.]", "-") + "-SNAPSHOT";
229+
if(version.endsWith(branchNameSanitized)) {
230+
return version;
231+
}
232+
return version.replace("-SNAPSHOT", "") + branchNameSanitized;
229233
}
230234

231235
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.e_gineering.maven.gitflowhelper;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
import org.junit.runner.RunWith;
6+
import org.junit.runners.BlockJUnit4ClassRunner;
7+
8+
@RunWith(BlockJUnit4ClassRunner.class)
9+
public class OtherBranchTest {
10+
11+
private final String baseVersion = "1.0.2";
12+
private final String baseSnapshotVersion = "1.0.2-SNAPSHOT";
13+
private final String branchName = "feature/other-branch-name";
14+
private final String expectedSnapshotResult = "1.0.2+feature-other-branch-name-SNAPSHOT";
15+
16+
private OtherBranchVersionExtension getExtension() {
17+
OtherBranchVersionExtension extension = new OtherBranchVersionExtension();
18+
extension.otherBranchVersionDelimiter = "+";
19+
return extension;
20+
}
21+
22+
@Test
23+
public void assertOtherBranchNameIsPrefixedBeforeSnapshot() {
24+
OtherBranchVersionExtension extension = getExtension();
25+
Assert.assertEquals(expectedSnapshotResult, extension.getAsBranchSnapshotVersion(baseSnapshotVersion,branchName));
26+
}
27+
28+
@Test
29+
public void assertOtherBranchNameIsOnlyPrefixedBeforeSnapshotOneTime() {
30+
OtherBranchVersionExtension extension = getExtension();
31+
Assert.assertEquals(expectedSnapshotResult, extension.getAsBranchSnapshotVersion(extension.getAsBranchSnapshotVersion(baseSnapshotVersion,branchName),branchName));
32+
}
33+
}

0 commit comments

Comments
 (0)