1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.apache.maven.plugin.eclipse.reader;
15
16 import java.io.File;
17 import java.io.IOException;
18 import java.util.Map;
19
20 import junit.framework.TestCase;
21
22 import org.apache.maven.plugin.eclipse.TempEclipseWorkspace;
23 import org.apache.maven.plugin.eclipse.WorkspaceConfiguration;
24 import org.apache.maven.plugin.logging.Log;
25 import org.apache.maven.shared.tools.easymock.MockManager;
26 import org.easymock.MockControl;
27
28
29
30
31
32 public class ReadWorkspaceLocationsTest
33 extends TestCase
34 {
35
36
37
38
39
40
41
42
43
44
45 private MockManager mm = new MockManager();
46 private File workspaceLocation;
47 private File metaDataDirectory;
48
49
50
51
52 protected void setUp()
53 throws Exception
54 {
55 super.setUp();
56
57 workspaceLocation = TempEclipseWorkspace.getFixtureEclipseDynamicWorkspace().workspaceLocation;
58 metaDataDirectory = new File( workspaceLocation, ReadWorkspaceLocations.METADATA_PLUGINS_ORG_ECLIPSE_CORE_RESOURCES_PROJECTS );;
59
60 }
61
62
63
64
65
66
67
68
69 public void testGetProjectLocation_ForProjectAtWorkspaceLevel()
70 throws Exception
71 {
72 ReadWorkspaceLocations objectUnderTest = new ReadWorkspaceLocations();
73
74 File metadataProjectDirectory = new File( metaDataDirectory , "project-A" );
75
76 File projectLocation = objectUnderTest.getProjectLocation( workspaceLocation, metadataProjectDirectory );
77
78 File expectedProjectDirectory = new File( workspaceLocation, "project-A" );
79 assertFileEquals( expectedProjectDirectory, projectLocation );
80 }
81
82
83
84
85
86
87
88
89
90 public void testGetProjectLocation_ForProjectsWithinProjects()
91 throws Exception
92 {
93 ReadWorkspaceLocations objectUnderTest = new ReadWorkspaceLocations();
94
95 File metadataProjectDirectory = new File( metaDataDirectory, "module-A1" );
96 File expectedProjectDirectory =
97 new File( workspaceLocation, "project-A/module-A1" );
98
99 File projectLocation = objectUnderTest.getProjectLocation( workspaceLocation, metadataProjectDirectory );
100
101 assertFileEquals( expectedProjectDirectory, projectLocation );
102 }
103
104
105
106
107
108
109
110
111
112 public void testGetProjectLocation_ForProjectsOutsideWorkspace()
113 throws Exception
114 {
115 ReadWorkspaceLocations objectUnderTest = new ReadWorkspaceLocations();
116
117 File metadataProjectDirectory = new File( metaDataDirectory, "project-O" );
118 File expectedProjectDirectory = new File( workspaceLocation, "../project-O" );
119
120 File projectLocation = objectUnderTest.getProjectLocation( workspaceLocation, metadataProjectDirectory );
121
122 assertFileEquals( expectedProjectDirectory, projectLocation );
123 }
124
125 public void testReadDefinedServers_PrefsFileDoesNotExist()
126 throws Exception
127 {
128 MockControl logControl = MockControl.createControl( Log.class );
129 mm.add( logControl );
130
131 Log logger = (Log) logControl.getMock();
132 WorkspaceConfiguration workspaceConfiguration = new WorkspaceConfiguration();
133 workspaceConfiguration.setWorkspaceDirectory( new File( "/does/not/exist" ) );
134
135 mm.replayAll();
136
137 ReadWorkspaceLocations objectUnderTest = new ReadWorkspaceLocations();
138 Map<String, String> servers = objectUnderTest.readDefinedServers( workspaceConfiguration, logger );
139
140 mm.verifyAll();
141 assertTrue( servers.isEmpty() );
142 }
143
144 public void testReadDefinedServers_PrefsFileExistsWithMissingRuntimes()
145 throws Exception
146 {
147 MockControl logControl = MockControl.createControl( Log.class );
148 mm.add( logControl );
149
150 Log logger = (Log) logControl.getMock();
151 WorkspaceConfiguration workspaceConfiguration = new WorkspaceConfiguration();
152 File prefsFile =
153 new File(
154 "target/test-classes/eclipse/dynamicWorkspace/workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.server.core.prefs" );
155 workspaceConfiguration.setWorkspaceDirectory( prefsFile );
156 mm.replayAll();
157
158 ReadWorkspaceLocations objectUnderTest = new ReadWorkspaceLocations();
159 Map<String, String> servers = objectUnderTest.readDefinedServers( workspaceConfiguration, logger );
160
161 mm.verifyAll();
162 assertTrue( servers.isEmpty() );
163 }
164
165
166
167
168
169
170
171
172 private void assertFileEquals( File expectedFile, File actualFile )
173 throws IOException
174 {
175 assertEquals( expectedFile.getCanonicalFile(), actualFile.getCanonicalFile() );
176
177 }
178
179 }