@Test public void shouldMatch() { writeFile( "A.java", "public class A {", " public String testToString() {", " Object obj = new Object();", " return obj.toString();", " }", "}"); assertCompiles(methodInvocationMatches(true, Matchers.methodReturnsNonNull())); }
@Test public void shouldNotMatchWhenMethodNameDiffers() { writeFile( "A.java", "public class A {", " public String ToString() {", " return \"match should be case sensitive\";", " }", " public String testMethodWithDifferentCase() {", " return ToString();", " }", "}"); assertCompiles(methodInvocationMatches(false, Matchers.methodReturnsNonNull())); }
@Test public void shouldMatchBareOverride() { writeFile( "A.java", "public class A {", " public String toString() {", " return \"a string\";", " }", " public String testToString() {", " return toString();", " }", "}"); assertCompiles(methodInvocationMatches(true, Matchers.methodReturnsNonNull())); }
@Test public void shouldMatchDescendants() { writeFile( "A.java", "public class A {", " public String testThisToString() {", " return toString();", " }", " public String testInstanceToString() {", " Boolean b = new Boolean(true);", " return b.toString();", " }", " public String testStringToString() {", " String str = \"a string\";", " return str.toString();", " }", "}"); assertCompiles(methodInvocationMatches(true, Matchers.methodReturnsNonNull())); }