### Question:
FusionIndexPopulator extends FusionIndexBase<IndexPopulator> implements IndexPopulator { @Override public void create() { dropAction.drop( indexId, archiveFailedIndex ); instanceSelector.forAll( IndexPopulator::create ); } FusionIndexPopulator( SlotSelector slotSelector, InstanceSelector<IndexPopulator> instanceSelector, long indexId, IndexDropAction dropAction,
            boolean archiveFailedIndex ); @Override void create(); @Override void drop(); @Override void add( Collection<? extends IndexEntryUpdate<?>> updates ); @Override void verifyDeferredConstraints( NodePropertyAccessor nodePropertyAccessor ); @Override IndexUpdater newPopulatingUpdater( NodePropertyAccessor accessor ); @Override void close( boolean populationCompletedSuccessfully ); @Override void markAsFailed( String failure ); @Override void includeSample( IndexEntryUpdate<?> update ); @Override IndexSample sampleResult(); @Override Map<String,Value> indexConfig();  }### Answer:
@Test public void createMustCreateAll() throws Exception { fusionIndexPopulator.create(); for ( IndexPopulator alivePopulator : alivePopulators ) { verify( alivePopulator, times( 1 ) ).create(); } }
@Test public void createMustThrowIfAnyThrow() throws Exception { for ( IndexPopulator alivePopulator : alivePopulators ) { UncheckedIOException failure = new UncheckedIOException( new IOException( "fail" ) ); doThrow( failure ).when( alivePopulator ).create(); verifyCallFail( failure, () -> { fusionIndexPopulator.create(); return null; } ); doAnswer( invocation -> null ).when( alivePopulator ).create(); } }