### Question:
DuplicatingLogProvider extends AbstractLogProvider<DuplicatingLog> { public boolean remove( LogProvider logProvider ) { if ( !this.logProviders.remove( logProvider ) ) { return false; } for ( DuplicatingLog duplicatingLog : cachedLogs() ) { duplicatingLog.remove( duplicatingLogCache.get( duplicatingLog ).remove( logProvider ) ); } return true; } DuplicatingLogProvider( LogProvider... logProviders ); boolean remove( LogProvider logProvider );  }### Answer:
@Test void shouldRemoveLogProviderFromDuplication() { AssertableLogProvider logProvider1 = new AssertableLogProvider(); AssertableLogProvider logProvider2 = new AssertableLogProvider(); DuplicatingLogProvider logProvider = new DuplicatingLogProvider( logProvider1, logProvider2 ); Log log = logProvider.getLog( getClass() ); log.info( "When the going gets weird" ); assertTrue( logProvider.remove( logProvider1 ) ); log.info( "The weird turn pro" ); logProvider1.assertExactly( AssertableLogProvider.inLog( getClass() ).info( "When the going gets weird" ) ); logProvider2.assertExactly( AssertableLogProvider.inLog( getClass() ).info( "When the going gets weird" ), AssertableLogProvider.inLog( getClass() ).info( "The weird turn pro" ) ); }