@Test
public void MustCorrectLoadPlugin() throws Exception {

    BootstrapItem item = mock(BootstrapItem.class);
    whenNew(BootstrapItem.class).withArguments(bootstrapArgument).thenReturn(item);
    when(item.after(anyString())).thenReturn(item);
    plugin.load();
    verifyNew(BootstrapItem.class).withArguments(bootstrapArgument);
    verify(item).after("IOC");
    ArgumentCaptor<IPoorAction> iPoorActionArgumentCaptor = ArgumentCaptor.forClass(IPoorAction.class);
    verify(item).process(iPoorActionArgumentCaptor.capture());
    verify(bootstrap).add(item);
    IKey fieldNameKey = mock(IKey.class);
    when(Keys.getOrAdd(FieldName.class.getCanonicalName())).thenReturn(fieldNameKey);
    ArgumentCaptor<ResolveByNameIocStrategy> resolveByNameIocStrategyArgumentCaptor =
            ArgumentCaptor.forClass(ResolveByNameIocStrategy.class);
    iPoorActionArgumentCaptor.getValue().execute();
    verifyStatic();
    Keys.getOrAdd(FieldName.class.getCanonicalName());
    verifyStatic();
    IOC.register(eq(fieldNameKey), resolveByNameIocStrategyArgumentCaptor.capture());
    String exampleFieldName = "exampleField";
    FieldName newFieldName = mock(FieldName.class);
    whenNew(FieldName.class).withArguments(exampleFieldName).thenReturn(newFieldName);
    assertTrue("Must return correct value",
            resolveByNameIocStrategyArgumentCaptor.getValue().resolve(exampleFieldName) == newFieldName);
    verifyNew(FieldName.class).withArguments(exampleFieldName);
}