예제 #1
0
 @Test
 public void testPlain() throws Exception {
   when(classFileVersion.getMinorMajorVersion())
       .thenReturn(ClassFileVersion.JAVA_V5.getMinorMajorVersion());
   DynamicType dynamicType = TrivialType.PLAIN.make(FOO, classFileVersion, methodAccessorFactory);
   assertThat(dynamicType.getTypeDescription().getName(), is(FOO));
   assertThat(dynamicType.getTypeDescription().getModifiers(), is(Opcodes.ACC_SYNTHETIC));
   assertThat(dynamicType.getTypeDescription().getDeclaredAnnotations().size(), is(0));
   assertThat(dynamicType.getAuxiliaryTypes().size(), is(0));
   assertThat(
       dynamicType.getLoadedTypeInitializers().get(dynamicType.getTypeDescription()).isAlive(),
       is(false));
 }
예제 #2
0
 @Override
 protected Resolution rebase(MethodDescription.InDefinedShape methodDescription) {
   return methodDescription.isConstructor()
       ? Resolution.ForRebasedConstructor.of(
           methodDescription, placeholderType.getTypeDescription())
       : Resolution.ForRebasedMethod.of(methodDescription, methodNameTransformer);
 }
예제 #3
0
 @Before
 public void setUp() throws Exception {
   explicitAuxiliaryTypes = Collections.singletonList(firstAuxiliary);
   when(engine.create(any(Instrumentation.Context.ExtractableView.class))).thenReturn(MAIN);
   when(firstAuxiliary.getTypeDescription()).thenReturn(otherAuxiliaryDescription);
   when(firstAuxiliary.getBytes()).thenReturn(FIRST);
 }
예제 #4
0
 @Test
 public void testEager() throws Exception {
   when(classFileVersion.getMinorMajorVersion())
       .thenReturn(ClassFileVersion.JAVA_V5.getMinorMajorVersion());
   DynamicType dynamicType =
       TrivialType.SIGNATURE_RELEVANT.make(FOO, classFileVersion, methodAccessorFactory);
   assertThat(dynamicType.getTypeDescription().getName(), is(FOO));
   assertThat(dynamicType.getTypeDescription().getModifiers(), is(Opcodes.ACC_SYNTHETIC));
   assertThat(dynamicType.getTypeDescription().getDeclaredAnnotations().size(), is(1));
   assertThat(
       dynamicType
           .getTypeDescription()
           .getDeclaredAnnotations()
           .isAnnotationPresent(AuxiliaryType.SignatureRelevant.class),
       is(true));
   assertThat(dynamicType.getAuxiliaryTypes().size(), is(0));
   assertThat(
       dynamicType.getLoadedTypeInitializers().get(dynamicType.getTypeDescription()).isAlive(),
       is(false));
 }
예제 #5
0
 @Test
 public void testDynamicTypeCreation() throws Exception {
   DynamicType dynamicType =
       new TypeWriter.Default<Object>(
               instrumentedType,
               loadedTypeInitializer,
               typeInitializer,
               explicitAuxiliaryTypes,
               classFileVersion,
               engine)
           .make();
   assertThat(dynamicType.getBytes(), is(MAIN));
   assertThat(dynamicType.getTypeDescription(), is(instrumentedType));
   assertThat(
       dynamicType.getLoadedTypeInitializers().get(instrumentedType), is(loadedTypeInitializer));
   assertThat(dynamicType.getRawAuxiliaryTypes().size(), is(1));
   assertThat(dynamicType.getRawAuxiliaryTypes().get(otherAuxiliaryDescription), is(FIRST));
 }