1 package org.apache.maven.shared.release.phase;
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.project.MavenProject;
23 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
24 import org.apache.maven.shared.release.util.ReleaseUtil;
25
26 import java.io.File;
27 import java.util.Iterator;
28 import java.util.List;
29
30
31
32
33 public class CreateBackupPomsPhaseTest
34 extends AbstractBackupPomsPhaseTest
35 {
36 ReleasePhase getReleasePhase()
37 throws Exception
38 {
39 return (ReleasePhase) lookup( ReleasePhase.ROLE, "create-backup-poms" );
40 }
41
42 public void testBasicPom()
43 throws Exception
44 {
45 String projectPath = "target/test-classes/projects/create-backup-poms/basic-pom";
46
47
48 runExecuteOnProjects( projectPath );
49
50
51 runCleanOnProjects( projectPath );
52
53
54 runSimulateOnProjects( projectPath );
55 }
56
57 public void testMultiModulePom()
58 throws Exception
59 {
60 String projectPath = "target/test-classes/projects/create-backup-poms/pom-with-modules";
61
62
63 runExecuteOnProjects( projectPath );
64
65
66 runCleanOnProjects( projectPath );
67
68
69 runSimulateOnProjects( projectPath );
70 }
71
72 private void runExecuteOnProjects( String path )
73 throws Exception
74 {
75 List<MavenProject> projects = getReactorProjects( getTestPath( path ) );
76
77 phase.execute( null, new DefaultReleaseEnvironment(), projects );
78
79 testProjectBackups( projects, true );
80 }
81
82 private void runSimulateOnProjects( String path )
83 throws Exception
84 {
85 List<MavenProject> projects = getReactorProjects( getTestPath( path ) );
86
87 phase.simulate( null, new DefaultReleaseEnvironment(), projects );
88
89 testProjectBackups( projects, true );
90 }
91
92 private void runCleanOnProjects( String path )
93 throws Exception
94 {
95 List<MavenProject> projects = getReactorProjects( getTestPath( path ) );
96
97 phase.clean( projects );
98
99 testProjectBackups( projects, false );
100 }
101
102 protected void testProjectBackups( List<MavenProject> reactorProjects, boolean created )
103 throws Exception
104 {
105 for( Iterator<MavenProject> projects = reactorProjects.iterator(); projects.hasNext(); )
106 {
107 MavenProject project = projects.next();
108
109 File pomFile = project.getFile();
110
111 File backupFile = new File( pomFile.getAbsolutePath() + releaseBackupSuffix );
112
113 if ( created )
114 {
115 assertTrue( "Check if backup file was created.", backupFile.exists() );
116
117 String pomContents = ReleaseUtil.readXmlFile( pomFile );
118
119 String backupContents = ReleaseUtil.readXmlFile( backupFile );
120
121 assertTrue( "Check if pom and backup files are identical", pomContents.equals( backupContents ) );
122 }
123 else
124 {
125 assertFalse( "Check if backup file is not present", backupFile.exists() );
126 }
127 }
128 }
129 }