package com.redhat.rcm.version.mgr.mod; import static com.redhat.rcm.version.testutil.TestProjectFixture.dumpModel; import static com.redhat.rcm.version.testutil.TestProjectFixture.loadModel; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertThat; import java.io.File; import org.apache.maven.model.Model; import org.apache.maven.model.Parent; import org.apache.maven.project.MavenProject; import org.junit.Test; import com.redhat.rcm.version.mgr.AbstractVersionManagerTest; import com.redhat.rcm.version.mgr.session.SessionBuilder; import com.redhat.rcm.version.mgr.session.VersionManagerSession; import com.redhat.rcm.version.model.Project; public class ParentModderTest extends AbstractVersionManagerTest { private static final String TOOLCHAIN_TEST_POMS = "toolchain/"; private static final String EMPTY_TOOLCHAIN_PATH = TOOLCHAIN_TEST_POMS + "toolchain-empty-1.0.pom"; @Test public void relocateParent() throws Throwable { final String path = "relocate-parent.pom"; final Model original = loadModel( TOOLCHAIN_TEST_POMS + path ); final String toolchainPath = EMPTY_TOOLCHAIN_PATH; final Model toolchainModel = loadModel( toolchainPath ); final MavenProject toolchainProject = new MavenProject( toolchainModel ); toolchainProject.setOriginalModel( toolchainModel ); Parent parent = original.getParent(); assertThat( parent, notNullValue() ); assertThat( parent.getArtifactId(), equalTo( "old-parent" ) ); assertThat( parent.getVersion(), equalTo( "1.0" ) ); final Project project = new Project( original ); final SessionBuilder builder = new SessionBuilder( workspace, reports ).withCoordinateRelocation( "org.test:old-parent:1.0", "org.test:new-parent:2.0" ); final VersionManagerSession session = builder.build(); session.setToolchain( new File( toolchainPath ), toolchainProject ); final boolean changed = new ParentModder().inject( project, session ); dumpModel( project.getModel() ); assertThat( changed, equalTo( true ) ); assertNoErrors( session ); parent = project.getModel() .getParent(); assertThat( parent, notNullValue() ); assertThat( parent.getArtifactId(), equalTo( "new-parent" ) ); assertThat( parent.getVersion(), equalTo( "2.0" ) ); } }