### Question:
DefaultContinuumPurgeManager implements ContinuumPurgeManager { public void purgeRepository( RepositoryPurgeConfiguration repoPurge ) throws ContinuumPurgeManagerException { try { LocalRepository repository = repoPurge.getRepository(); if ( !taskQueueManager.isRepositoryInUse( repository.getId() ) && !taskQueueManager.isInPurgeQueue( repoPurge.getId() ) ) { taskQueueManager.getPurgeQueue().put( new PurgeTask( repoPurge.getId() ) ); } } catch ( TaskQueueException e ) { throw new ContinuumPurgeManagerException( "Error while enqueuing repository", e ); } catch ( TaskQueueManagerException e ) { throw new ContinuumPurgeManagerException( e.getMessage(), e ); } }  void purge( Schedule schedule ); void purgeRepository( RepositoryPurgeConfiguration repoPurge ); void purgeDirectory( DirectoryPurgeConfiguration dirPurge ); void purgeDistributedDirectory( DistributedDirectoryPurgeConfiguration dirPurge ); void purgeDistributedRepository( DistributedRepositoryPurgeConfiguration repoPurgeConfig );  }### Answer:
@Test public void testPurgingWithSinglePurgeConfiguration() throws Exception { purgeManager.purgeRepository( repoPurge ); assertNextBuildIs( repoPurge.getId() ); assertNextBuildIsNull(); purgeManager.purgeRepository( repoPurge ); purgeManager.purgeRepository( repoPurge ); purgeManager.purgeRepository( repoPurge ); purgeManager.purgeRepository( repoPurge ); purgeManager.purgeRepository( repoPurge ); assertNextBuildIs( repoPurge.getId() ); assertNextBuildIsNull(); }