You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/03/01 18:08:49 UTC
svn commit: r1295677 -
/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/
Author: olamy
Date: Thu Mar 1 17:08:49 2012
New Revision: 1295677
URL: http://svn.apache.org/viewvc?rev=1295677&view=rev
Log:
fix test issue on windows patch submitted by Eric Barboni
Added:
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java (with props)
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java (with props)
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase2Test.java
- copied, changed from r1295676, archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java
Modified:
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java
Added: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java?rev=1295677&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java (added)
+++ archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java Thu Mar 1 17:08:49 2012
@@ -0,0 +1,135 @@
+package org.apache.archiva.scheduler.repository;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import junit.framework.TestCase;
+import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.archiva.metadata.repository.TestRepositorySessionFactory;
+import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager;
+import org.apache.archiva.configuration.ArchivaConfiguration;
+import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
+import org.codehaus.plexus.util.FileUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import java.io.File;
+import java.util.Calendar;
+import java.util.List;
+
+import static org.mockito.Mockito.mock;
+
+/**
+ * ArchivaRepositoryScanningTaskExecutorPhase1Test
+ *
+ * @version $Id: ArchivaRepositoryScanningTaskExecutorPhase1Test.java 1214303 2011-12-14 15:37:51Z olamy $
+ */
+@RunWith( SpringJUnit4ClassRunner.class )
+@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
+public abstract class ArchivaRepositoryScanningTaskExecutorAbstractTest
+ extends TestCase
+{
+ @Inject
+ @Named( value = "taskExecutor#test-repository-scanning" )
+ protected TaskExecutor taskExecutor;
+
+ @Inject @Named(value = "archivaConfiguration#test-repository-scanning")
+ protected ArchivaConfiguration archivaConfig;
+
+ @Inject
+ @Named(value = "repositoryStatisticsManager#test")
+ protected RepositoryStatisticsManager repositoryStatisticsManager;
+
+ @Inject
+ @Named( value = "knownRepositoryContentConsumer#test-consumer" )
+ protected TestConsumer testConsumer;
+
+ @Inject
+ @Named( value = "repositorySessionFactory#test" )
+ private TestRepositorySessionFactory factory;
+
+ protected File repoDir;
+
+ protected static final String TEST_REPO_ID = "testRepo";
+
+ protected MetadataRepository metadataRepository;
+
+ @Before
+ public void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ File sourceRepoDir = new File( "./src/test/repositories/default-repository" );
+ repoDir = new File( "./target/default-repository" );
+
+ FileUtils.deleteDirectory( repoDir );
+ assertFalse( "Default Test Repository should not exist.", repoDir.exists() );
+
+ repoDir.mkdir();
+
+ FileUtils.copyDirectoryStructure( sourceRepoDir, repoDir );
+ // set the timestamps to a time well in the past
+ Calendar cal = Calendar.getInstance();
+ cal.add( Calendar.YEAR, -1 );
+ for ( File f : (List<File>) FileUtils.getFiles( repoDir, "**", null ) )
+ {
+ f.setLastModified( cal.getTimeInMillis() );
+ }
+ // TODO: test they are excluded instead
+ for ( String dir : (List<String>) FileUtils.getDirectoryNames( repoDir, "**/.svn", null, false ) )
+ {
+ FileUtils.deleteDirectory( new File( repoDir, dir ) );
+ }
+
+ assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() );
+
+ assertNotNull( archivaConfig );
+
+ // Create it
+ ManagedRepositoryConfiguration repositoryConfiguration = new ManagedRepositoryConfiguration();
+ repositoryConfiguration.setId( TEST_REPO_ID );
+ repositoryConfiguration.setName( "Test Repository" );
+ repositoryConfiguration.setLocation( repoDir.getAbsolutePath() );
+ archivaConfig.getConfiguration().getManagedRepositories().clear();
+ archivaConfig.getConfiguration().addManagedRepository( repositoryConfiguration );
+
+ metadataRepository = mock( MetadataRepository.class );
+
+ factory.setRepository( metadataRepository );
+ }
+
+ @After
+ public void tearDown()
+ throws Exception
+ {
+ FileUtils.deleteDirectory( repoDir );
+
+ assertFalse( repoDir.exists() );
+
+ super.tearDown();
+ }
+
+}
Propchange: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java?rev=1295677&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java (added)
+++ archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java Thu Mar 1 17:08:49 2012
@@ -0,0 +1,59 @@
+package org.apache.archiva.scheduler.repository;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.archiva.model.ArtifactReference;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import java.util.Collection;
+
+/**
+ * ArchivaRepositoryScanningTaskExecutorPhase1Test
+ *
+ * @version $Id: ArchivaRepositoryScanningTaskExecutorPhase1Test.java 1214303 2011-12-14 15:37:51Z olamy $
+ */
+@RunWith( SpringJUnit4ClassRunner.class )
+@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
+public class ArchivaRepositoryScanningTaskExecutorPhase1Test
+ extends ArchivaRepositoryScanningTaskExecutorAbstractTest
+{
+ // Split of ArchivaRepositoryScanningTaskExecutorTest should be executed first
+ // to avoid testConsumer in unknown state if member of Phase2 all ready executed
+ @Test
+ public void testExecutor()
+ throws Exception
+ {
+ RepositoryTask repoTask = new RepositoryTask();
+
+ repoTask.setRepositoryId( TEST_REPO_ID );
+
+ taskExecutor.executeTask( repoTask );
+
+ Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
+
+ assertNotNull( unprocessedResultList );
+ assertEquals( "Incorrect number of unprocessed artifacts detected.", 8, unprocessedResultList.size() );
+
+ }
+
+}
Propchange: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase2Test.java (from r1295676, archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java)
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase2Test.java?p2=archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase2Test.java&p1=archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java&r1=1295676&r2=1295677&rev=1295677&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase2Test.java Thu Mar 1 17:08:49 2012
@@ -19,140 +19,30 @@ package org.apache.archiva.scheduler.rep
* under the License.
*/
-import junit.framework.TestCase;
-import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.TestRepositorySessionFactory;
import org.apache.archiva.metadata.repository.stats.RepositoryStatistics;
-import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager;
-import org.apache.archiva.configuration.ArchivaConfiguration;
-import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.archiva.model.ArtifactReference;
-import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
import org.codehaus.plexus.util.FileUtils;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import javax.inject.Inject;
-import javax.inject.Named;
import java.io.File;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
-import java.util.List;
-
-import static org.mockito.Mockito.mock;
/**
- * ArchivaRepositoryScanningTaskExecutorTest
+ * ArchivaRepositoryScanningTaskExecutorPhase2Test
*
- * @version $Id$
+ * @version $Id: ArchivaRepositoryScanningTaskExecutorTest.java 1214303 2011-12-14 15:37:51Z olamy $
*/
@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
-public class ArchivaRepositoryScanningTaskExecutorTest
- extends TestCase
+public class ArchivaRepositoryScanningTaskExecutorPhase2Test
+ extends ArchivaRepositoryScanningTaskExecutorAbstractTest
{
- @Inject
- @Named( value = "taskExecutor#test-repository-scanning" )
- private TaskExecutor taskExecutor;
-
- @Inject @Named(value = "archivaConfiguration#test-repository-scanning")
- private ArchivaConfiguration archivaConfig;
-
- @Inject
- @Named(value = "repositoryStatisticsManager#test")
- private RepositoryStatisticsManager repositoryStatisticsManager;
-
- @Inject
- @Named( value = "knownRepositoryContentConsumer#test-consumer" )
- private TestConsumer testConsumer;
-
- @Inject
- @Named( value = "repositorySessionFactory#test" )
- private TestRepositorySessionFactory factory;
-
- private File repoDir;
-
- private static final String TEST_REPO_ID = "testRepo";
-
- private MetadataRepository metadataRepository;
-
- @Before
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- File sourceRepoDir = new File( "./src/test/repositories/default-repository" );
- repoDir = new File( "./target/default-repository" );
-
- FileUtils.deleteDirectory( repoDir );
- assertFalse( "Default Test Repository should not exist.", repoDir.exists() );
-
- repoDir.mkdir();
-
- FileUtils.copyDirectoryStructure( sourceRepoDir, repoDir );
- // set the timestamps to a time well in the past
- Calendar cal = Calendar.getInstance();
- cal.add( Calendar.YEAR, -1 );
- for ( File f : (List<File>) FileUtils.getFiles( repoDir, "**", null ) )
- {
- f.setLastModified( cal.getTimeInMillis() );
- }
- // TODO: test they are excluded instead
- for ( String dir : (List<String>) FileUtils.getDirectoryNames( repoDir, "**/.svn", null, false ) )
- {
- FileUtils.deleteDirectory( new File( repoDir, dir ) );
- }
-
- assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() );
-
- assertNotNull( archivaConfig );
-
- // Create it
- ManagedRepositoryConfiguration repositoryConfiguration = new ManagedRepositoryConfiguration();
- repositoryConfiguration.setId( TEST_REPO_ID );
- repositoryConfiguration.setName( "Test Repository" );
- repositoryConfiguration.setLocation( repoDir.getAbsolutePath() );
- archivaConfig.getConfiguration().getManagedRepositories().clear();
- archivaConfig.getConfiguration().addManagedRepository( repositoryConfiguration );
-
- metadataRepository = mock( MetadataRepository.class );
-
- factory.setRepository( metadataRepository );
- }
-
- @After
- public void tearDown()
- throws Exception
- {
- FileUtils.deleteDirectory( repoDir );
-
- assertFalse( repoDir.exists() );
-
- super.tearDown();
- }
-
- @Test
- public void testExecutor()
- throws Exception
- {
- RepositoryTask repoTask = new RepositoryTask();
-
- repoTask.setRepositoryId( TEST_REPO_ID );
-
- taskExecutor.executeTask( repoTask );
-
- Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
-
- assertNotNull( unprocessedResultList );
- assertEquals( "Incorrect number of unprocessed artifacts detected.", 8, unprocessedResultList.size() );
- }
@Test
public void testExecutorScanOnlyNewArtifacts()
@@ -186,7 +76,8 @@ public class ArchivaRepositoryScanningTa
// assertEquals( 14159, newStats.getTotalArtifactFileSize() );
File newArtifactGroup = new File( repoDir, "org/apache/archiva" );
-
+ assertFalse( "newArtifactGroup should not exist.", newArtifactGroup.exists() );
+
FileUtils.copyDirectoryStructure( new File( "target/test-classes/test-repo/org/apache/archiva" ),
newArtifactGroup );
@@ -230,7 +121,8 @@ public class ArchivaRepositoryScanningTa
createAndSaveTestStats();
File newArtifactGroup = new File( repoDir, "org/apache/archiva" );
-
+ assertFalse( "newArtifactGroup should not exist.", newArtifactGroup.exists() );
+
FileUtils.copyDirectoryStructure( new File( "target/test-classes/test-repo/org/apache/archiva" ),
newArtifactGroup );
@@ -276,7 +168,8 @@ public class ArchivaRepositoryScanningTa
createAndSaveTestStats();
File newArtifactGroup = new File( repoDir, "org/apache/archiva" );
-
+ assertFalse( "newArtifactGroup should not exist.", newArtifactGroup.exists() );
+
FileUtils.copyDirectoryStructure( new File( "target/test-classes/test-repo/org/apache/archiva" ),
newArtifactGroup );
Modified: archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java?rev=1295677&r1=1295676&r2=1295677&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java Thu Mar 1 17:08:49 2012
@@ -1,351 +0,0 @@
-package org.apache.archiva.scheduler.repository;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import junit.framework.TestCase;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.TestRepositorySessionFactory;
-import org.apache.archiva.metadata.repository.stats.RepositoryStatistics;
-import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager;
-import org.apache.archiva.configuration.ArchivaConfiguration;
-import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.archiva.model.ArtifactReference;
-import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
-import org.codehaus.plexus.util.FileUtils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import java.io.File;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-
-import static org.mockito.Mockito.mock;
-
-/**
- * ArchivaRepositoryScanningTaskExecutorTest
- *
- * @version $Id$
- */
-@RunWith( SpringJUnit4ClassRunner.class )
-@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
-public class ArchivaRepositoryScanningTaskExecutorTest
- extends TestCase
-{
- @Inject
- @Named( value = "taskExecutor#test-repository-scanning" )
- private TaskExecutor taskExecutor;
-
- @Inject @Named(value = "archivaConfiguration#test-repository-scanning")
- private ArchivaConfiguration archivaConfig;
-
- @Inject
- @Named(value = "repositoryStatisticsManager#test")
- private RepositoryStatisticsManager repositoryStatisticsManager;
-
- @Inject
- @Named( value = "knownRepositoryContentConsumer#test-consumer" )
- private TestConsumer testConsumer;
-
- @Inject
- @Named( value = "repositorySessionFactory#test" )
- private TestRepositorySessionFactory factory;
-
- private File repoDir;
-
- private static final String TEST_REPO_ID = "testRepo";
-
- private MetadataRepository metadataRepository;
-
- @Before
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- File sourceRepoDir = new File( "./src/test/repositories/default-repository" );
- repoDir = new File( "./target/default-repository" );
-
- FileUtils.deleteDirectory( repoDir );
- assertFalse( "Default Test Repository should not exist.", repoDir.exists() );
-
- repoDir.mkdir();
-
- FileUtils.copyDirectoryStructure( sourceRepoDir, repoDir );
- // set the timestamps to a time well in the past
- Calendar cal = Calendar.getInstance();
- cal.add( Calendar.YEAR, -1 );
- for ( File f : (List<File>) FileUtils.getFiles( repoDir, "**", null ) )
- {
- f.setLastModified( cal.getTimeInMillis() );
- }
- // TODO: test they are excluded instead
- for ( String dir : (List<String>) FileUtils.getDirectoryNames( repoDir, "**/.svn", null, false ) )
- {
- FileUtils.deleteDirectory( new File( repoDir, dir ) );
- }
-
- assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() );
-
- assertNotNull( archivaConfig );
-
- // Create it
- ManagedRepositoryConfiguration repositoryConfiguration = new ManagedRepositoryConfiguration();
- repositoryConfiguration.setId( TEST_REPO_ID );
- repositoryConfiguration.setName( "Test Repository" );
- repositoryConfiguration.setLocation( repoDir.getAbsolutePath() );
- archivaConfig.getConfiguration().getManagedRepositories().clear();
- archivaConfig.getConfiguration().addManagedRepository( repositoryConfiguration );
-
- metadataRepository = mock( MetadataRepository.class );
-
- factory.setRepository( metadataRepository );
- }
-
- @After
- public void tearDown()
- throws Exception
- {
- FileUtils.deleteDirectory( repoDir );
-
- assertFalse( repoDir.exists() );
-
- super.tearDown();
- }
-
- @Test
- public void testExecutor()
- throws Exception
- {
- RepositoryTask repoTask = new RepositoryTask();
-
- repoTask.setRepositoryId( TEST_REPO_ID );
-
- taskExecutor.executeTask( repoTask );
-
- Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
-
- assertNotNull( unprocessedResultList );
- assertEquals( "Incorrect number of unprocessed artifacts detected.", 8, unprocessedResultList.size() );
- }
-
- @Test
- public void testExecutorScanOnlyNewArtifacts()
- throws Exception
- {
- RepositoryTask repoTask = new RepositoryTask();
-
- repoTask.setRepositoryId( TEST_REPO_ID );
- repoTask.setScanAll( false );
-
- createAndSaveTestStats();
-
- taskExecutor.executeTask( repoTask );
-
- // check no artifacts processed
- Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
-
- assertNotNull( unprocessedResultList );
- assertEquals( "Incorrect number of unprocessed artifacts detected. No new artifacts should have been found.", 0,
- unprocessedResultList.size() );
-
- // check correctness of new stats
- RepositoryStatistics newStats =
- repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID );
- assertEquals( 0, newStats.getNewFileCount() );
- assertEquals( 31, newStats.getTotalFileCount() );
- // FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation
-// assertEquals( 8, newStats.getTotalArtifactCount() );
-// assertEquals( 3, newStats.getTotalGroupCount() );
-// assertEquals( 5, newStats.getTotalProjectCount() );
-// assertEquals( 14159, newStats.getTotalArtifactFileSize() );
-
- File newArtifactGroup = new File( repoDir, "org/apache/archiva" );
-
- FileUtils.copyDirectoryStructure( new File( "target/test-classes/test-repo/org/apache/archiva" ),
- newArtifactGroup );
-
- // update last modified date
- new File( newArtifactGroup, "archiva-index-methods-jar-test/1.0/pom.xml" ).setLastModified(
- Calendar.getInstance().getTimeInMillis() + 1000 );
- new File( newArtifactGroup,
- "archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" ).setLastModified(
- Calendar.getInstance().getTimeInMillis() + 1000 );
-
- assertTrue( newArtifactGroup.exists() );
-
- taskExecutor.executeTask( repoTask );
-
- unprocessedResultList = testConsumer.getConsumed();
- assertNotNull( unprocessedResultList );
- assertEquals( "Incorrect number of unprocessed artifacts detected. One new artifact should have been found.", 1,
- unprocessedResultList.size() );
-
- // check correctness of new stats
- RepositoryStatistics updatedStats =
- repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID );
- assertEquals( 2, updatedStats.getNewFileCount() );
- assertEquals( 33, updatedStats.getTotalFileCount() );
- // FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation
-// assertEquals( 8, newStats.getTotalArtifactCount() );
-// assertEquals( 3, newStats.getTotalGroupCount() );
-// assertEquals( 5, newStats.getTotalProjectCount() );
-// assertEquals( 19301, updatedStats.getTotalArtifactFileSize() );
- }
-
- @Test
- public void testExecutorScanOnlyNewArtifactsChangeTimes()
- throws Exception
- {
- RepositoryTask repoTask = new RepositoryTask();
-
- repoTask.setRepositoryId( TEST_REPO_ID );
- repoTask.setScanAll( false );
-
- createAndSaveTestStats();
-
- File newArtifactGroup = new File( repoDir, "org/apache/archiva" );
-
- FileUtils.copyDirectoryStructure( new File( "target/test-classes/test-repo/org/apache/archiva" ),
- newArtifactGroup );
-
- // update last modified date, placing shortly after last scan
- new File( newArtifactGroup, "archiva-index-methods-jar-test/1.0/pom.xml" ).setLastModified(
- Calendar.getInstance().getTimeInMillis() + 1000 );
- new File( newArtifactGroup,
- "archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" ).setLastModified(
- Calendar.getInstance().getTimeInMillis() + 1000 );
-
- assertTrue( newArtifactGroup.exists() );
-
- // scan using the really long previous duration
- taskExecutor.executeTask( repoTask );
-
- // check no artifacts processed
- Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
- assertNotNull( unprocessedResultList );
- assertEquals( "Incorrect number of unprocessed artifacts detected. One new artifact should have been found.", 1,
- unprocessedResultList.size() );
-
- // check correctness of new stats
- RepositoryStatistics newStats =
- repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID );
- assertEquals( 2, newStats.getNewFileCount() );
- assertEquals( 33, newStats.getTotalFileCount() );
- // FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation
-// assertEquals( 8, newStats.getTotalArtifactCount() );
-// assertEquals( 3, newStats.getTotalGroupCount() );
-// assertEquals( 5, newStats.getTotalProjectCount() );
-// assertEquals( 19301, newStats.getTotalArtifactFileSize() );
- }
-
- @Test
- public void testExecutorScanOnlyNewArtifactsMidScan()
- throws Exception
- {
- RepositoryTask repoTask = new RepositoryTask();
-
- repoTask.setRepositoryId( TEST_REPO_ID );
- repoTask.setScanAll( false );
-
- createAndSaveTestStats();
-
- File newArtifactGroup = new File( repoDir, "org/apache/archiva" );
-
- FileUtils.copyDirectoryStructure( new File( "target/test-classes/test-repo/org/apache/archiva" ),
- newArtifactGroup );
-
- // update last modified date, placing in middle of last scan
- new File( newArtifactGroup, "archiva-index-methods-jar-test/1.0/pom.xml" ).setLastModified(
- Calendar.getInstance().getTimeInMillis() - 50000 );
- new File( newArtifactGroup,
- "archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" ).setLastModified(
- Calendar.getInstance().getTimeInMillis() - 50000 );
-
- assertTrue( newArtifactGroup.exists() );
-
- // scan using the really long previous duration
- taskExecutor.executeTask( repoTask );
-
- // check no artifacts processed
- Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
- assertNotNull( unprocessedResultList );
- assertEquals( "Incorrect number of unprocessed artifacts detected. One new artifact should have been found.", 1,
- unprocessedResultList.size() );
-
- // check correctness of new stats
- RepositoryStatistics newStats =
- repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID );
- assertEquals( 2, newStats.getNewFileCount() );
- assertEquals( 33, newStats.getTotalFileCount() );
- // FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation
-// assertEquals( 8, newStats.getTotalArtifactCount() );
-// assertEquals( 3, newStats.getTotalGroupCount() );
-// assertEquals( 5, newStats.getTotalProjectCount() );
-// assertEquals( 19301, newStats.getTotalArtifactFileSize() );
- }
-
- @Test
- public void testExecutorForceScanAll()
- throws Exception
- {
- RepositoryTask repoTask = new RepositoryTask();
-
- repoTask.setRepositoryId( TEST_REPO_ID );
- repoTask.setScanAll( true );
-
- Date date = Calendar.getInstance().getTime();
- repositoryStatisticsManager.addStatisticsAfterScan( metadataRepository, TEST_REPO_ID,
- new Date( date.getTime() - 1234567 ), date, 8, 8 );
-
- taskExecutor.executeTask( repoTask );
-
- Collection<ArtifactReference> unprocessedResultList = testConsumer.getConsumed();
-
- assertNotNull( unprocessedResultList );
- assertEquals( "Incorrect number of unprocessed artifacts detected.", 8, unprocessedResultList.size() );
- }
-
- private void createAndSaveTestStats()
- throws MetadataRepositoryException
- {
- Date date = Calendar.getInstance().getTime();
- RepositoryStatistics stats = new RepositoryStatistics();
- stats.setScanStartTime( new Date( date.getTime() - 1234567 ) );
- stats.setScanEndTime( date );
- stats.setNewFileCount( 31 );
- stats.setTotalArtifactCount( 8 );
- stats.setTotalFileCount( 31 );
- stats.setTotalGroupCount( 3 );
- stats.setTotalProjectCount( 5 );
- stats.setTotalArtifactFileSize( 38545 );
-
- repositoryStatisticsManager.addStatisticsAfterScan( metadataRepository, TEST_REPO_ID,
- new Date( date.getTime() - 1234567 ), date, 31, 31 );
- }
-}