]> source.dussan.org Git - archiva.git/blob
ccca2f535e22563402976da705e73515746fbd08
[archiva.git] /
1 package org.apache.archiva.consumers.lucene;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import java.io.File;
23
24 import org.apache.commons.io.FileUtils;
25 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
26 import org.apache.maven.archiva.model.ArchivaArtifact;
27 import org.apache.maven.archiva.repository.ManagedRepositoryContent;
28 import org.apache.maven.archiva.repository.RepositoryContentFactory;
29 import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
30 import org.codehaus.plexus.spring.PlexusInSpringTestCase;
31 import org.easymock.MockControl;
32 import org.easymock.classextension.MockClassControl;
33 import org.sonatype.nexus.index.ArtifactContext;
34 import org.sonatype.nexus.index.ArtifactContextProducer;
35 import org.sonatype.nexus.index.IndexerEngine;
36 import org.sonatype.nexus.index.context.IndexingContext;
37
38 public class LuceneCleanupRemoveIndexedConsumerTest
39     extends PlexusInSpringTestCase
40 {
41     private LuceneCleanupRemoveIndexedConsumer consumer;
42
43     private RepositoryContentFactory repoFactory;
44
45     private MockControl repoFactoryControl;
46
47     private ManagedRepositoryConfiguration repositoryConfig;
48     
49     private MockControl indexerEngineControl;
50     
51     private IndexerEngine indexerEngine;
52
53     private MockControl contextProducerControl;
54
55     private ArtifactContextProducer artifactContextProducer;
56
57     private MockControl acControl;
58
59     private ArtifactContext ac;
60
61     public void setUp()
62         throws Exception
63     {
64         super.setUp();
65
66         indexerEngineControl = MockControl.createControl( IndexerEngine.class );
67         indexerEngineControl.setDefaultMatcher( MockControl.ALWAYS_MATCHER );
68         indexerEngine = (IndexerEngine) indexerEngineControl.getMock();
69         
70         repoFactoryControl = MockClassControl.createControl( RepositoryContentFactory.class );
71         repoFactory = (RepositoryContentFactory) repoFactoryControl.getMock();
72
73         consumer = new LuceneCleanupRemoveIndexedConsumer( repoFactory, indexerEngine );
74
75         repositoryConfig = new ManagedRepositoryConfiguration();
76         repositoryConfig.setId( "test-repo" );
77         repositoryConfig.setLocation( getBasedir() + "/target/test-classes/test-repo" );
78         repositoryConfig.setLayout( "default" );
79         repositoryConfig.setName( "Test Repository" );
80         repositoryConfig.setScanned( true );
81         repositoryConfig.setSnapshots( false );
82         repositoryConfig.setReleases( true );
83         repositoryConfig.setIndexDir( getBasedir() + "/target/test-classes/test-repo/.cleanup-index" );
84
85         contextProducerControl = MockControl.createControl( ArtifactContextProducer.class );
86         contextProducerControl.setDefaultMatcher( MockControl.ALWAYS_MATCHER );
87         artifactContextProducer = (ArtifactContextProducer) contextProducerControl.getMock();
88
89         consumer.setArtifactContextProducer( artifactContextProducer );
90
91         acControl = MockClassControl.createControl( ArtifactContext.class );
92         ac = (ArtifactContext) acControl.getMock();
93     }
94
95     public void tearDown()
96         throws Exception
97     {
98         FileUtils.deleteDirectory( new File( repositoryConfig.getIndexDir() ) );
99
100         super.tearDown();
101     }
102
103     public void testProcessArtifactArtifactDoesNotExist()
104         throws Exception
105     {
106         ArchivaArtifact artifact =
107             new ArchivaArtifact( "org.apache.archiva", "archiva-lucene-consumers", "1.2", null, "jar", "test-repo" );
108         ManagedRepositoryContent repoContent = new ManagedDefaultRepositoryContent();
109         repoContent.setRepository( repositoryConfig );
110
111         IndexingContext context = null; 
112             
113         File artifactFile =
114             new File( repositoryConfig.getLocation(),
115                       "org/apache/archiva/archiva-lucene-consumers/1.2/archiva-lucene-consumers-1.2.jar" );
116        
117         repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( repositoryConfig.getId() ),
118                                             repoContent );
119         contextProducerControl.expectAndReturn( artifactContextProducer.getArtifactContext( context, artifactFile ), ac );        
120         indexerEngine.remove( context, ac );
121         indexerEngineControl.setDefaultVoidCallable();
122         
123         repoFactoryControl.replay();      
124         contextProducerControl.replay();
125         indexerEngineControl.replay();
126        
127         consumer.processArchivaArtifact( artifact );
128
129         repoFactoryControl.verify();       
130         contextProducerControl.verify();
131         indexerEngineControl.verify();       
132     }
133
134     public void testProcessArtifactArtifactExists()
135         throws Exception
136     {
137         ArchivaArtifact artifact =
138             new ArchivaArtifact( "org.apache.maven.archiva", "archiva-lucene-cleanup", "1.0", null, "jar", "test-repo" );
139         ManagedRepositoryContent repoContent = new ManagedDefaultRepositoryContent();
140         repoContent.setRepository( repositoryConfig );
141
142         repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( repositoryConfig.getId() ),
143                                             repoContent );
144
145         repoFactoryControl.replay();
146
147         consumer.processArchivaArtifact( artifact );
148
149         repoFactoryControl.verify();
150     }
151 }