- Revision
- 1296
- Author
- rfscholte
- Date
- 2011-08-16 04:26:42 -0500 (Tue, 16 Aug 2011)
Log Message
Fix QDOX-236: HashCode is invalid ( DefaultJavaParameter )
Modified Paths
Diff
Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaParameter.java (1295 => 1296)
--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaParameter.java 2011-08-16 09:01:34 UTC (rev 1295) +++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaParameter.java 2011-08-16 09:26:42 UTC (rev 1296) @@ -123,7 +123,7 @@ @Override public int hashCode() { - return 13 + getType().hashCode(); + return 13 + ( isVarArgs() ? 1 : 0 ) + getType().hashCode(); } @Override @@ -138,8 +138,8 @@ return false; } JavaParameter p = (JavaParameter) obj; - // name isn't used in equality check. - return getType().equals( p.getType() ); + // name should not be used in equality check. + return getType().equals( p.getType() ) && isVarArgs() == p.isVarArgs(); } @Override
Modified: trunk/qdox/src/test/java/com/thoughtworks/qdox/model/DefaultJavaParameterTest.java (1295 => 1296)
--- trunk/qdox/src/test/java/com/thoughtworks/qdox/model/DefaultJavaParameterTest.java 2011-08-16 09:01:34 UTC (rev 1295) +++ trunk/qdox/src/test/java/com/thoughtworks/qdox/model/DefaultJavaParameterTest.java 2011-08-16 09:26:42 UTC (rev 1296) @@ -11,12 +11,19 @@ @Override protected DefaultJavaParameter newJavaParameter( Type type, String name ) { - return new DefaultJavaParameter(type, name); + return new DefaultJavaParameter( type, name ); } @Override + protected DefaultJavaParameter newJavaParameter( Type type, String name, boolean varArgs ) + { + return new DefaultJavaParameter( type, name, varArgs ); + } + + @Override protected void setMethod( DefaultJavaParameter parameter, JavaMethod method ) { parameter.setParentMethod( method ); } + }
Modified: trunk/qdox/src/test/java/com/thoughtworks/qdox/model/JavaParameterTest.java (1295 => 1296)
--- trunk/qdox/src/test/java/com/thoughtworks/qdox/model/JavaParameterTest.java 2011-08-16 09:01:34 UTC (rev 1295) +++ trunk/qdox/src/test/java/com/thoughtworks/qdox/model/JavaParameterTest.java 2011-08-16 09:26:42 UTC (rev 1296) @@ -1,7 +1,7 @@ package com.thoughtworks.qdox.model; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import junit.framework.TestCase; public abstract class JavaParameterTest<P extends JavaParameter> extends TestCase { @@ -10,17 +10,32 @@ super(s); } - //constructors - protected abstract P newJavaParameter(Type type, String name); + // constructors + protected abstract P newJavaParameter( Type type, String name ); + + protected abstract P newJavaParameter( Type type, String name, boolean varArgs ); + + // setters + protected abstract void setMethod( P parameter, JavaMethod method ); - //setters - protected abstract void setMethod(P parameter, JavaMethod method); - public void testHashCode() { assertTrue( "hashCode should never resolve to 0", newJavaParameter( Type.VOID, "" ).hashCode() != 0 ); + + P simpleParameter = newJavaParameter( Type.VOID, "", false ); + P varArgParameter = newJavaParameter( Type.VOID, "", true ); + + assertTrue( simpleParameter.hashCode() != varArgParameter.hashCode() ); } + public void testEquals() + { + P simpleParameter = newJavaParameter( Type.VOID, "", false ); + P varArgParameter = newJavaParameter( Type.VOID, "", true ); + + assertTrue( !simpleParameter.equals( varArgParameter ) ); + } + protected Type newType(String typeName) { Type result = mock(Type.class); when( result.getFullyQualifiedName()).thenReturn( typeName );
To unsubscribe from this list please visit:
