1 package org.apache.maven.plugins.assembly.archive.task.testutils;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.Assert;
23 import org.apache.maven.artifact.Artifact;
24 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
25 import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
26 import org.apache.maven.plugins.assembly.artifact.DependencyResolutionException;
27 import org.apache.maven.plugins.assembly.artifact.DependencyResolver;
28 import org.apache.maven.plugins.assembly.model.Assembly;
29 import org.apache.maven.plugins.assembly.model.DependencySet;
30 import org.apache.maven.plugins.assembly.model.ModuleSet;
31 import org.apache.maven.project.MavenProject;
32 import org.codehaus.plexus.archiver.ArchivedFileSet;
33 import org.codehaus.plexus.archiver.Archiver;
34 import org.codehaus.plexus.archiver.ArchiverException;
35 import org.easymock.EasyMock;
36 import org.easymock.classextension.EasyMockSupport;
37
38 import java.io.File;
39 import java.nio.charset.Charset;
40 import java.util.LinkedHashMap;
41 import java.util.List;
42 import java.util.Set;
43
44 import static org.easymock.EasyMock.anyInt;
45 import static org.easymock.EasyMock.anyObject;
46 import static org.easymock.EasyMock.expect;
47
48 public class MockAndControlForAddArtifactTask
49 {
50
51 public final Archiver archiver;
52
53 public final AssemblerConfigurationSource configSource;
54
55 public final DependencyResolver dependencyResolver;
56
57 private MavenProject project = null;
58
59 public MockAndControlForAddArtifactTask( final EasyMockSupport mockManager )
60 {
61 this( mockManager, null );
62 }
63
64 public MockAndControlForAddArtifactTask( final EasyMockSupport mockManager, final MavenProject project )
65 {
66 this.project = project;
67
68 archiver = mockManager.createMock( Archiver.class );
69 configSource = mockManager.createMock( AssemblerConfigurationSource.class );
70 dependencyResolver = mockManager.createMock( DependencyResolver.class );
71
72 enableDefaultExpectations();
73 }
74
75 private void enableDefaultExpectations()
76 {
77 expect( configSource.getProject() ).andReturn( project ).anyTimes();
78 expect( configSource.getMavenSession() ).andReturn( null ).anyTimes();
79 }
80
81 public void expectGetFinalName( final String finalName )
82 {
83 expect( configSource.getFinalName() ).andReturn( finalName ).atLeastOnce();
84 }
85
86 public void expectGetDestFile( final File destFile )
87 {
88 expect( archiver.getDestFile() ).andReturn( destFile ).atLeastOnce();
89 }
90
91 public void expectGetMode( final int originalDirMode, final int originalFileMode )
92 {
93 expect( archiver.getOverrideDirectoryMode() ).andReturn( originalDirMode );
94 expect( archiver.getOverrideFileMode() ).andReturn( originalFileMode );
95 archiver.setFileMode( anyInt() );
96 EasyMock.expectLastCall().anyTimes();
97 }
98
99
100 public void expectAddArchivedFileSet()
101 {
102 try
103 {
104 archiver.addArchivedFileSet( (File) anyObject(), (String) anyObject(), (String[]) anyObject(),
105 (String[]) anyObject() );
106 EasyMock.expectLastCall().anyTimes();
107 archiver.addArchivedFileSet( (ArchivedFileSet) anyObject(), (Charset) anyObject() );
108 EasyMock.expectLastCall().anyTimes();
109
110 }
111 catch ( final ArchiverException e )
112 {
113 Assert.fail( "Should never happen." );
114 }
115 }
116
117 public void expectModeChange( final int originalDirMode, final int originalFileMode, final int dirMode,
118 final int fileMode, final int numberOfChanges )
119 {
120 expect( archiver.getOverrideDirectoryMode() ).andReturn( originalDirMode );
121 expect( archiver.getOverrideFileMode() ).andReturn( originalFileMode );
122
123
124 if ( numberOfChanges > 1 )
125 {
126 for ( int i = 1; i < numberOfChanges; i++ )
127 {
128 if ( dirMode > -1 )
129 {
130 archiver.setDirectoryMode( dirMode );
131 }
132
133 if ( fileMode > -1 )
134 {
135 archiver.setFileMode( fileMode );
136 }
137 }
138 }
139
140 if ( dirMode > -1 )
141 {
142 archiver.setDirectoryMode( originalDirMode );
143 }
144
145 if ( fileMode > -1 )
146 {
147 archiver.setFileMode( originalFileMode );
148 }
149 }
150
151 public void expectAddFile( final File file, final String outputLocation, final int fileMode )
152 {
153 try
154 {
155 archiver.addFile( (File) anyObject(), (String) anyObject(), anyInt() );
156 EasyMock.expectLastCall().anyTimes();
157 }
158 catch ( final ArchiverException e )
159 {
160 Assert.fail( "Should never happen." );
161 }
162 }
163
164
165 public void expectAddFile( final File file, final String outputLocation )
166 {
167 try
168 {
169 archiver.addFile( file, outputLocation );
170 EasyMock.expectLastCall().atLeastOnce();
171 }
172 catch ( final ArchiverException e )
173 {
174 Assert.fail( "Should never happen." );
175 }
176 }
177
178 public void expectGetReactorProjects( final List<MavenProject> projects )
179 {
180 expect( configSource.getReactorProjects() ).andReturn( projects ).atLeastOnce();
181 }
182
183
184 public void expectResolveDependencySets()
185 throws DependencyResolutionException
186 {
187 expect( dependencyResolver.resolveDependencySets( (Assembly) anyObject(), (ModuleSet) anyObject(),
188 (AssemblerConfigurationSource) anyObject(),
189 (List<DependencySet>) anyObject() ) ).andReturn(
190 new LinkedHashMap<DependencySet, Set<Artifact>>() ).anyTimes();
191
192 }
193
194 public void expectInterpolators()
195 {
196 DefaultAssemblyArchiverTest.setupInterpolators( configSource );
197
198 }
199 }