@Test public void testAbstractClass() throws Exception { TypeParameterMatcher m = TypeParameterMatcher.find(new TypeQ(), TypeX.class, "C"); assertFalse(m.match(new Object())); assertFalse(m.match(new A())); assertFalse(m.match(new AA())); assertFalse(m.match(new AAA())); assertFalse(m.match(new B())); assertFalse(m.match(new BB())); assertFalse(m.match(new BBB())); assertFalse(m.match(new C())); assertTrue(m.match(new CC())); }
@Test public void testAnonymousClass() throws Exception { TypeParameterMatcher m = TypeParameterMatcher.find(new TypeQ<BBB>() {}, TypeX.class, "B"); assertFalse(m.match(new Object())); assertFalse(m.match(new A())); assertFalse(m.match(new AA())); assertFalse(m.match(new AAA())); assertFalse(m.match(new B())); assertFalse(m.match(new BB())); assertTrue(m.match(new BBB())); assertFalse(m.match(new C())); assertFalse(m.match(new CC())); }
@Test public void testArrayAsTypeParam() throws Exception { TypeParameterMatcher m = TypeParameterMatcher.find(new U<byte[]>() {}, U.class, "E"); assertFalse(m.match(new Object())); assertTrue(m.match(new byte[1])); }
@Test(expected = IllegalStateException.class) public void testUnsolvedParameter() throws Exception { TypeParameterMatcher.find(new TypeQ(), TypeX.class, "B"); }
@Test public void testInaccessibleClass() throws Exception { TypeParameterMatcher m = TypeParameterMatcher.find(new U<T>() {}, U.class, "E"); assertFalse(m.match(new Object())); assertTrue(m.match(new T())); }