From 591b18339ebac43b82de49ec980742c08bbd2ebb Mon Sep 17 00:00:00 2001 From: Zafar Khaja Date: Sat, 21 Dec 2013 14:18:52 +0400 Subject: [PATCH] Fix Version.hashCode() to comply w/ Version.equals() --- .../java/com/github/zafarkhaja/semver/Version.java | 1 - .../com/github/zafarkhaja/semver/VersionTest.java | 11 +++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/zafarkhaja/semver/Version.java b/src/main/java/com/github/zafarkhaja/semver/Version.java index 695d4f6..991b132 100644 --- a/src/main/java/com/github/zafarkhaja/semver/Version.java +++ b/src/main/java/com/github/zafarkhaja/semver/Version.java @@ -522,7 +522,6 @@ public class Version implements Comparable { int hash = 5; hash = 97 * hash + normal.hashCode(); hash = 97 * hash + preRelease.hashCode(); - hash = 97 * hash + build.hashCode(); return hash; } diff --git a/src/test/java/com/github/zafarkhaja/semver/VersionTest.java b/src/test/java/com/github/zafarkhaja/semver/VersionTest.java index e993fa9..53b1a6f 100644 --- a/src/test/java/com/github/zafarkhaja/semver/VersionTest.java +++ b/src/test/java/com/github/zafarkhaja/semver/VersionTest.java @@ -361,14 +361,21 @@ public class VersionTest { Version v2 = null; assertFalse(v1.equals(v2)); } + + @Test + public void shouldIgnoreBuildMetadataWhenCheckingForEquality() { + Version v1 = Version.valueOf("2.3.7-beta+build"); + Version v2 = Version.valueOf("2.3.7-beta"); + assertTrue(v1.equals(v2)); + } } public static class HashCodeMethodTest { @Test public void shouldReturnSameHashCodeIfVersionsAreEqual() { - Version v1 = Version.valueOf("2.3.7"); - Version v2 = Version.valueOf("2.3.7"); + Version v1 = Version.valueOf("2.3.7-beta+build"); + Version v2 = Version.valueOf("2.3.7-beta"); assertTrue(v1.equals(v2)); assertEquals(v1.hashCode(), v2.hashCode()); }