@Override
  public void populateContainer(TaskContainer container) {
    ComputationSteps steps = new ReportComputationSteps(container);
    container.add(SettingsLoader.class);
    container.add(task);
    container.add(steps);
    container.add(componentClasses());
    for (ReportAnalysisComponentProvider componentProvider : componentProviders) {
      container.add(componentProvider.getComponents());
    }
    container.add(steps.orderedStepClasses());
  }
@Test
  public void Components_of_ReportAnalysisComponentProvider_are_added_to_the_container() {
    Object object = new Object();
    Class<MyClass> clazz = MyClass.class;
    ReportAnalysisComponentProvider componentProvider = mock(ReportAnalysisComponentProvider.class);
    when(componentProvider.getComponents()).thenReturn(ImmutableList.of(object, clazz));

    ProjectAnalysisTaskContainerPopulator populator = new ProjectAnalysisTaskContainerPopulator(task, new ReportAnalysisComponentProvider[] {componentProvider});
    ListTaskContainer container = new ListTaskContainer();
    container.add(componentProvider);
    populator.populateContainer(container);

    assertThat(container.getAddedComponents()).contains(object, clazz);
  }