Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo?rev=434175&r1=434174&r2=434175&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo Wed Aug 23 13:58:02 2006 @@ -561,9 +561,24 @@ <type>boolean</type> <defaultValue>false</defaultValue> <description> - If set to true, the plugin will include the direct and transitive dependencies of - of the project modules included here. Otherwise, it will only include the module - packages only. Default value is false. + If set to true, the plugin will include the direct and transitive dependencies of + of the project modules included here. Otherwise, it will only include the module + packages only. Default value is false. + </description> + </field> + <field> + <name>dependencySets</name> + <version>1.0.0</version> + <association> + <type>DependencySet</type> + <multiplicity>*</multiplicity> + </association> + <description> + <![CDATA[ + Specifies which dependencies of the module to include in the assembly. A + dependencySet is specified by providing one or more of + <dependencySet> subelements. + ]]> </description> </field> <field>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?rev=434175&r1=434174&r2=434175&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Wed Aug 23 13:58:02 2006 @@ -1,6 +1,7 @@ package org.apache.maven.plugin.assembly.archive; import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; +import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException; import org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase; import org.apache.maven.plugin.assembly.filter.ComponentsXmlArchiverFileFilter; import org.apache.maven.plugin.assembly.format.AssemblyFormattingException; @@ -40,7 +41,7 @@ } public void testCreateArchive() - throws ArchiveCreationException, AssemblyFormattingException + throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException { MockManager mm = new MockManager(); Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java?rev=434175&r1=434174&r2=434175&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java Wed Aug 23 13:58:02 2006 @@ -1,8 +1,10 @@ package org.apache.maven.plugin.assembly.archive.phase; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Model; import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; +import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException; import org.apache.maven.plugin.assembly.archive.ArchiveCreationException; import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddArtifactTask; import org.apache.maven.plugin.assembly.format.AssemblyFormattingException; @@ -10,16 +12,17 @@ import org.apache.maven.plugins.assembly.model.Assembly; import org.apache.maven.plugins.assembly.model.DependencySet; import org.apache.maven.project.MavenProject; +import org.apache.maven.project.MavenProjectBuilder; +import org.apache.maven.project.ProjectBuildingException; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.console.ConsoleLogger; import org.easymock.MockControl; import java.io.IOException; import java.util.Collections; -import java.util.HashSet; import java.util.List; -import java.util.Set; +import junit.framework.Assert; import junit.framework.TestCase; public class DependencySetAssemblyPhaseTest @@ -29,7 +32,7 @@ private MockManager mockManager = new MockManager(); public void testExecute_ShouldAddOneDependencyFromProject() - throws AssemblyFormattingException, ArchiveCreationException, IOException + throws AssemblyFormattingException, ArchiveCreationException, IOException, InvalidAssemblerConfigurationException { String outputLocation = "/out"; @@ -51,6 +54,7 @@ MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager ); macTask.expectArtifactGetFile(); + macTask.expectArtifactGetType( "jar" ); macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE ); macTask.expectGetClassifier( null ); macTask.expectIsSnapshot( false ); @@ -64,252 +68,53 @@ macCS.enableGetProject( project ); macCS.enableGetFinalName( "final-name" ); - - MockAndControlForLogger macLog = new MockAndControlForLogger(); - - macLog.expectInfo( "Processing DependencySet" ); + macCS.enableGetRepositories( null, Collections.EMPTY_LIST ); + + Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ); + + MockAndControlForProjectBuilder macPB = new MockAndControlForProjectBuilder(); + + MavenProject depProject = new MavenProject( new Model() ); + macPB.expectBuildFromRepository( depProject ); mockManager.replayAll(); - createPhase( macLog.logger ).execute( assembly, macTask.archiver, macCS.configSource ); + createPhase( macPB.projectBuilder, logger ).execute( assembly, macTask.archiver, macCS.configSource ); mockManager.verifyAll(); } public void testExecute_ShouldNotAddDependenciesWhenProjectHasNone() - throws AssemblyFormattingException, ArchiveCreationException, IOException + throws AssemblyFormattingException, ArchiveCreationException, IOException, InvalidAssemblerConfigurationException { - MockAndControlForLogger macLog = new MockAndControlForLogger(); - Assembly assembly = new Assembly(); assembly.setId( "test" ); assembly.setIncludeBaseDirectory( false ); - mockManager.replayAll(); - - createPhase( macLog.logger ).execute( assembly, null, null ); - - mockManager.verifyAll(); - } - - public void testAddDependencySet_ShouldNotAddDependenciesWhenProjectHasNone() - throws AssemblyFormattingException, ArchiveCreationException - { - MavenProject project = new MavenProject( new Model() ); - - MockAndControlForConfigSource macCS = new MockAndControlForConfigSource(); - - macCS.enableGetProject( project ); - - DependencySet ds = new DependencySet(); - ds.setOutputDirectory( "/out" ); - - MockAndControlForLogger macLog = new MockAndControlForLogger(); - - macLog.expectInfo( "Processing DependencySet" ); - - mockManager.replayAll(); - - createPhase( macLog.logger ).addDependencySet( ds, null, macCS.configSource, false ); - - mockManager.verifyAll(); - } - - public void testAddDependencySet_ShouldAddOneDependencyFromProjectWithoutUnpacking() - throws AssemblyFormattingException, ArchiveCreationException, IOException - { - verifyOneDependencyAdded( "out", false ); - } - - public void testAddDependencySet_ShouldAddOneDependencyFromProjectUnpacked() - throws AssemblyFormattingException, ArchiveCreationException, IOException - { - verifyOneDependencyAdded( "out", true ); - } - - private void verifyOneDependencyAdded( String outputLocation, boolean unpack ) - throws AssemblyFormattingException, ArchiveCreationException, IOException - { - MavenProject project = new MavenProject( new Model() ); - - DependencySet ds = new DependencySet(); - ds.setOutputDirectory( outputLocation ); - ds.setOutputFileNameMapping( "artifact" ); - ds.setUnpack( unpack ); - ds.setScope( Artifact.SCOPE_COMPILE ); - - ds.setDirectoryMode( Integer.toString( 8, 8 ) ); - ds.setFileMode( Integer.toString( 8, 8 ) ); - - MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager ); - - macTask.expectArtifactGetFile(); - macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE ); - macTask.expectGetClassifier( null ); - macTask.expectIsSnapshot( false ); - macTask.expectGetArtifactHandler(); - - if ( unpack ) - { - macTask.expectAddArchivedFileSet( outputLocation + "/artifact/", null, null ); - macTask.expectModeChange( -1, -1, 8, 8, 2 ); - } - else - { - macTask.expectAddFile( outputLocation + "/artifact", 8 ); - } - - project.setArtifacts( Collections.singleton( macTask.artifact ) ); - + Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ); + + MockAndControlForProjectBuilder macPB = new MockAndControlForProjectBuilder(); + MockAndControlForConfigSource macCS = new MockAndControlForConfigSource(); - - macCS.enableGetProject( project ); - macCS.enableGetFinalName( "final-name" ); - - MockAndControlForLogger macLog = new MockAndControlForLogger(); - - macLog.expectInfo( "Processing DependencySet" ); + macCS.enableGetProject( null ); mockManager.replayAll(); - createPhase( macLog.logger ).addDependencySet( ds, macTask.archiver, macCS.configSource, false ); + createPhase( macPB.projectBuilder, logger ).execute( assembly, null, macCS.configSource ); mockManager.verifyAll(); } - private DependencySetAssemblyPhase createPhase( Logger logger ) + private DependencySetAssemblyPhase createPhase( MavenProjectBuilder projectBuilder, Logger logger ) { - DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase(); + DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase( projectBuilder ); phase.enableLogging( logger ); return phase; } - public void testGetDependencyArtifacts_ShouldGetOneDependencyArtifact() - { - MavenProject project = new MavenProject( new Model() ); - - MockAndControlForArtifact mac = new MockAndControlForArtifact(); - - mac.expectGetScope( Artifact.SCOPE_COMPILE ); - - project.setArtifacts( Collections.singleton( mac.artifact ) ); - - DependencySet dependencySet = new DependencySet(); - - DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase(); - phase.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ); - - mockManager.replayAll(); - - Set result = phase.getDependencyArtifacts( project, dependencySet ); - - assertNotNull( result ); - assertEquals( 1, result.size() ); - assertSame( mac.artifact, result.iterator().next() ); - - mockManager.verifyAll(); - } - - public void testGetDependencyArtifacts_ShouldFilterOneDependencyArtifactViaInclude() - { - MavenProject project = new MavenProject( new Model() ); - - Set artifacts = new HashSet(); - - MockAndControlForArtifact mac = new MockAndControlForArtifact(); - - mac.enableGetGroupId( "group" ); - mac.enableGetArtifactId( "artifact" ); - mac.enableGetDependencyConflictId( "group:artifact:jar" ); - mac.expectGetScope( Artifact.SCOPE_COMPILE ); - - artifacts.add( mac.artifact ); - - MockAndControlForArtifact mac2 = new MockAndControlForArtifact(); - - mac2.enableGetGroupId( "group2" ); - mac2.enableGetArtifactId( "artifact2" ); - mac2.enableGetDependencyConflictId( "group2:artifact2:jar" ); - mac2.expectGetScope( Artifact.SCOPE_COMPILE ); - mac2.enableGetDependencyTrail( Collections.EMPTY_LIST ); - mac2.enableGetId( "group2:artifact2:1.0" ); - - artifacts.add( mac2.artifact ); - - project.setArtifacts( artifacts ); - - DependencySet dependencySet = new DependencySet(); - - dependencySet.addInclude( "group:artifact" ); - - DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase(); - phase.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ); - - mockManager.replayAll(); - - Set result = phase.getDependencyArtifacts( project, dependencySet ); - - assertNotNull( result ); - assertEquals( 1, result.size() ); - assertSame( mac.artifact, result.iterator().next() ); - - mockManager.verifyAll(); - } - - private final class MockAndControlForArtifact - { - Artifact artifact; - - MockControl control; - - public MockAndControlForArtifact() - { - control = MockControl.createControl( Artifact.class ); - mockManager.add( control ); - - artifact = ( Artifact ) control.getMock(); - } - - public void enableGetId( String id ) - { - artifact.getId(); - control.setReturnValue( id, MockControl.ONE_OR_MORE ); - } - - public void enableGetDependencyTrail( List dependencyTrail ) - { - artifact.getDependencyTrail(); - control.setReturnValue( dependencyTrail, MockControl.ONE_OR_MORE ); - } - - public void enableGetDependencyConflictId( String conflictId ) - { - artifact.getDependencyConflictId(); - control.setReturnValue( conflictId, MockControl.ONE_OR_MORE ); - } - - public void enableGetArtifactId( String artifactId ) - { - artifact.getArtifactId(); - control.setReturnValue( artifactId, MockControl.ONE_OR_MORE ); - } - - public void enableGetGroupId( String groupId ) - { - artifact.getGroupId(); - control.setReturnValue( groupId, MockControl.ONE_OR_MORE ); - } - - public void expectGetScope( String scope ) - { - artifact.getScope(); - control.setReturnValue( scope, MockControl.ONE_OR_MORE ); - } - } - private final class MockAndControlForConfigSource { AssemblerConfigurationSource configSource; @@ -324,6 +129,15 @@ configSource = ( AssemblerConfigurationSource ) control.getMock(); } + public void enableGetRepositories( ArtifactRepository localRepo, List remoteRepos ) + { + configSource.getLocalRepository(); + control.setReturnValue( localRepo, MockControl.ONE_OR_MORE ); + + configSource.getRemoteRepositories(); + control.setReturnValue( remoteRepos, MockControl.ONE_OR_MORE ); + } + public void enableGetFinalName( String finalName ) { configSource.getFinalName(); @@ -337,31 +151,32 @@ } } - private final class MockAndControlForLogger + private final class MockAndControlForProjectBuilder { - Logger logger; - + MavenProjectBuilder projectBuilder; + MockControl control; - - MockAndControlForLogger() + + public MockAndControlForProjectBuilder() { - control = MockControl.createControl( Logger.class ); + control = MockControl.createControl( MavenProjectBuilder.class ); mockManager.add( control ); - - logger = ( Logger ) control.getMock(); - - logger.isDebugEnabled(); - control.setReturnValue( true, MockControl.ZERO_OR_MORE ); - logger.debug( null ); - control.setMatcher( MockControl.ALWAYS_MATCHER ); - control.setVoidCallable( MockControl.ZERO_OR_MORE ); + projectBuilder = ( MavenProjectBuilder ) control.getMock(); } - void expectInfo( String message ) + public void expectBuildFromRepository( MavenProject project ) { - logger.info( message ); - control.setVoidCallable( MockControl.ONE_OR_MORE ); + try + { + projectBuilder.buildFromRepository( null, null, null ); + control.setMatcher( MockControl.ALWAYS_MATCHER ); + control.setReturnValue( project, MockControl.ONE_OR_MORE ); + } + catch ( ProjectBuildingException e ) + { + Assert.fail( "should never happen" ); + } } } Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java?rev=434175&r1=434174&r2=434175&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java Wed Aug 23 13:58:02 2006 @@ -5,6 +5,7 @@ import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.model.Model; import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; +import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException; import org.apache.maven.plugin.assembly.archive.ArchiveCreationException; import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddArtifactTask; import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask; @@ -12,6 +13,7 @@ import org.apache.maven.plugin.assembly.testutils.MockManager; import org.apache.maven.plugin.assembly.testutils.TestFileManager; import org.apache.maven.plugins.assembly.model.Assembly; +import org.apache.maven.plugins.assembly.model.DependencySet; import org.apache.maven.plugins.assembly.model.ModuleBinaries; import org.apache.maven.plugins.assembly.model.ModuleSet; import org.apache.maven.plugins.assembly.model.ModuleSources; @@ -49,7 +51,7 @@ } public void testExecute_ShouldSkipIfNoModuleSetsFound() - throws ArchiveCreationException, AssemblyFormattingException + throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException { Assembly assembly = new Assembly(); assembly.setIncludeBaseDirectory( false ); @@ -58,7 +60,7 @@ } public void testExecute_ShouldAddOneModuleSetWithOneModuleInIt() - throws ArchiveCreationException, AssemblyFormattingException, IOException + throws ArchiveCreationException, AssemblyFormattingException, IOException, InvalidAssemblerConfigurationException { MockManager mm = new MockManager(); @@ -81,7 +83,6 @@ macTask.expectIsSnapshot( false ); macTask.expectGetClassifier( null ); macTask.expectGetArtifactHandler(); - macTask.expectArtifactGetDependencyConflictId( "group:module:jar" ); int mode = Integer.parseInt( "777", 8 ); @@ -98,7 +99,6 @@ bin.setOutputDirectory( "out" ); bin.setFileMode( "777" ); bin.setUnpack( false ); - bin.setIncludeDependencies( false ); ms.setBinaries( bin ); @@ -114,13 +114,13 @@ } public void testAddModuleBinaries_ShouldReturnImmediatelyWhenBinariesIsNull() - throws ArchiveCreationException, AssemblyFormattingException + throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException { createPhase( null, null ).addModuleBinaries( null, null, null, null, false ); } public void testAddModuleBinaries_ShouldFilterPomModule() - throws ArchiveCreationException, AssemblyFormattingException, IOException + throws ArchiveCreationException, AssemblyFormattingException, IOException, InvalidAssemblerConfigurationException { MockManager mm = new MockManager(); @@ -128,7 +128,6 @@ ModuleBinaries binaries = new ModuleBinaries(); - binaries.setIncludeDependencies( false ); binaries.setUnpack( false ); binaries.setFileMode( "777" ); binaries.setOutputDirectory( "out" ); @@ -149,14 +148,10 @@ } public void testAddModuleBinaries_ShouldAddOneModuleArtifactAndNoDeps() - throws ArchiveCreationException, AssemblyFormattingException, IOException + throws ArchiveCreationException, AssemblyFormattingException, IOException, InvalidAssemblerConfigurationException { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); - - macLogger.expectDebug( false, true ); - MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm ); macTask.expectArtifactGetFile( true ); @@ -166,12 +161,8 @@ macTask.expectGetArtifactHandler(); macTask.expectAddFile( "out/artifact", Integer.parseInt( "777", 8 ) ); - macTask.artifact.getDependencyConflictId(); - macTask.artifactCtl.setReturnValue( "group:artifact:jar", MockControl.ONE_OR_MORE ); - ModuleBinaries binaries = new ModuleBinaries(); - binaries.setIncludeDependencies( false ); binaries.setUnpack( false ); binaries.setFileMode( "777" ); binaries.setOutputDirectory( "out" ); @@ -183,23 +174,20 @@ Set projects = Collections.singleton( project ); mm.replayAll(); + + Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ); - createPhase( macLogger.logger, null ).addModuleBinaries( binaries, projects, macTask.archiver, + createPhase( logger, null ).addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource, false ); mm.verifyAll(); } public void testAddModuleBinaries_ShouldAddOneModuleArtifactAndWithOneDepArtifact() - throws ArchiveCreationException, AssemblyFormattingException, IOException + throws ArchiveCreationException, AssemblyFormattingException, IOException, InvalidAssemblerConfigurationException { MockManager mm = new MockManager(); - // MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); - // - // macLogger.expectWarn(); - // macLogger.expectDebug( true, true ); - MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm ); macTask.expectArtifactGetFile( true ); @@ -209,25 +197,93 @@ macTask.expectGetArtifactHandler(); macTask.expectAddFile( "out/artifact", Integer.parseInt( "777", 8 ) ); - macTask.artifact.getDependencyConflictId(); - macTask.artifactCtl.setReturnValue( "group:artifact:jar", MockControl.ONE_OR_MORE ); - macTask.configSource.getRemoteRepositories(); macTask.configSourceCtl.setReturnValue( null, MockControl.ONE_OR_MORE ); macTask.configSource.getLocalRepository(); macTask.configSourceCtl.setReturnValue( null, MockControl.ONE_OR_MORE ); - // macTask.artifact.getId(); - // macTask.artifactCtl.setReturnValue( "group:artifact:jar:version", MockControl.ONE_OR_MORE ); - ModuleBinaries binaries = new ModuleBinaries(); - binaries.setIncludeDependencies( true ); binaries.setUnpack( false ); binaries.setFileMode( "777" ); binaries.setOutputDirectory( "out" ); binaries.setOutputFileNameMapping( "artifact" ); + + DependencySet ds = new DependencySet(); + ds.setOutputDirectory( binaries.getOutputDirectory() ); + ds.setOutputFileNameMapping( "${artifactId}" ); + ds.setFileMode( "777" ); + + binaries.addDependencySet( ds ); + + MavenProject project = createProject( "group", "artifact", "version", null ); + project.setArtifact( macTask.artifact ); + + MockAndControlForArtifact macDepArtifact = new MockAndControlForArtifact( mm ); + + macDepArtifact.expectGetClassifier(); + macDepArtifact.expectIsSnapshot( false ); + macDepArtifact.expectGetArtifactHandler(); + macDepArtifact.expectGetArtifactId( "dep" ); + macDepArtifact.expectGetScope( Artifact.SCOPE_COMPILE ); + macDepArtifact.expectGetType( "jar" ); + macDepArtifact.expectGetFile(); + + macTask.expectAddFile( macDepArtifact.artifactFile, "out/dep", Integer.parseInt( "777", 8 ) ); + + MavenProject depProject = createProject( "group", "dep", "version", null ); + + depProject.setArtifact( macDepArtifact.artifact ); + + MockAndControlForProjectBuilder macPB = new MockAndControlForProjectBuilder( mm ); + + macPB.expectBuildFromRepository( macDepArtifact.artifact, depProject ); + + project.setArtifacts( new HashSet( Collections.singleton( macDepArtifact.artifact ) ) ); + + Set projects = Collections.singleton( project ); + + mm.replayAll(); + + Logger overrideLogger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ); + + ModuleSetAssemblyPhase phase = createPhase( overrideLogger, macPB.projectBuilder ); + + phase.addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource, false ); + + mm.verifyAll(); + } + + + public void testAddModuleBinaries_ShouldAddOneModuleArtifactAndWithOneDepArtifactUsingImpliedDepSet() + throws ArchiveCreationException, AssemblyFormattingException, IOException, InvalidAssemblerConfigurationException + { + MockManager mm = new MockManager(); + + MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm ); + + macTask.expectArtifactGetFile( true ); + macTask.expectArtifactGetArtifactId( "artifact" ); + macTask.expectGetFinalName( "final-name" ); + macTask.expectGetClassifier( null ); + macTask.expectIsSnapshot( false ); + macTask.expectGetArtifactHandler(); + macTask.expectAddFile( "out/artifact", Integer.parseInt( "777", 8 ) ); + + macTask.configSource.getRemoteRepositories(); + macTask.configSourceCtl.setReturnValue( null, MockControl.ONE_OR_MORE ); + + macTask.configSource.getLocalRepository(); + macTask.configSourceCtl.setReturnValue( null, MockControl.ONE_OR_MORE ); + + ModuleBinaries binaries = new ModuleBinaries(); + + binaries.setUnpack( false ); + binaries.setFileMode( "777" ); + binaries.setOutputDirectory( "out" ); + binaries.setOutputFileNameMapping( "${artifactId}" ); + binaries.setIncludeDependencies( true ); MavenProject project = createProject( "group", "artifact", "version", null ); project.setArtifact( macTask.artifact ); @@ -237,10 +293,12 @@ macDepArtifact.expectGetClassifier(); macDepArtifact.expectIsSnapshot( false ); macDepArtifact.expectGetArtifactHandler(); - macDepArtifact.expectGetDependencyConflictId( "group", "dep", "jar" ); + macDepArtifact.expectGetArtifactId( "dep" ); + macDepArtifact.expectGetScope( Artifact.SCOPE_COMPILE ); + macDepArtifact.expectGetType( "jar" ); macDepArtifact.expectGetFile(); - macTask.expectAddFile( macDepArtifact.artifactFile, "out/artifact", Integer.parseInt( "777", 8 ) ); + macTask.expectAddFile( macDepArtifact.artifactFile, "out/dep", Integer.parseInt( "777", 8 ) ); MavenProject depProject = createProject( "group", "dep", "version", null ); @@ -258,8 +316,9 @@ Logger overrideLogger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ); - createPhase( overrideLogger, macPB.projectBuilder ).addModuleBinaries( binaries, projects, macTask.archiver, - macTask.configSource, false ); + ModuleSetAssemblyPhase phase = createPhase( overrideLogger, macPB.projectBuilder ); + + phase.addModuleBinaries( binaries, projects, macTask.archiver, macTask.configSource, false ); mm.verifyAll(); } @@ -329,8 +388,6 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); - List excludes = new ArrayList(); // nothing up this sleeve... @@ -340,7 +397,7 @@ Set artifactIds = Collections.singleton( "group:artifact:jar" ); - List result = createPhase( macLogger.logger, null ).collectExcludesFromQueuedArtifacts( artifactIds, excludes ); + List result = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).collectExcludesFromQueuedArtifacts( artifactIds, excludes ); assertEquals( 1, result.size() ); @@ -353,13 +410,11 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); - mm.replayAll(); Set artifactIds = Collections.singleton( "group:artifact:jar" ); - List result = createPhase( macLogger.logger, null ).collectExcludesFromQueuedArtifacts( artifactIds, null ); + List result = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).collectExcludesFromQueuedArtifacts( artifactIds, null ); assertEquals( 1, result.size() ); @@ -374,7 +429,6 @@ MockManager mm = new MockManager(); MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm ); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); macTask.expectArtifactGetFile( false ); @@ -385,7 +439,7 @@ try { - createPhase( macLogger.logger, null ).addArtifact( macTask.artifact, null, null, null, null, false ); + createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addArtifact( macTask.artifact, null, null, null, null, false ); fail( "Expected ArchiveCreationException since artifact file is null." ); } @@ -403,7 +457,6 @@ MockManager mm = new MockManager(); MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm ); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); MavenProject project = createProject( "group", "artifact", "version", null ); project.setArtifact( macTask.artifact ); @@ -424,7 +477,7 @@ mm.replayAll(); - createPhase( macLogger.logger, null ).addArtifact( macTask.artifact, project, macTask.archiver, + createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addArtifact( macTask.artifact, project, macTask.archiver, macTask.configSource, binaries, false ); mm.verifyAll(); @@ -435,11 +488,9 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); - mm.replayAll(); - createPhase( macLogger.logger, null ).addModuleSourceFileSets( null, null, null, null, false ); + createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addModuleSourceFileSets( null, null, null, null, false ); mm.verifyAll(); } @@ -483,7 +534,6 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); MockAndControlForConfigSource macCS = new MockAndControlForConfigSource( mm ); MavenProject project = createProject( "group", "artifact", "version", null ); @@ -497,7 +547,7 @@ mm.replayAll(); - Set moduleProjects = createPhase( macLogger.logger, null ).getModuleProjects( moduleSet, macCS.configSource ); + Set moduleProjects = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).getModuleProjects( moduleSet, macCS.configSource ); assertTrue( moduleProjects.isEmpty() ); @@ -509,7 +559,6 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); MockAndControlForConfigSource macCS = new MockAndControlForConfigSource( mm ); MavenProject project = createProject( "group", "artifact", "version", null ); @@ -526,7 +575,7 @@ mm.replayAll(); - Set moduleProjects = createPhase( macLogger.logger, null ).getModuleProjects( moduleSet, macCS.configSource ); + Set moduleProjects = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).getModuleProjects( moduleSet, macCS.configSource ); assertTrue( moduleProjects.isEmpty() ); @@ -538,7 +587,6 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); MockAndControlForConfigSource macCS = new MockAndControlForConfigSource( mm ); MavenProject project = createProject( "group", "artifact", "version", null ); @@ -555,7 +603,7 @@ mm.replayAll(); - Set moduleProjects = createPhase( macLogger.logger, null ).getModuleProjects( moduleSet, macCS.configSource ); + Set moduleProjects = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).getModuleProjects( moduleSet, macCS.configSource ); assertFalse( moduleProjects.isEmpty() ); @@ -571,7 +619,6 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); MockAndControlForConfigSource macCS = new MockAndControlForConfigSource( mm ); MavenProject project = createProject( "group", "artifact", "version", null ); @@ -590,7 +637,7 @@ mm.replayAll(); - Set moduleProjects = createPhase( macLogger.logger, null ).getModuleProjects( moduleSet, macCS.configSource ); + Set moduleProjects = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).getModuleProjects( moduleSet, macCS.configSource ); assertEquals( 2, moduleProjects.size() ); @@ -608,7 +655,6 @@ { MockManager mm = new MockManager(); - MockAndControlForLogger macLogger = new MockAndControlForLogger( mm ); MockAndControlForConfigSource macCS = new MockAndControlForConfigSource( mm ); List macArtifacts = new ArrayList(); @@ -640,7 +686,7 @@ mm.replayAll(); - Set moduleProjects = createPhase( macLogger.logger, null ).getModuleProjects( moduleSet, macCS.configSource ); + Set moduleProjects = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).getModuleProjects( moduleSet, macCS.configSource ); assertTrue( moduleProjects.isEmpty() ); @@ -785,6 +831,18 @@ artifact = ( Artifact ) control.getMock(); } + public void expectGetType( String type ) + { + artifact.getType(); + control.setReturnValue( type, MockControl.ONE_OR_MORE ); + } + + public void expectGetScope( String scope ) + { + artifact.getScope(); + control.setReturnValue( scope, MockControl.ONE_OR_MORE ); + } + public void expectIsSnapshot( boolean isSnapshot ) { artifact.isSnapshot(); @@ -846,44 +904,6 @@ { artifact.getArtifactId(); control.setReturnValue( artifactId, MockControl.ONE_OR_MORE ); - } - } - - private final class MockAndControlForLogger - { - Logger logger; - - MockControl control; - - public MockAndControlForLogger( MockManager mockManager ) - { - control = MockControl.createControl( Logger.class ); - mockManager.add( control ); - - logger = ( Logger ) control.getMock(); - } - - public void expectWarn() - { - logger.warn( null ); - control.setMatcher( MockControl.ALWAYS_MATCHER ); - control.setVoidCallable( MockControl.ONE_OR_MORE ); - } - - public void expectDebug( boolean debugCheck, boolean debugEnabled ) - { - if ( debugCheck ) - { - logger.isDebugEnabled(); - control.setReturnValue( debugEnabled, MockControl.ONE_OR_MORE ); - } - - if ( !debugCheck || debugEnabled ) - { - logger.debug( null ); - control.setMatcher( MockControl.ALWAYS_MATCHER ); - control.setVoidCallable( MockControl.ONE_OR_MORE ); - } } } Added: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java?rev=434175&view=auto ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java Wed Aug 23 13:58:02 2006 @@ -0,0 +1,352 @@ +package org.apache.maven.plugin.assembly.archive.task; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.model.Model; +import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; +import org.apache.maven.plugin.assembly.archive.ArchiveCreationException; +import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddArtifactTask; +import org.apache.maven.plugin.assembly.format.AssemblyFormattingException; +import org.apache.maven.plugin.assembly.testutils.MockManager; +import org.apache.maven.plugins.assembly.model.DependencySet; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.MavenProjectBuilder; +import org.apache.maven.project.ProjectBuildingException; +import org.codehaus.plexus.logging.Logger; +import org.codehaus.plexus.logging.console.ConsoleLogger; +import org.easymock.MockControl; + +import java.io.IOException; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import junit.framework.Assert; +import junit.framework.TestCase; + +public class AddDependencySetsTaskTest + extends TestCase +{ + + private MockManager mockManager = new MockManager(); + + public void testAddDependencySet_ShouldNotAddDependenciesWhenProjectHasNone() + throws AssemblyFormattingException, ArchiveCreationException + { + MavenProject project = new MavenProject( new Model() ); + + MockAndControlForConfigSource macCS = new MockAndControlForConfigSource(); + + DependencySet ds = new DependencySet(); + ds.setOutputDirectory( "/out" ); + + MockAndControlForLogger macLog = new MockAndControlForLogger(); + + macLog.expectInfo( "Processing DependencySet" ); + + mockManager.replayAll(); + + AddDependencySetsTask task = + new AddDependencySetsTask( Collections.singletonList( ds ), project, null, macLog.logger ); + + task.addDependencySet( ds, null, macCS.configSource, false ); + + mockManager.verifyAll(); + } + + public void testAddDependencySet_ShouldAddOneDependencyFromProjectWithoutUnpacking() + throws AssemblyFormattingException, ArchiveCreationException, IOException + { + verifyOneDependencyAdded( "out", false ); + } + + public void testAddDependencySet_ShouldAddOneDependencyFromProjectUnpacked() + throws AssemblyFormattingException, ArchiveCreationException, IOException + { + verifyOneDependencyAdded( "out", true ); + } + + private void verifyOneDependencyAdded( String outputLocation, boolean unpack ) + throws AssemblyFormattingException, ArchiveCreationException, IOException + { + MavenProject project = new MavenProject( new Model() ); + + DependencySet ds = new DependencySet(); + ds.setOutputDirectory( outputLocation ); + ds.setOutputFileNameMapping( "artifact" ); + ds.setUnpack( unpack ); + ds.setScope( Artifact.SCOPE_COMPILE ); + + ds.setDirectoryMode( Integer.toString( 8, 8 ) ); + ds.setFileMode( Integer.toString( 8, 8 ) ); + + MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager ); + + macTask.expectArtifactGetFile(); + macTask.expectArtifactGetType( "jar" ); + macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE ); + macTask.expectGetClassifier( null ); + macTask.expectIsSnapshot( false ); + macTask.expectGetArtifactHandler(); + + if ( unpack ) + { + macTask.expectAddArchivedFileSet( outputLocation + "/artifact/", null, null ); + macTask.expectModeChange( -1, -1, 8, 8, 2 ); + } + else + { + macTask.expectAddFile( outputLocation + "/artifact", 8 ); + } + + project.setArtifacts( Collections.singleton( macTask.artifact ) ); + + MockAndControlForConfigSource macCS = new MockAndControlForConfigSource(); + + macCS.enableGetFinalName( "final-name" ); + macCS.enableGetRepositories( null, Collections.EMPTY_LIST ); + + MockAndControlForLogger macLog = new MockAndControlForLogger(); + + macLog.expectInfo( "Processing DependencySet" ); + + MockAndControlForProjectBuilder macPB = new MockAndControlForProjectBuilder(); + + MavenProject depProject = new MavenProject( new Model() ); + + macPB.expectBuildFromRepository( depProject ); + + AddDependencySetsTask task = + new AddDependencySetsTask( Collections.singletonList( ds ), project, macPB.projectBuilder, macLog.logger ); + + mockManager.replayAll(); + + task.addDependencySet( ds, macTask.archiver, macCS.configSource, false ); + + mockManager.verifyAll(); + } + + public void testGetDependencyArtifacts_ShouldGetOneDependencyArtifact() + { + MavenProject project = new MavenProject( new Model() ); + + MockAndControlForArtifact mac = new MockAndControlForArtifact(); + + mac.expectGetScope( Artifact.SCOPE_COMPILE ); + + project.setArtifacts( Collections.singleton( mac.artifact ) ); + + DependencySet dependencySet = new DependencySet(); + + Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ); + + MockAndControlForProjectBuilder macPB = new MockAndControlForProjectBuilder(); + + mockManager.replayAll(); + + AddDependencySetsTask task = + new AddDependencySetsTask( Collections.singletonList( dependencySet ), project, macPB.projectBuilder, logger ); + + Set result = task.getDependencyArtifacts( project, dependencySet ); + + assertNotNull( result ); + assertEquals( 1, result.size() ); + assertSame( mac.artifact, result.iterator().next() ); + + mockManager.verifyAll(); + } + + public void testGetDependencyArtifacts_ShouldFilterOneDependencyArtifactViaInclude() + { + MavenProject project = new MavenProject( new Model() ); + + Set artifacts = new HashSet(); + + MockAndControlForArtifact mac = new MockAndControlForArtifact(); + + mac.enableGetGroupId( "group" ); + mac.enableGetArtifactId( "artifact" ); + mac.enableGetDependencyConflictId( "group:artifact:jar" ); + mac.expectGetScope( Artifact.SCOPE_COMPILE ); + + artifacts.add( mac.artifact ); + + MockAndControlForArtifact mac2 = new MockAndControlForArtifact(); + + mac2.enableGetGroupId( "group2" ); + mac2.enableGetArtifactId( "artifact2" ); + mac2.enableGetDependencyConflictId( "group2:artifact2:jar" ); + mac2.expectGetScope( Artifact.SCOPE_COMPILE ); + mac2.enableGetDependencyTrail( Collections.EMPTY_LIST ); + mac2.enableGetId( "group2:artifact2:1.0" ); + + artifacts.add( mac2.artifact ); + + project.setArtifacts( artifacts ); + + DependencySet dependencySet = new DependencySet(); + + dependencySet.addInclude( "group:artifact" ); + + Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ); + + mockManager.replayAll(); + + AddDependencySetsTask task = + new AddDependencySetsTask( Collections.singletonList( dependencySet ), project, null, logger ); + + Set result = task.getDependencyArtifacts( project, dependencySet ); + + assertNotNull( result ); + assertEquals( 1, result.size() ); + assertSame( mac.artifact, result.iterator().next() ); + + mockManager.verifyAll(); + } + + private final class MockAndControlForArtifact + { + Artifact artifact; + + MockControl control; + + public MockAndControlForArtifact() + { + control = MockControl.createControl( Artifact.class ); + mockManager.add( control ); + + artifact = ( Artifact ) control.getMock(); + } + + public void enableGetId( String id ) + { + artifact.getId(); + control.setReturnValue( id, MockControl.ONE_OR_MORE ); + } + + public void enableGetDependencyTrail( List dependencyTrail ) + { + artifact.getDependencyTrail(); + control.setReturnValue( dependencyTrail, MockControl.ONE_OR_MORE ); + } + + public void enableGetDependencyConflictId( String conflictId ) + { + artifact.getDependencyConflictId(); + control.setReturnValue( conflictId, MockControl.ONE_OR_MORE ); + } + + public void enableGetArtifactId( String artifactId ) + { + artifact.getArtifactId(); + control.setReturnValue( artifactId, MockControl.ONE_OR_MORE ); + } + + public void enableGetGroupId( String groupId ) + { + artifact.getGroupId(); + control.setReturnValue( groupId, MockControl.ONE_OR_MORE ); + } + + public void expectGetScope( String scope ) + { + artifact.getScope(); + control.setReturnValue( scope, MockControl.ONE_OR_MORE ); + } + } + + private final class MockAndControlForConfigSource + { + AssemblerConfigurationSource configSource; + + MockControl control; + + MockAndControlForConfigSource() + { + control = MockControl.createControl( AssemblerConfigurationSource.class ); + mockManager.add( control ); + + configSource = ( AssemblerConfigurationSource ) control.getMock(); + } + + public void enableGetRepositories( ArtifactRepository localRepo, List remoteRepos ) + { + configSource.getLocalRepository(); + control.setReturnValue( localRepo, MockControl.ONE_OR_MORE ); + + configSource.getRemoteRepositories(); + control.setReturnValue( remoteRepos, MockControl.ONE_OR_MORE ); + } + + public void enableGetFinalName( String finalName ) + { + configSource.getFinalName(); + control.setReturnValue( finalName, MockControl.ONE_OR_MORE ); + } + + void enableGetProject( MavenProject project ) + { + configSource.getProject(); + control.setReturnValue( project, MockControl.ONE_OR_MORE ); + } + } + + private final class MockAndControlForLogger + { + Logger logger; + + MockControl control; + + MockAndControlForLogger() + { + control = MockControl.createControl( Logger.class ); + mockManager.add( control ); + + logger = ( Logger ) control.getMock(); + + logger.isDebugEnabled(); + control.setReturnValue( true, MockControl.ZERO_OR_MORE ); + + logger.debug( null ); + control.setMatcher( MockControl.ALWAYS_MATCHER ); + control.setVoidCallable( MockControl.ZERO_OR_MORE ); + } + + void expectInfo( String message ) + { + logger.info( message ); + control.setVoidCallable( MockControl.ONE_OR_MORE ); + } + } + + private final class MockAndControlForProjectBuilder + { + MavenProjectBuilder projectBuilder; + + MockControl control; + + public MockAndControlForProjectBuilder() + { + control = MockControl.createControl( MavenProjectBuilder.class ); + mockManager.add( control ); + + projectBuilder = ( MavenProjectBuilder ) control.getMock(); + } + + public void expectBuildFromRepository( MavenProject project ) + { + try + { + projectBuilder.buildFromRepository( null, null, null ); + control.setMatcher( MockControl.ALWAYS_MATCHER ); + control.setReturnValue( project, MockControl.ONE_OR_MORE ); + } + catch ( ProjectBuildingException e ) + { + Assert.fail( "should never happen" ); + } + } + } + +} Propchange: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java?rev=434175&r1=434174&r2=434175&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java Wed Aug 23 13:58:02 2006 @@ -206,4 +206,16 @@ artifactCtl.setReturnValue( isSnapshot, MockControl.ONE_OR_MORE ); } + public void expectArtifactGetType( String type ) + { + artifact.getType(); + artifactCtl.setReturnValue( type, MockControl.ONE_OR_MORE ); + } + + public void expectArtifactGetArtifactId( String artifactId ) + { + artifact.getArtifactId(); + artifactCtl.setReturnValue( artifactId, MockControl.ONE_OR_MORE ); + } + }