Skip to content

Commit 4016721

Browse files
authored
Merge pull request #12 from Syquel/bugfix/MGPG-80_equality
[MGPG-80] implement GpgVersion equality in adherence to comparibility
2 parents b38c638 + 7438b37 commit 4016721

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java

+25
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
* under the License.
2020
*/
2121

22+
import java.util.Arrays;
2223
import java.util.regex.Matcher;
2324
import java.util.regex.Pattern;
2425

@@ -123,4 +124,28 @@ public String toString()
123124
return versionStringBuilder.toString();
124125
}
125126

127+
@Override
128+
public boolean equals( final Object other )
129+
{
130+
if ( this == other )
131+
{
132+
return true;
133+
}
134+
135+
if ( !( other instanceof GpgVersion ) )
136+
{
137+
return false;
138+
}
139+
140+
final GpgVersion that = (GpgVersion) other;
141+
142+
return compareTo( that ) == 0;
143+
}
144+
145+
@Override
146+
public int hashCode()
147+
{
148+
return Arrays.hashCode( versionSegments );
149+
}
150+
126151
}

src/test/java/org/apache/maven/plugins/gpg/GpgVersionConsumerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void test()
3434
GpgVersionConsumer consumer = new GpgVersionConsumer();
3535
consumer.consumeLine( "gpg (GnuPG/MacGPG2) 2.2.10" );
3636

37-
assertThat( consumer.getGpgVersion().toString(), is( GpgVersion.parse( "2.2.10" ).toString() ) );
37+
assertThat( consumer.getGpgVersion(), is( GpgVersion.parse( "2.2.10" ) ) );
3838
}
3939

4040
}

src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java

+23
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121

2222
import org.junit.Test;
2323

24+
import static org.junit.Assert.assertEquals;
2425
import static org.junit.Assert.assertFalse;
26+
import static org.junit.Assert.assertNotEquals;
2527
import static org.junit.Assert.assertTrue;
2628

2729
/**
@@ -48,4 +50,25 @@ public void testOpposite()
4850
assertFalse( GpgVersion.parse( "gpg (GnuPG) 2.0.26 (Gpg4win 2.2.3)" )
4951
.isBefore( GpgVersion.parse( "2.0.26" ) ) );
5052
}
53+
54+
@Test
55+
public void testEquality()
56+
{
57+
assertEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ), GpgVersion.parse( "gpg (GnuPG) 2.2.1" ) );
58+
assertEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ), GpgVersion.parse( "2.2.1" ) );
59+
assertEquals( GpgVersion.parse( "gpg (GnuPG/MacGPG2) 2.2.10" ), GpgVersion.parse( "2.2.10" ) );
60+
assertEquals( GpgVersion.parse( "gpg (GnuPG) 2.0.26 (Gpg4win 2.2.3)" ), GpgVersion.parse( "2.0.26" ) );
61+
62+
assertEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).hashCode(), GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).hashCode() );
63+
assertEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).hashCode(), GpgVersion.parse( "2.2.1" ).hashCode() );
64+
assertEquals( GpgVersion.parse( "gpg (GnuPG/MacGPG2) 2.2.10" ).hashCode(), GpgVersion.parse( "2.2.10" ).hashCode() );
65+
assertEquals( GpgVersion.parse( "gpg (GnuPG) 2.0.26 (Gpg4win 2.2.3)" ).hashCode(), GpgVersion.parse( "2.0.26" ).hashCode() );
66+
67+
assertNotEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ), GpgVersion.parse( "2.2.0" ) );
68+
assertNotEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ), GpgVersion.parse( "2.2" ) );
69+
70+
assertNotEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).hashCode(), GpgVersion.parse( "2.2.0" ).hashCode() );
71+
assertNotEquals( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).hashCode(), GpgVersion.parse( "2.2" ).hashCode() );
72+
}
73+
5174
}

0 commit comments

Comments
 (0)