@Test
public void field_with_explicit_type()
{
ComponentClassResolver resolver = mockComponentClassResolver();
ClassTransformation transformation = mockClassTransformation();
MutableComponentModel model = mockMutableComponentModel();
Mixin annotation = newMixin("Bar");
train_findFieldsWithAnnotation(transformation, Mixin.class, "fred");
train_getFieldAnnotation(transformation, "fred", Mixin.class, annotation);
train_getFieldType(transformation, "fred", "foo.bar.Baz");
train_resolveMixinTypeToClassName(resolver, "Bar", "foo.bar.BazMixin");
model.addMixinClassName("foo.bar.BazMixin");
transformation.makeReadOnly("fred");
train_getResourcesFieldName(transformation, "rez");
train_extendMethod(
transformation,
TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE,
"fred = (foo.bar.Baz) rez.getMixinByClassName(\"foo.bar.BazMixin\");");
transformation.claimField("fred", annotation);
replay();
new MixinWorker(resolver).transform(transformation, model);