package net.bytebuddy.implementation.bind; import net.bytebuddy.description.method.ParameterList; import net.bytebuddy.test.utility.ObjectPropertyAssertion; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.when; public class ParameterLengthResolverTest extends AbstractAmbiguityResolverTest { @Mock private ParameterList<?> leftList, rightList; @Override @Before @SuppressWarnings("unchecked") public void setUp() throws Exception { super.setUp(); when(leftMethod.getParameters()).thenReturn((ParameterList) leftList); when(rightMethod.getParameters()).thenReturn((ParameterList) rightList); } @Test public void testAmbiguous() throws Exception { assertThat(ParameterLengthResolver.INSTANCE.resolve(source, left, right), is(MethodDelegationBinder.AmbiguityResolver.Resolution.AMBIGUOUS)); } @Test public void testLeft() throws Exception { when(leftList.size()).thenReturn(1); assertThat(ParameterLengthResolver.INSTANCE.resolve(source, left, right), is(MethodDelegationBinder.AmbiguityResolver.Resolution.LEFT)); } @Test public void testRight() throws Exception { when(rightList.size()).thenReturn(1); assertThat(ParameterLengthResolver.INSTANCE.resolve(source, left, right), is(MethodDelegationBinder.AmbiguityResolver.Resolution.RIGHT)); } @Test public void testObjectProperties() throws Exception { ObjectPropertyAssertion.of(ParameterLengthResolver.class).apply(); } }