use of org.apache.maven.shared.release.stubs.ScmManagerStub in project maven-release by apache.
the class CheckoutProjectFromScmTest method testExecuteMultiModuleWithDeepSubprojects.
@Test
public void testExecuteMultiModuleWithDeepSubprojects() throws Exception {
// prepare
ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
File checkoutDirectory = getTestFile("target/checkout-test/multimodule-with-deep-subprojects");
builder.setCheckoutDirectory(checkoutDirectory.getAbsolutePath());
builder.setScmReleaseLabel("release-label");
String sourceUrl = "file://localhost/tmp/scm-repo/trunk";
String scmUrl = "scm:svn:" + sourceUrl;
builder.setScmSourceUrl(scmUrl);
ScmProvider scmProviderMock = mock(ScmProvider.class);
SvnScmProviderRepository scmProviderRepository = new SvnScmProviderRepository(sourceUrl);
ScmRepository repository = new ScmRepository("svn", scmProviderRepository);
when(scmProviderMock.checkOut(eq(repository), argThat(new IsScmFileSetEquals(new ScmFileSet(checkoutDirectory))), argThat(new IsScmTagEquals(new ScmTag("release-label"))), argThat(new HasCommandParameter(CommandParameter.SHALLOW, true)))).thenReturn(new CheckOutScmResult("", null));
ScmManagerStub stub = (ScmManagerStub) lookup(ScmManager.class);
stub.setScmProvider(scmProviderMock);
stub.addScmRepositoryForUrl(scmUrl, repository);
String dir = "scm-commit/multimodule-with-deep-subprojects";
List<MavenProject> reactorProjects = createReactorProjects(dir, dir, null);
builder.setWorkingDirectory(getWorkingDirectory(dir).toString());
// execute
phase.execute(ReleaseUtils.buildReleaseDescriptor(builder), new DefaultReleaseEnvironment(), reactorProjects);
// verify
assertEquals("", ReleaseUtils.buildReleaseDescriptor(builder).getScmRelativePathProjectDirectory());
verify(scmProviderMock).checkOut(eq(repository), argThat(new IsScmFileSetEquals(new ScmFileSet(checkoutDirectory))), argThat(new IsScmTagEquals(new ScmTag("release-label"))), argThat(new HasCommandParameter(CommandParameter.SHALLOW, true)));
verifyNoMoreInteractions(scmProviderMock);
}
use of org.apache.maven.shared.release.stubs.ScmManagerStub in project maven-release by apache.
the class CheckoutProjectFromScmTest method testExecuteFlatMultiModule.
@Test
public void testExecuteFlatMultiModule() throws Exception {
// prepare
ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
File checkoutDirectory = getTestFile("target/checkout-test/flat-multi-module");
builder.setCheckoutDirectory(checkoutDirectory.getAbsolutePath());
builder.setScmReleaseLabel("release-label");
String sourceUrl = "file://localhost/tmp/scm-repo/trunk/root-project";
String scmUrl = "scm:svn:" + sourceUrl;
builder.setScmSourceUrl(scmUrl);
ScmProvider scmProviderMock = mock(ScmProvider.class);
SvnScmProviderRepository scmProviderRepository = new SvnScmProviderRepository(sourceUrl);
ScmRepository repository = new ScmRepository("svn", scmProviderRepository);
when(scmProviderMock.checkOut(eq(repository), argThat(new IsScmFileSetEquals(new ScmFileSet(checkoutDirectory))), argThat(new IsScmTagEquals(new ScmTag("release-label"))), argThat(new HasCommandParameter(CommandParameter.SHALLOW, true)))).thenReturn(new CheckOutScmResult("", null));
ScmManagerStub stub = (ScmManagerStub) lookup(ScmManager.class);
stub.setScmProvider(scmProviderMock);
stub.addScmRepositoryForUrl(scmUrl, repository);
List<MavenProject> reactorProjects = createReactorProjects("rewrite-for-release/pom-with-parent-flat", "root-project");
builder.setWorkingDirectory(getWorkingDirectory("rewrite-for-release/pom-with-parent-flat").toString());
// execute
phase.execute(ReleaseUtils.buildReleaseDescriptor(builder), new DefaultReleaseEnvironment(), reactorProjects);
// verify
assertEquals("not found root-project but " + ReleaseUtils.buildReleaseDescriptor(builder).getScmRelativePathProjectDirectory(), "root-project", ReleaseUtils.buildReleaseDescriptor(builder).getScmRelativePathProjectDirectory());
verify(scmProviderMock).checkOut(eq(repository), argThat(new IsScmFileSetEquals(new ScmFileSet(checkoutDirectory))), argThat(new IsScmTagEquals(new ScmTag("release-label"))), argThat(new HasCommandParameter(CommandParameter.SHALLOW, true)));
verifyNoMoreInteractions(scmProviderMock);
}
use of org.apache.maven.shared.release.stubs.ScmManagerStub in project maven-release by apache.
the class AbstractRewritingReleasePhaseTestCase method testRewriteBasicPomWithScmRepoException.
@Test
public void testRewriteBasicPomWithScmRepoException() throws Exception {
// prepare
List<MavenProject> reactorProjects = createReactorProjects("basic-pom");
ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom(reactorProjects, "basic-pom");
builder.setScmUseEditMode(true);
builder.setScmSourceUrl("scm:svn:fail");
mapNextVersion(builder, "groupId:artifactId");
ScmManager scmManager = lookup(ScmManager.class);
if (scmManager instanceof ScmManagerStub) {
((ScmManagerStub) scmManager).setException(new ScmRepositoryException("..."));
}
try {
phase.execute(ReleaseUtils.buildReleaseDescriptor(builder), new DefaultReleaseEnvironment(), reactorProjects);
fail("Should have thrown an exception");
} catch (ReleaseScmRepositoryException e) {
assertNull("Check no additional cause", e.getCause());
}
}
use of org.apache.maven.shared.release.stubs.ScmManagerStub in project maven-release by apache.
the class AbstractRewritingReleasePhaseTestCase method testRewriteBasicPomWithNoSuchProviderException.
@Test
public void testRewriteBasicPomWithNoSuchProviderException() throws Exception {
// prepare
List<MavenProject> reactorProjects = createReactorProjects("basic-pom");
ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom(reactorProjects, "basic-pom");
builder.setScmUseEditMode(true);
builder.setScmSourceUrl("scm:fail:path");
mapNextVersion(builder, "groupId:artifactId");
ScmManager scmManager = (ScmManager) lookup(ScmManager.class);
if (scmManager instanceof ScmManagerStub) {
((ScmManagerStub) scmManager).setException(new NoSuchScmProviderException("..."));
;
}
// execute
try {
phase.execute(ReleaseUtils.buildReleaseDescriptor(builder), new DefaultReleaseEnvironment(), reactorProjects);
fail("Should have thrown an exception");
} catch (ReleaseExecutionException e) {
// verify
assertEquals("Check cause", NoSuchScmProviderException.class, e.getCause().getClass());
}
}
use of org.apache.maven.shared.release.stubs.ScmManagerStub in project maven-release by apache.
the class ScmCommitPreparationPhaseTest method testCommitDevelopment.
@Test
public void testCommitDevelopment() throws Exception {
// prepare
phase = (ReleasePhase) lookup(ReleasePhase.class, "scm-commit-development");
ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
List<MavenProject> reactorProjects = createReactorProjects();
builder.setScmSourceUrl("scm-url");
MavenProject rootProject = ReleaseUtil.getRootProject(reactorProjects);
builder.setWorkingDirectory(rootProject.getFile().getParentFile().getAbsolutePath());
builder.setScmReleaseLabel("release-label");
ScmFileSet fileSet = new ScmFileSet(rootProject.getFile().getParentFile(), rootProject.getFile());
ScmProvider scmProviderMock = mock(ScmProvider.class);
when(scmProviderMock.checkIn(isA(ScmRepository.class), argThat(new IsScmFileSetEquals(fileSet)), isNull(ScmVersion.class), eq("[maven-release-manager] prepare for next development iteration"))).thenReturn(new CheckInScmResult("...", Collections.singletonList(new ScmFile(rootProject.getFile().getPath(), ScmFileStatus.CHECKED_IN))));
ScmManagerStub stub = (ScmManagerStub) lookup(ScmManager.class);
stub.setScmProvider(scmProviderMock);
// execute
phase.execute(ReleaseUtils.buildReleaseDescriptor(builder), new DefaultReleaseEnvironment(), reactorProjects);
// verify
verify(scmProviderMock).checkIn(isA(ScmRepository.class), argThat(new IsScmFileSetEquals(fileSet)), isNull(ScmVersion.class), eq("[maven-release-manager] prepare for next development iteration"));
verifyNoMoreInteractions(scmProviderMock);
}
Aggregations