diff --git a/src/main/java/com/github/zafarkhaja/semver/Version.java b/src/main/java/com/github/zafarkhaja/semver/Version.java index 6cd3477..9d9a3a2 100644 --- a/src/main/java/com/github/zafarkhaja/semver/Version.java +++ b/src/main/java/com/github/zafarkhaja/semver/Version.java @@ -106,27 +106,33 @@ public class Version implements Comparable { * Sets the normal version. * * @param normal the string representation of the normal version + * @return this builder instance */ - public void setNormalVersion(String normal) { + public Builder setNormalVersion(String normal) { this.normal = normal; + return this; } /** * Sets the pre-release version. * * @param preRelease the string representation of the pre-release version + * @return this builder instance */ - public void setPreReleaseVersion(String preRelease) { + public Builder setPreReleaseVersion(String preRelease) { this.preRelease = preRelease; + return this; } /** * Sets the build metadata. * * @param build the string representation of the build metadata + * @return this builder instance */ - public void setBuildMetadata(String build) { + public Builder setBuildMetadata(String build) { this.build = build; + return this; } /** diff --git a/src/test/java/com/github/zafarkhaja/semver/VersionTest.java b/src/test/java/com/github/zafarkhaja/semver/VersionTest.java index edae560..979b251 100644 --- a/src/test/java/com/github/zafarkhaja/semver/VersionTest.java +++ b/src/test/java/com/github/zafarkhaja/semver/VersionTest.java @@ -429,6 +429,17 @@ public class VersionTest { builder.setBuildMetadata("build"); assertEquals(Version.valueOf("1.0.0-alpha+build"), builder.build()); } + + @Test + public void shouldImplementFluentInterface() { + Version.Builder builder = new Version.Builder(); + Version version = builder + .setNormalVersion("1.0.0") + .setPreReleaseVersion("alpha") + .setBuildMetadata("build") + .build(); + assertEquals(Version.valueOf("1.0.0-alpha+build"), version); + } } public static class BuildAwareOrderTest {