package net.bytebuddy.dynamic.scaffold.inline;
import net.bytebuddy.ClassFileVersion;
import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.description.method.MethodList;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.dynamic.scaffold.MethodGraph;
import net.bytebuddy.implementation.Implementation;
import net.bytebuddy.test.utility.MockitoRule;
import net.bytebuddy.test.utility.ObjectPropertyAssertion;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.mockito.Mock;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.when;
public class RebaseImplementationTargetFactoryTest {
@Rule
public TestRule mockitoRule = new MockitoRule(this);
@Mock
private MethodRebaseResolver methodRebaseResolver;
@Mock
private MethodGraph.Linked methodGraph;
@Mock
private ClassFileVersion classFileVersion;
@Mock
private TypeDescription instrumentedType;
@Mock
private TypeDescription.Generic superClass;
private Implementation.Target.Factory factory;
@Before
@SuppressWarnings("unchecked")
public void setUp() throws Exception {
when(instrumentedType.getSuperClass()).thenReturn(superClass);
when(superClass.getDeclaredMethods()).thenReturn(new MethodList.Empty<MethodDescription.InGenericShape>());
factory = new RebaseImplementationTarget.Factory(methodRebaseResolver);
}
@Test
public void testReturnsRebaseImplementationTarget() throws Exception {
assertThat(factory.make(instrumentedType, methodGraph, classFileVersion) instanceof RebaseImplementationTarget, is(true));
}
@Test
public void testObjectProperties() throws Exception {
ObjectPropertyAssertion.of(RebaseImplementationTarget.Factory.class).apply();
}
}