View Javadoc
1   package org.apache.archiva.consumers.core;
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 org.apache.archiva.common.plexusbridge.PlexusSisuBridge;
23  import org.apache.archiva.common.utils.BaseFile;
24  import org.apache.archiva.configuration.ArchivaConfiguration;
25  import org.apache.archiva.configuration.FileType;
26  import org.apache.archiva.configuration.FileTypes;
27  import org.apache.archiva.consumers.KnownRepositoryContentConsumer;
28  import org.apache.archiva.consumers.functors.ConsumerWantsFilePredicate;
29  import org.apache.maven.index.NexusIndexer;
30  import org.apache.maven.index.context.IndexingContext;
31  import org.junit.After;
32  import static org.junit.Assert.*;
33  import org.junit.Before;
34  import org.junit.Test;
35  import org.junit.runner.RunWith;
36  import org.springframework.context.ApplicationContext;
37  import org.springframework.test.context.ContextConfiguration;
38  
39  import javax.inject.Inject;
40  import java.io.File;
41  import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
42  import org.apache.commons.lang.StringUtils;
43  
44  @RunWith( ArchivaSpringJUnit4ClassRunner.class )
45  @ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
46  public abstract class AbstractArtifactConsumerTest
47  {
48      private File repoLocation;
49  
50      protected KnownRepositoryContentConsumer consumer;
51  
52      @Inject
53      protected ApplicationContext applicationContext;
54  
55      @Inject
56      ArchivaConfiguration archivaConfiguration;
57  
58      @Inject
59      protected PlexusSisuBridge plexusSisuBridge;
60  
61  
62      @Before
63      public void setUp()
64          throws Exception
65      {
66          FileType fileType =
67              (FileType) archivaConfiguration.getConfiguration().getRepositoryScanning().getFileTypes().get( 0 );
68          assertEquals( FileTypes.ARTIFACTS, fileType.getId() );
69          fileType.addPattern( "**/*.xml" );
70  
71          repoLocation = new File( "target/test-" + getName() + "/test-repo" );
72      }
73  
74      @After
75      public void tearDown()
76          throws Exception
77      {
78          NexusIndexer nexusIndexer = plexusSisuBridge.lookup( NexusIndexer.class );
79          for ( IndexingContext indexingContext : nexusIndexer.getIndexingContexts().values() )
80          {
81              nexusIndexer.removeIndexingContext( indexingContext, false );
82          }
83      }
84  
85  
86      @Test
87      public void testConsumption()
88      {
89          File localFile =
90              new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata.xml" );
91  
92          ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate();
93          BaseFile baseFile = new BaseFile( repoLocation, localFile );
94          predicate.setBasefile( baseFile );
95  
96          assertFalse( predicate.evaluate( consumer ) );
97      }
98  
99      @Test
100     public void testConsumptionOfOtherMetadata()
101     {
102         File localFile =
103             new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata-central.xml" );
104 
105         ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate();
106         BaseFile baseFile = new BaseFile( repoLocation, localFile );
107         predicate.setBasefile( baseFile );
108 
109         assertFalse( predicate.evaluate( consumer ) );
110     }
111     
112     public String getName()
113     {
114         return StringUtils.substringAfterLast( getClass().getName(), "." );
115     }
116 }