001    package org.apache.maven.artifact.resolver.filter;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *   http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    import org.apache.maven.artifact.Artifact;
023    import org.apache.maven.artifact.DefaultArtifact;
024    
025    import junit.framework.TestCase;
026    
027    /**
028     * Tests {@link ScopeArtifactFilter}.
029     * 
030     * @author Benjamin Bentmann
031     */
032    public class ScopeArtifactFilterTest
033        extends TestCase
034    {
035    
036        private Artifact newArtifact( String scope )
037        {
038            return new DefaultArtifact( "g", "a", "1.0", scope, "jar", "", null );
039        }
040    
041        public void testInclude_Compile()
042        {
043            ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_COMPILE );
044    
045            assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
046            assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
047            assertTrue( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
048            assertFalse( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
049            assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
050        }
051    
052        public void testInclude_CompilePlusRuntime()
053        {
054            ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_COMPILE_PLUS_RUNTIME );
055    
056            assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
057            assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
058            assertTrue( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
059            assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
060            assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
061        }
062    
063        public void testInclude_Runtime()
064        {
065            ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME );
066    
067            assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
068            assertFalse( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
069            assertFalse( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
070            assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
071            assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
072        }
073    
074        public void testInclude_RuntimePlusSystem()
075        {
076            ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME_PLUS_SYSTEM );
077    
078            assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
079            assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
080            assertFalse( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
081            assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
082            assertFalse( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
083        }
084    
085        public void testInclude_Test()
086        {
087            ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_TEST );
088    
089            assertTrue( filter.include( newArtifact( Artifact.SCOPE_COMPILE ) ) );
090            assertTrue( filter.include( newArtifact( Artifact.SCOPE_SYSTEM ) ) );
091            assertTrue( filter.include( newArtifact( Artifact.SCOPE_PROVIDED ) ) );
092            assertTrue( filter.include( newArtifact( Artifact.SCOPE_RUNTIME ) ) );
093            assertTrue( filter.include( newArtifact( Artifact.SCOPE_TEST ) ) );
094        }
095    
096    }