1 package org.apache.maven.plugin.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 org.apache.maven.execution.MavenSession;
23 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
24 import org.apache.maven.plugin.assembly.testutils.MockManager;
25 import org.apache.maven.project.MavenProject;
26 import org.codehaus.plexus.archiver.Archiver;
27 import org.codehaus.plexus.archiver.ArchiverException;
28 import org.easymock.MockControl;
29
30 import java.io.File;
31 import java.util.List;
32
33 import junit.framework.Assert;
34
35 public class MockAndControlForAddArtifactTask
36 {
37
38 public Archiver archiver;
39
40 public MockControl archiverCtl;
41
42 public AssemblerConfigurationSource configSource;
43
44 public MockControl configSourceCtl;
45
46 private MavenProject project = null;
47
48 public MockAndControlForAddArtifactTask( final MockManager mockManager )
49 {
50 this( mockManager, null );
51 }
52
53 public MockAndControlForAddArtifactTask( final MockManager mockManager, final MavenProject project )
54 {
55 this.project = project;
56
57 archiverCtl = MockControl.createControl( Archiver.class );
58 mockManager.add( archiverCtl );
59
60 archiver = (Archiver) archiverCtl.getMock();
61
62 configSourceCtl = MockControl.createControl( AssemblerConfigurationSource.class );
63 mockManager.add( configSourceCtl );
64
65 configSource = (AssemblerConfigurationSource) configSourceCtl.getMock();
66
67 enableDefaultExpectations();
68 }
69
70 private void enableDefaultExpectations()
71 {
72 configSource.getProject();
73 configSourceCtl.setReturnValue( project, MockControl.ZERO_OR_MORE );
74
75 configSource.getMavenSession();
76 configSourceCtl.setReturnValue( null, MockControl.ZERO_OR_MORE );
77 }
78
79 public void expectGetFinalName( final String finalName )
80 {
81 configSource.getFinalName();
82 configSourceCtl.setReturnValue( finalName, MockControl.ONE_OR_MORE );
83 }
84
85 public void expectGetDestFile( final File destFile )
86 {
87 archiver.getDestFile();
88 archiverCtl.setReturnValue( destFile, MockControl.ZERO_OR_MORE );
89 }
90
91 public void expectAddArchivedFileSet( final File artifactFile, final String outputLocation,
92 final String[] includes, final String[] excludes )
93 {
94 try
95 {
96 archiver.addArchivedFileSet( artifactFile, outputLocation, includes, excludes );
97
98 if ( ( includes != null ) || ( excludes != null ) )
99 {
100 archiverCtl.setMatcher( MockControl.ARRAY_MATCHER );
101 }
102
103 archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
104 }
105 catch ( final ArchiverException e )
106 {
107 Assert.fail( "Should never happen." );
108 }
109 }
110
111 public void expectModeChange( final int originalDirMode, final int originalFileMode, final int dirMode,
112 final int fileMode, final int numberOfChanges )
113 {
114 archiver.getOverrideDirectoryMode();
115 archiverCtl.setReturnValue( originalDirMode );
116
117 archiver.getOverrideFileMode();
118 archiverCtl.setReturnValue( originalFileMode );
119
120
121 if ( numberOfChanges > 1 )
122 {
123 for ( int i = 1; i < numberOfChanges; i++ )
124 {
125 if ( dirMode > -1 )
126 {
127 archiver.setDirectoryMode( dirMode );
128 }
129
130 if ( fileMode > -1 )
131 {
132 archiver.setFileMode( fileMode );
133 }
134 }
135 }
136
137 if ( dirMode > -1 )
138 {
139 archiver.setDirectoryMode( originalDirMode );
140 }
141
142 if ( fileMode > -1 )
143 {
144 archiver.setFileMode( originalFileMode );
145 }
146 }
147
148 public void expectAddFile( final File file, final String outputLocation, final int fileMode )
149 {
150 try
151 {
152 archiver.addFile( file, outputLocation, fileMode );
153 archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
154 }
155 catch ( final ArchiverException e )
156 {
157 Assert.fail( "Should never happen." );
158 }
159 }
160
161 public void expectAddFile( final File file, final String outputLocation )
162 {
163 try
164 {
165 archiver.addFile( file, outputLocation );
166 archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
167 }
168 catch ( final ArchiverException e )
169 {
170 Assert.fail( "Should never happen." );
171 }
172 }
173
174 public void expectGetReactorProjects( final List<MavenProject> projects )
175 {
176 configSource.getReactorProjects();
177 configSourceCtl.setReturnValue( projects, MockControl.ONE_OR_MORE );
178 }
179
180 public void expectGetSession( final MavenSession session )
181 {
182 configSource.getMavenSession();
183 configSourceCtl.setReturnValue( session, MockControl.ONE_OR_MORE );
184 }
185 }