1212import static org .mockito .Mockito .when ;
1313
1414import java .lang .reflect .Method ;
15+ import java .lang .reflect .Modifier ;
1516import java .util .ArrayList ;
1617import java .util .HashSet ;
1718import java .util .List ;
@@ -31,6 +32,7 @@ void testImplementsAllMethods() {
3132 for (Method method : PatchLogger .class .getMethods ()) {
3233 MethodSignature methodSignature = new MethodSignature ();
3334 methodSignature .name = method .getName ();
35+ methodSignature .modifiers = method .getModifiers ();
3436 for (Class <?> clazz : method .getParameterTypes ()) {
3537 String parameterType = clazz .getName ();
3638 methodSignature .parameterTypes .add (
@@ -50,6 +52,7 @@ void testImplementsAllMethods() {
5052 String methodName = method .getName ();
5153 MethodSignature builder = new MethodSignature ();
5254 builder .name = methodName ;
55+ builder .modifiers = method .getModifiers ();
5356 List <String > parameterTypes = new ArrayList <>();
5457 for (Class <?> clazz : method .getParameterTypes ()) {
5558 parameterTypes .add (clazz .getName ());
@@ -792,6 +795,7 @@ static class MethodSignature {
792795 String name ;
793796 List <String > parameterTypes = new ArrayList <>();
794797 String returnType ;
798+ int modifiers ;
795799
796800 @ Override
797801 public boolean equals (@ Nullable Object obj ) {
@@ -804,18 +808,19 @@ public boolean equals(@Nullable Object obj) {
804808 MethodSignature other = (MethodSignature ) obj ;
805809 return Objects .equals (name , other .name )
806810 && Objects .equals (parameterTypes , other .parameterTypes )
807- && Objects .equals (returnType , other .returnType );
811+ && Objects .equals (returnType , other .returnType )
812+ && Modifier .isStatic (modifiers ) == Modifier .isStatic (other .modifiers );
808813 }
809814
810815 @ Override
811816 public int hashCode () {
812- return Objects .hash (name , parameterTypes , returnType );
817+ return Objects .hash (name , parameterTypes , returnType , Modifier . isStatic ( modifiers ) );
813818 }
814819
815820 @ Override
816821 public String toString () {
817822 String params = parameterTypes .stream ().reduce ((a , b ) -> a + ", " + b ).orElse ("" );
818- return name + "(" + params + ")" + returnType ;
823+ return Modifier . toString ( modifiers ) + " " + name + "(" + params + ")" + returnType ;
819824 }
820825 }
821826}
0 commit comments