1 package org.apache.maven.plugins.dependency;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.IOException;
24
25 import org.apache.commons.io.FileUtils;
26 import org.apache.maven.plugin.LegacySupport;
27 import org.apache.maven.plugin.MojoExecutionException;
28 import org.apache.maven.plugins.dependency.testUtils.DependencyArtifactStubFactory;
29 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
30 import org.eclipse.aether.DefaultRepositorySystemSession;
31 import org.eclipse.aether.RepositorySystem;
32 import org.eclipse.aether.repository.LocalRepository;
33 import org.eclipse.aether.repository.LocalRepositoryManager;
34 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
35
36 public abstract class AbstractDependencyMojoTestCase
37 extends AbstractMojoTestCase
38 {
39
40 protected File testDir;
41
42 protected DependencyArtifactStubFactory stubFactory;
43
44 protected void setUp( String testDirStr, boolean createFiles )
45 throws Exception
46 {
47 setUp( testDirStr, createFiles, true );
48 }
49
50 protected void setUp( String testDirStr, boolean createFiles, boolean flattenedPath )
51 throws Exception
52 {
53
54 super.setUp();
55 testDir = new File( getBasedir(), "target" + File.separatorChar + "unit-tests" + File.separatorChar + testDirStr
56 + File.separatorChar );
57 FileUtils.deleteDirectory( testDir );
58 assertFalse( testDir.exists() );
59
60 stubFactory = new DependencyArtifactStubFactory( this.testDir, createFiles, flattenedPath );
61 }
62
63 protected void tearDown()
64 {
65 if ( testDir != null )
66 {
67 try
68 {
69 FileUtils.deleteDirectory( testDir );
70 }
71 catch ( IOException e )
72 {
73 e.printStackTrace();
74 fail( "Trying to remove directory:" + testDir + System.lineSeparator() + e.toString() );
75 }
76 assertFalse( testDir.exists() );
77 }
78 }
79
80 protected void copyFile( AbstractDependencyMojo mojo, File artifact, File destFile )
81 throws MojoExecutionException
82 {
83 mojo.copyFile( artifact, destFile );
84 }
85
86
87 protected void installLocalRepository( LegacySupport legacySupport )
88 throws ComponentLookupException
89 {
90 DefaultRepositorySystemSession repoSession =
91 (DefaultRepositorySystemSession) legacySupport.getRepositorySession();
92 RepositorySystem system = lookup( RepositorySystem.class );
93 String directory = stubFactory.getWorkingDir().toString();
94 LocalRepository localRepository = new LocalRepository( directory );
95 LocalRepositoryManager manager = system.newLocalRepositoryManager( repoSession, localRepository );
96 repoSession.setLocalRepositoryManager( manager );
97 }
98 }