use of org.apache.beam.vendor.bytebuddy.v1_11_0.net.bytebuddy.implementation.bytecode.StackManipulation in project byte-buddy by raphw.
the class FieldConstantTest method testConstantCreationModernVisible.
@Test
public void testConstantCreationModernVisible() throws Exception {
when(classFileVersion.isAtLeast(ClassFileVersion.JAVA_V5)).thenReturn(true);
when(declaringType.isVisibleTo(instrumentedType)).thenReturn(true);
StackManipulation stackManipulation = new FieldConstant(fieldDescription);
assertThat(stackManipulation.isValid(), is(true));
StackManipulation.Size size = stackManipulation.apply(methodVisitor, implementationContext);
assertThat(size.getSizeImpact(), is(1));
assertThat(size.getMaximalSize(), is(2));
verify(methodVisitor).visitLdcInsn(Type.getObjectType(QUX));
verify(methodVisitor).visitLdcInsn(BAR);
verify(methodVisitor).visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/lang/Class", "getDeclaredField", "(Ljava/lang/String;)Ljava/lang/reflect/Field;", false);
verifyNoMoreInteractions(methodVisitor);
}
use of org.apache.beam.vendor.bytebuddy.v1_11_0.net.bytebuddy.implementation.bytecode.StackManipulation in project byte-buddy by raphw.
the class FieldConstantTest method testCached.
@Test
public void testCached() throws Exception {
StackManipulation stackManipulation = new FieldConstant(fieldDescription).cached();
assertThat(stackManipulation.isValid(), is(true));
StackManipulation.Size size = stackManipulation.apply(methodVisitor, implementationContext);
assertThat(size.getSizeImpact(), is(1));
assertThat(size.getMaximalSize(), is(1));
verify(implementationContext).cache(new FieldConstant(fieldDescription), new TypeDescription.ForLoadedType(Field.class));
verifyNoMoreInteractions(implementationContext);
verify(methodVisitor).visitFieldInsn(Opcodes.GETSTATIC, BAZ, FOO + BAR, QUX + BAZ);
verifyNoMoreInteractions(methodVisitor);
}
use of org.apache.beam.vendor.bytebuddy.v1_11_0.net.bytebuddy.implementation.bytecode.StackManipulation in project byte-buddy by raphw.
the class IntegerConstantOpcodeTest method testConstant.
@Test
public void testConstant() throws Exception {
StackManipulation loading = IntegerConstant.forValue(value);
if (value == 0 || value == 1) {
assertThat(loading, is(IntegerConstant.forValue(value == 1)));
}
assertThat(loading.isValid(), is(true));
StackManipulation.Size size = loading.apply(methodVisitor, implementationContext);
assertThat(size.getSizeImpact(), is(1));
assertThat(size.getMaximalSize(), is(1));
verify(methodVisitor).visitInsn(opcode);
verifyNoMoreInteractions(methodVisitor);
}
use of org.apache.beam.vendor.bytebuddy.v1_11_0.net.bytebuddy.implementation.bytecode.StackManipulation in project byte-buddy by raphw.
the class IntegerConstantTest method testBiPush.
@Test
public void testBiPush() throws Exception {
StackManipulation integerConstant = IntegerConstant.forValue(value);
assertThat(integerConstant.isValid(), is(true));
StackManipulation.Size size = integerConstant.apply(methodVisitor, implementationContext);
assertThat(size.getSizeImpact(), is(1));
assertThat(size.getMaximalSize(), is(1));
pushType.verifyInstruction(methodVisitor, value);
verifyNoMoreInteractions(methodVisitor);
verifyZeroInteractions(implementationContext);
}
use of org.apache.beam.vendor.bytebuddy.v1_11_0.net.bytebuddy.implementation.bytecode.StackManipulation in project byte-buddy by raphw.
the class FieldAccessOtherTest method testGenericFieldAccessPutterEqualErasure.
@Test
public void testGenericFieldAccessPutterEqualErasure() throws Exception {
TypeDescription declaredErasure = mock(TypeDescription.class);
when(genericType.asErasure()).thenReturn(declaredErasure);
when(declaredType.asErasure()).thenReturn(declaredErasure);
StackManipulation stackManipulation = FieldAccess.forField(genericField).write();
assertThat(stackManipulation.isValid(), is(true));
assertThat(stackManipulation, is(FieldAccess.forField(fieldDescription).write()));
}
Aggregations