1 package org.apache.maven.scm.provider.clearcase.repository;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23 import org.apache.maven.scm.log.DefaultLog;
24 import org.apache.maven.scm.providers.clearcase.settings.Settings;
25 import org.apache.maven.scm.repository.ScmRepositoryException;
26
27 import java.io.File;
28 import java.io.IOException;
29
30
31
32
33
34 public class ClearCaseScmProviderRepositoryTest
35 extends TestCase
36 {
37 public void testParsingUrlWithPipe()
38 throws ScmRepositoryException, IOException
39 {
40 Settings settings = new Settings();
41 String viewName = "my_module_view";
42 String configSpecPath = "//myserver/ClearCase/ConfigSpecs/mymodule.txt";
43 String url = viewName + "|" + configSpecPath;
44 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings);
45 assertEquals( new File( configSpecPath ).getPath(), repository.getConfigSpec().getPath() );
46 assertEquals( viewName, repository.getViewName( "bla" ) );
47 assertNull( repository.getLoadDirectory() );
48 assertNull(repository.getStreamName());
49 assertNull(repository.getVobName());
50 }
51
52 public void testParsingUrlWithColon()
53 throws ScmRepositoryException
54 {
55 Settings settings = new Settings();
56 String viewName = "my_module_view";
57 String configSpecPath = "//myserver/ClearCase/ConfigSpecs/mymodule.txt";
58 String url = viewName + ":" + configSpecPath;
59 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
60 assertEquals( new File( configSpecPath ).getPath(), repository.getConfigSpec().getPath() );
61 assertEquals( viewName, repository.getViewName( "bla" ) );
62 assertNull( repository.getLoadDirectory() );
63 assertNull(repository.getStreamName());
64 assertNull(repository.getVobName());
65 }
66
67 public void testParsingUrlWithoutViewName()
68 throws ScmRepositoryException
69 {
70 Settings settings = new Settings();
71 String configSpecPath = "//myserver/ClearCase/ConfigSpecs/mymodule.txt";
72 String url = configSpecPath;
73 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
74 assertEquals( new File( configSpecPath ).getPath(), repository.getConfigSpec().getPath() );
75 assertNotNull( repository.getViewName( "15" ) );
76 assertTrue( repository.getViewName( "15" ).indexOf( "15" ) != -1 );
77 assertNull( repository.getLoadDirectory() );
78 assertNull(repository.getStreamName());
79 assertNull(repository.getVobName());
80 }
81
82 public void testAutoConfigSpecWithColon()
83 throws Exception
84 {
85 Settings settings = new Settings();
86 String url = "my_view_name:load /VOB/some/dir";
87 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
88 assertNull( repository.getConfigSpec() );
89 assertTrue( repository.isAutoConfigSpec() );
90 assertEquals( "my_view_name", repository.getViewName( "bla" ) );
91 assertEquals( "/VOB/some/dir", repository.getLoadDirectory() );
92 assertNull(repository.getStreamName());
93 assertNull(repository.getVobName());
94 }
95
96 public void testAutoConfigSpecWithPipe()
97 throws Exception
98 {
99 Settings settings = new Settings();
100 String url = "my_view_name|load /VOB/some/dir";
101 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
102 assertNull( repository.getConfigSpec() );
103 assertTrue( repository.isAutoConfigSpec() );
104 assertEquals( "my_view_name", repository.getViewName( "bla" ) );
105 assertEquals( "/VOB/some/dir", repository.getLoadDirectory() );
106 assertNull(repository.getStreamName());
107 assertNull(repository.getVobName());
108 }
109
110 public void testAutoConfigSpecWithoutViewName()
111 throws Exception
112 {
113 Settings settings = new Settings();
114 String url = "load /VOB/some/dir";
115 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
116 assertNull( repository.getConfigSpec() );
117 assertTrue( repository.isAutoConfigSpec() );
118 assertNotNull( repository.getViewName( "15" ) );
119 assertTrue( repository.getViewName( "15" ).indexOf( "15" ) != -1 );
120 assertEquals( "/VOB/some/dir", repository.getLoadDirectory() );
121 assertNull(repository.getStreamName());
122 assertNull(repository.getVobName());
123 }
124
125 public void testParsingUrlClearCaseUCMWithPipe()
126 throws ScmRepositoryException
127 {
128 Settings settings = new Settings();
129 settings.setClearcaseType(ClearCaseScmProviderRepository.CLEARCASE_UCM);
130 String delimiter = "|";
131 String viewName = "my_module_view";
132 String configSpecPath = "//myserver/ClearCase/ConfigSpecs/mymodule.txt";
133 String vobName = "pvob_alliance";
134 String streamName = "INT_COMMUN_V1.0";
135 String url = viewName + delimiter + configSpecPath + delimiter + vobName + delimiter + streamName;
136 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
137 assertEquals( new File( configSpecPath ).getPath(), repository.getConfigSpec().getPath() );
138 assertEquals( viewName, repository.getViewName( "bla" ) );
139 assertNull( repository.getLoadDirectory() );
140 assertEquals(streamName, repository.getStreamName());
141 assertEquals(vobName, repository.getVobName());
142 }
143
144 public void testParsingUrlClearCaseUCMWithoutViewnameWithColon()
145 throws ScmRepositoryException
146 {
147 Settings settings = new Settings();
148 settings.setClearcaseType(ClearCaseScmProviderRepository.CLEARCASE_UCM);
149 String delimiter = ":";
150 String configSpecPath = "//myserver/ClearCase/ConfigSpecs/mymodule.txt";
151 String vobName = "pvob_alliance";
152 String streamName = "INT_COMMUN_V1.0";
153 String url = configSpecPath + delimiter + vobName + delimiter + streamName;
154 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
155 assertEquals( new File( configSpecPath ).getPath(), repository.getConfigSpec().getPath() );
156 assertNotNull( repository.getViewName( "bla" ) );
157 assertNull( repository.getLoadDirectory() );
158 assertEquals(streamName, repository.getStreamName());
159 assertEquals(vobName, repository.getVobName());
160 }
161
162 public void testParsingUrlClearCaseUCMWithoutViewnameWithColonAndElement()
163 throws ScmRepositoryException
164 {
165 Settings settings = new Settings();
166 settings.setClearcaseType( ClearCaseScmProviderRepository.CLEARCASE_UCM );
167 String delimiter = ":";
168 String configSpecPath = "//myserver/ClearCase/ConfigSpecs/mymodule.txt";
169 String vobName = "pvob_alliance";
170 String streamName = "INT_COMMUN_V1.0";
171 String elementName = "/main/element/LATEST";
172 String url = configSpecPath + delimiter + vobName + delimiter + streamName + delimiter + elementName;
173 ClearCaseScmProviderRepository repository =
174 new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
175 assertEquals( new File( configSpecPath ).getPath(), repository.getConfigSpec().getPath() );
176 assertNotNull( repository.getViewName( "bla" ) );
177 assertNull( repository.getLoadDirectory() );
178 assertEquals( streamName, repository.getStreamName() );
179 assertEquals( vobName, repository.getVobName() );
180 assertEquals( elementName, repository.getElementName() );
181 }
182
183 public void testParsingUrlClearCaseUCMAutoConfig()
184 throws ScmRepositoryException
185 {
186 Settings settings = new Settings();
187 settings.setClearcaseType(ClearCaseScmProviderRepository.CLEARCASE_UCM);
188 String delimiter = "|";
189 String loadPath = "/ua/sub/project";
190 String vobName = "pvob_alliance";
191 String streamName = "INT_COMMUN_V1.0";
192 String url = "load " + loadPath + delimiter + vobName + delimiter + streamName;
193 ClearCaseScmProviderRepository repository = new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
194 assertNull( repository.getConfigSpec() );
195 assertTrue( repository.isAutoConfigSpec() );
196 assertNotNull( repository.getViewName( "bla" ) );
197 assertEquals( loadPath, repository.getLoadDirectory() );
198 assertEquals(streamName, repository.getStreamName());
199 assertEquals(vobName, repository.getVobName());
200 }
201
202 public void testParsingUrlClearCaseUCMAutoConfigWithElement()
203 throws ScmRepositoryException
204 {
205 Settings settings = new Settings();
206 settings.setClearcaseType( ClearCaseScmProviderRepository.CLEARCASE_UCM );
207 String delimiter = "|";
208 String loadPath = "/ua/sub/project";
209 String vobName = "pvob_alliance";
210 String streamName = "INT_COMMUN_V1.0";
211 String elementName = "/main/element/LATEST";
212 String url = "load " + loadPath + delimiter + vobName + delimiter + streamName + delimiter + elementName;
213 ClearCaseScmProviderRepository repository =
214 new ClearCaseScmProviderRepository( new DefaultLog(), url, settings );
215 assertNull( repository.getConfigSpec() );
216 assertTrue( repository.isAutoConfigSpec() );
217 assertNotNull( repository.getViewName( "bla" ) );
218 assertEquals( loadPath, repository.getLoadDirectory() );
219 assertEquals( streamName, repository.getStreamName() );
220 assertEquals( vobName, repository.getVobName() );
221 assertEquals( elementName, repository.getElementName() );
222 }
223 }