### Question:
SignatureTokenMatcher extends ElementMatcher.Junction.AbstractBase<T> { public boolean matches(T target) { return matcher.matches(target.asSignatureToken()); } SignatureTokenMatcher(ElementMatcher<? super MethodDescription.SignatureToken> matcher); boolean matches(T target); @Override String toString();  }### Answer:
@Test public void testMatche() throws Exception { when(methodDescription.asSignatureToken()).thenReturn(token); when(matcher.matches(token)).thenReturn(true); assertThat(new SignatureTokenMatcher<MethodDescription>(matcher).matches(methodDescription), is(true)); verify(matcher).matches(token); verifyNoMoreInteractions(matcher); }
@Test public void testNoMatch() throws Exception { when(methodDescription.asSignatureToken()).thenReturn(token); when(matcher.matches(token)).thenReturn(false); assertThat(new SignatureTokenMatcher<MethodDescription>(matcher).matches(methodDescription), is(false)); verify(matcher).matches(token); verifyNoMoreInteractions(matcher); }