@Test
public void testExecuteInstalled() throws Exception {

    Mockito.when(ctx.getPhase()).thenReturn(Phase.INSTALLED);
    processor.infos = Arrays.asList(info);
    Mockito.when(info.getActions()).thenReturn(Collections.singletonMap(Phase.INSTALLED, Arrays.asList(action)));
    Mockito.when(info.getInstallationMode()).thenReturn(InstallationMode.ALWAYS);
    processor.execute(ctx);
    Mockito.verify(action).execute(ctx);
    Mockito.reset(action);
    Mockito.when(info.getInstallationMode()).thenReturn(InstallationMode.ON_CHANGE);
    processor.execute(ctx);
    Mockito.verify(action, Mockito.never()).execute(ctx);
    Mockito.reset(action);
    Mockito.when(action.isRelevant(ctx, info)).thenReturn(true);
    processor.execute(ctx);
    Mockito.verify(action).execute(ctx);
}