001    package org.apache.maven.project.artifact;
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.repository.RepositorySystem;
023    import org.codehaus.plexus.PlexusTestCase;
024    
025    public class MavenMetadataSourceTest
026        extends PlexusTestCase
027    {
028        private RepositorySystem repositorySystem;
029    
030        protected void setUp()
031            throws Exception
032        {
033            super.setUp();
034            repositorySystem = lookup( RepositorySystem.class );
035        }
036    
037        @Override
038        protected void tearDown()
039            throws Exception
040        {
041            repositorySystem = null;
042            super.tearDown();
043        }
044    
045        public void testShouldNotCarryExclusionsOverFromDependencyToDependency()
046            throws Exception
047        {
048            /*
049            Dependency dep1 = new Dependency();
050            dep1.setGroupId( "test" );
051            dep1.setArtifactId( "test-artifact" );
052            dep1.setVersion( "1" );
053            dep1.setType( "jar" );
054    
055            Exclusion exc = new Exclusion();
056            exc.setGroupId( "test" );
057            exc.setArtifactId( "test-artifact3" );
058    
059            dep1.addExclusion( exc );
060    
061            Dependency dep2 = new Dependency();
062            dep2.setGroupId( "test" );
063            dep2.setArtifactId( "test-artifact2" );
064            dep2.setVersion( "1" );
065            dep2.setType( "jar" );
066    
067            List deps = new ArrayList();
068            deps.add( dep1 );
069            deps.add( dep2 );
070    
071            ArtifactFactory factory = lookup( ArtifactFactory.class );
072    
073            ArtifactFilter dependencyFilter = new ScopeArtifactFilter( Artifact.SCOPE_COMPILE );
074    
075            MavenProject project = new MavenProject( new Model() );
076    
077            Set result = project.createArtifacts( dependencyFilter );
078    
079            for ( Iterator it = result.iterator(); it.hasNext(); )
080            {
081                Artifact artifact = ( Artifact ) it.next();
082    
083                if ( "test-artifact2".equals( artifact.getArtifactId() ) )
084                {
085                    ArtifactFilter filter = artifact.getDependencyFilter();
086    
087                    assertSame( dependencyFilter, filter );
088                }
089            }
090            */
091        }
092    
093        //TODO: restore these if it makes sense
094        /*
095        public void testShouldUseCompileScopeIfDependencyScopeEmpty()
096            throws Exception
097        {
098            String groupId = "org.apache.maven";
099            String artifactId = "maven-model";
100    
101            Dependency dep = new Dependency();
102    
103            dep.setGroupId( groupId );
104            dep.setArtifactId( artifactId );
105            dep.setVersion( "2.0-alpha-3" );
106    
107            Model model = new Model();
108    
109            model.addDependency( dep );
110    
111            MavenProject project = new MavenProject( model, repositorySystem );
112    
113            project.setArtifacts( project.createArtifacts( null ) );
114    
115            String key = ArtifactUtils.versionlessKey( groupId, artifactId );
116    
117            Map artifactMap = project.getArtifactMap();
118    
119            assertNotNull( "artifact-map should not be null.", artifactMap );
120            assertEquals( "artifact-map should contain 1 element.", 1, artifactMap.size() );
121    
122            Artifact artifact = (Artifact) artifactMap.get( key );
123    
124            assertNotNull( "dependency artifact not found in map.", artifact );
125            assertEquals( "dependency artifact has wrong scope.", Artifact.SCOPE_COMPILE, artifact.getScope() );
126    
127            //check for back-propagation of default scope.
128            assertEquals( "default scope NOT back-propagated to dependency.", Artifact.SCOPE_COMPILE, dep.getScope() );
129        }
130    
131        public void testShouldUseInjectedTestScopeFromDependencyManagement()
132            throws Exception
133        {
134            String groupId = "org.apache.maven";
135            String artifactId = "maven-model";
136    
137            Dependency dep = new Dependency();
138    
139            dep.setGroupId( groupId );
140            dep.setArtifactId( artifactId );
141            dep.setVersion( "2.0-alpha-3" );
142    
143            Model model = new Model();
144    
145            model.addDependency( dep );
146    
147            Dependency mgd = new Dependency();
148            mgd.setGroupId( groupId );
149            mgd.setArtifactId( artifactId );
150            mgd.setScope( Artifact.SCOPE_TEST );
151    
152            DependencyManagement depMgmt = new DependencyManagement();
153    
154            depMgmt.addDependency( mgd );
155    
156            model.setDependencyManagement( depMgmt );
157    
158            MavenProject project = new MavenProject( model, repositorySystem );
159    
160            TestModelDefaultsInjector injector = new TestModelDefaultsInjector();
161    
162            injector.injectDefaults( model );
163    
164            project.setArtifacts( project.createArtifacts( null ) );
165    
166            String key = ArtifactUtils.versionlessKey( groupId, artifactId );
167    
168            Map artifactMap = project.getArtifactMap();
169    
170            assertNotNull( "artifact-map should not be null.", artifactMap );
171            assertEquals( "artifact-map should contain 1 element.", 1, artifactMap.size() );
172    
173            Artifact artifact = (Artifact) artifactMap.get( key );
174    
175            assertNotNull( "dependency artifact not found in map.", artifact );
176            assertEquals( "dependency artifact has wrong scope.", Artifact.SCOPE_TEST, artifact.getScope() );
177    
178            //check for back-propagation of default scope.
179            assertEquals( "default scope NOT back-propagated to dependency.", Artifact.SCOPE_TEST, dep.getScope() );
180        }
181        */
182    
183    }