1   package org.apache.maven.artifact.resolver.filter;
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.maven.artifact.Artifact;
23  import org.apache.maven.artifact.DefaultArtifact;
24  
25  import junit.framework.TestCase;
26  
27  /**
28   * Tests {@link ScopeArtifactFilter}.
29   * 
30   * @author Benjamin Bentmann
31   */
32  public class ScopeArtifactFilterTest
33      extends TestCase
34  {
35  
36      private Artifact newArtifact( String scope )
37      {
38          return new DefaultArtifact( "g", "a", "1.0", scope, "jar", "", null );
39      }
40  
41      public void testInclude_Compile()
42      {
43          ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_COMPILE );
44  
45          assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
46          assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
47          assertTrue( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
48          assertFalse( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
49          assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
50      }
51  
52      public void testInclude_CompilePlusRuntime()
53      {
54          ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_COMPILE_PLUS_RUNTIME );
55  
56          assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
57          assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
58          assertTrue( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
59          assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
60          assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
61      }
62  
63      public void testInclude_Runtime()
64      {
65          ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME );
66  
67          assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
68          assertFalse( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
69          assertFalse( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
70          assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
71          assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
72      }
73  
74      public void testInclude_RuntimePlusSystem()
75      {
76          ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME_PLUS_SYSTEM );
77  
78          assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
79          assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
80          assertFalse( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
81          assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
82          assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
83      }
84  
85      public void testInclude_Test()
86      {
87          ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_TEST );
88  
89          assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
90          assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
91          assertTrue( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
92          assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
93          assertTrue( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
94      }
95  
96  }