blob: 53db71039490f18982c48253b269a36e3cee755e [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.util;
import org.junit.Test;
import org.mockitousage.IMethods;
import org.mockitoutil.TestBase;
import java.util.Date;
import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertTrue;
public class ObjectMethodsGuruTest extends TestBase {
private interface HasCompareToButDoesNotImplementComparable {
int compareTo(HasCompareToButDoesNotImplementComparable other);
}
private interface HasCompare extends Comparable<HasCompare> {
int foo(HasCompare other);
int compareTo(HasCompare other, String redHerring);
int compareTo(String redHerring);
int compareTo(HasCompare redHerring);
}
@Test
public void shouldKnowToStringMethod() throws Exception {
assertFalse(ObjectMethodsGuru.isToStringMethod(Object.class.getMethod("equals", Object.class)));
assertFalse(ObjectMethodsGuru.isToStringMethod(IMethods.class.getMethod("toString", String.class)));
assertTrue(ObjectMethodsGuru.isToStringMethod(IMethods.class.getMethod("toString")));
}
@Test
public void shouldKnowCompareToMethod() throws Exception {
assertFalse(ObjectMethodsGuru.isCompareToMethod(Date.class.getMethod("toString")));
assertFalse(ObjectMethodsGuru.isCompareToMethod(HasCompare.class.getMethod("foo", HasCompare.class)));
assertFalse(ObjectMethodsGuru.isCompareToMethod(HasCompare.class.getMethod("compareTo", HasCompare.class, String.class)));
assertFalse(ObjectMethodsGuru.isCompareToMethod(HasCompare.class.getMethod("compareTo", String.class)));
assertFalse(ObjectMethodsGuru.isCompareToMethod(HasCompareToButDoesNotImplementComparable.class.getDeclaredMethod("compareTo", HasCompareToButDoesNotImplementComparable.class)));
assertTrue(ObjectMethodsGuru.isCompareToMethod(HasCompare.class.getMethod("compareTo", HasCompare.class)));
}
}