@Test
public void ShouldCorrectLoadPlugin() throws Exception {

    BootstrapItem item = PowerMockito.mock(BootstrapItem.class);
    PowerMockito.whenNew(BootstrapItem.class).withArguments("ResolveIObjectByTypeStrategiesPlugin").thenReturn(item);
    PowerMockito.when(item.after("IOC")).thenReturn(item);
    plugin.load();
    PowerMockito.verifyNew(BootstrapItem.class).withArguments("ResolveIObjectByTypeStrategiesPlugin");
    Mockito.verify(item).after("IOC");
    ArgumentCaptor<IPoorAction> iPoorActionArgumentCaptor = ArgumentCaptor.forClass(IPoorAction.class);
    Mockito.verify(item).process(iPoorActionArgumentCaptor.capture());
    Mockito.verify(bootstrap).add(item);
    IKey strategyKey = PowerMockito.mock(IKey.class);
    PowerMockito.when(Keys.getOrAdd("info.smart_tools.smartactors.iobject.iobject.IObject" + "convert")).thenReturn(strategyKey);
    StrategyStorageWithCacheStrategy strategy = PowerMockito.mock(StrategyStorageWithCacheStrategy.class);
    PowerMockito.whenNew(StrategyStorageWithCacheStrategy.class).withArguments(Matchers.any(IFunction.class), Matchers.any(IBiFunction.class)).thenReturn(strategy);
    iPoorActionArgumentCaptor.getValue().execute();
    PowerMockito.verifyStatic();
    Keys.getOrAdd("info.smart_tools.smartactors.iobject.iobject.IObject" + "convert");
    PowerMockito.verifyStatic();
    IOC.register(eq(strategyKey), eq(strategy));
    Mockito.verify(strategy).register(eq(Map.class), Matchers.any(MapToIObjectResolveDependencyStrategy.class));
    Mockito.verify(strategy).register(eq(String.class), Matchers.any(StringToIObjectResolveDependencyStrategy.class));
}