001package 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
022import org.apache.maven.artifact.Artifact;
023import org.apache.maven.artifact.DefaultArtifact;
024
025import junit.framework.TestCase;
026
027/**
028 * Tests {@link ScopeArtifactFilter}.
029 *
030 * @author Benjamin Bentmann
031 */
032public 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}