throws Exception
{
// prepare
DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setScmSourceUrl( "scm-url" );
releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
releaseDescriptor.setPerformGoals( "goal1 goal2" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
MavenExecutor mock = mock( MavenExecutor.class );
RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
phase.setMavenExecutor( mock );
ScmProvider scmProviderMock = mock( ScmProvider.class );
when( scmProviderMock.checkOut( isA( ScmRepository.class ),
argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
isA( ScmTag.class ) ) ).thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
stub.setScmProvider( scmProviderMock );
releaseDescriptor.setUseReleaseProfile( false );
// execute
releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), createReactorProjects() );
// verify