package net.bytebuddy.utility;
import net.bytebuddy.test.utility.ObjectPropertyAssertion;
import org.junit.Test;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Iterator;
import static org.mockito.Mockito.mock;
public class JavaConstantMethodTypeDispatcherTest {
@Test(expected = IllegalStateException.class)
public void testLegacyVmReturnType() throws Exception {
JavaConstant.MethodType.Dispatcher.ForLegacyVm.INSTANCE.returnType(mock(Object.class));
}
@Test(expected = IllegalStateException.class)
public void testLegacyVmParameterArray() throws Exception {
JavaConstant.MethodType.Dispatcher.ForLegacyVm.INSTANCE.parameterArray(mock(Object.class));
}
@Test
public void testObjectProperties() throws Exception {
final Iterator<Method> methods = Arrays.asList(Object.class.getDeclaredMethods()).iterator();
ObjectPropertyAssertion.of(JavaConstant.MethodType.Dispatcher.ForJava7CapableVm.class).create(new ObjectPropertyAssertion.Creator<Method>() {
@Override
public Method create() {
return methods.next();
}
}).apply();
ObjectPropertyAssertion.of(JavaConstant.MethodType.Dispatcher.ForLegacyVm.class).apply();
}
}