1 package org.apache.maven.scm.provider.perforce;
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.scm.ScmTestCase;
23 import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
24 import org.apache.maven.scm.repository.ScmRepository;
25 import org.codehaus.plexus.util.StringUtils;
26
27
28
29
30 public class PerforceScmProviderTest
31 extends ScmTestCase
32 {
33 public void testParseConnection()
34 throws Exception
35 {
36 ScmRepository repo = makeScmRepository( "scm:perforce://depot/projects/pathname" );
37
38 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
39
40 assertNull( p4Repo.getHost() );
41
42 assertEquals( 0, p4Repo.getPort() );
43
44 assertNull( p4Repo.getUser() );
45
46 assertNull( p4Repo.getPassword() );
47
48 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
49
50 assertTrue( StringUtils.isBlank( p4Repo.getProtocol() ) );
51 }
52
53 public void testParseConnectionWithUsername()
54 throws Exception
55 {
56 ScmRepository repo = makeScmRepository( "scm:perforce:username@//depot/projects/pathname" );
57
58 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
59
60 assertNull( p4Repo.getHost() );
61
62 assertEquals( 0, p4Repo.getPort() );
63
64 assertEquals( "username", p4Repo.getUser() );
65
66 assertNull( p4Repo.getPassword() );
67
68 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
69 }
70
71 public void testParseConnectionWithHostPortAndUsername()
72 throws Exception
73 {
74 ScmRepository repo = makeScmRepository( "scm:perforce:host:1234:username@//depot/projects/pathname" );
75
76 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
77
78 assertEquals( "host", p4Repo.getHost() );
79
80 assertEquals( 1234, p4Repo.getPort() );
81
82 assertEquals( "username", p4Repo.getUser() );
83
84 assertNull( p4Repo.getPassword() );
85
86 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
87 }
88
89 public void testParseConnectionWithHostAndPort()
90 throws Exception
91 {
92 ScmRepository repo = makeScmRepository( "scm:perforce:host:1234://depot/projects/pathname" );
93
94 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
95
96 assertEquals( "host", p4Repo.getHost() );
97
98 assertEquals( 1234, p4Repo.getPort() );
99
100 assertNull( p4Repo.getUser() );
101
102 assertNull( p4Repo.getPassword() );
103
104 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
105 }
106
107 public void testParseConnectionWithHostPortAndUsername2()
108 throws Exception
109 {
110 ScmRepository repo = makeScmRepository( "scm:perforce:username@host:1234://depot/projects/pathname" );
111
112 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
113
114 assertEquals( "host", p4Repo.getHost() );
115
116 assertEquals( 1234, p4Repo.getPort() );
117
118 assertEquals( "username", p4Repo.getUser() );
119
120 assertNull( p4Repo.getPassword() );
121
122 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
123 }
124
125 public void testParseConnectionWithHostAndUsername()
126 throws Exception
127 {
128 ScmRepository repo = makeScmRepository( "scm:perforce:username@host://depot/projects/pathname" );
129
130 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
131
132 assertEquals( "host", p4Repo.getHost() );
133
134 assertEquals( 0, p4Repo.getPort() );
135
136 assertEquals( "username", p4Repo.getUser() );
137
138 assertNull( p4Repo.getPassword() );
139
140 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
141 }
142
143 public void testParseConnectionWithHost()
144 throws Exception
145 {
146 ScmRepository repo = makeScmRepository( "scm:perforce:host://depot/projects/pathname" );
147
148 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
149
150 assertEquals( "host", p4Repo.getHost() );
151
152 assertEquals( 0, p4Repo.getPort() );
153
154 assertNull( p4Repo.getUser() );
155
156 assertNull( p4Repo.getPassword() );
157
158 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
159 }
160
161 public void testRepositoryPathCanonicalization()
162 {
163 assertEquals( "//depot/foo/bar/...", PerforceScmProvider.getCanonicalRepoPath( "//depot/foo/bar" ) );
164
165 assertEquals( "//depot/foo/bar/...", PerforceScmProvider.getCanonicalRepoPath( "//depot/foo/bar/" ) );
166
167 assertEquals( "//depot/foo/bar/...", PerforceScmProvider.getCanonicalRepoPath( "//depot/foo/bar/..." ) );
168 }
169
170 public void testParseConnectionWithSsl()
171 throws Exception
172 {
173 ScmRepository repo = makeScmRepository( "scm:perforce:ssl:host:1066://depot/projects/pathname" );
174
175 PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
176
177 assertEquals( "host", p4Repo.getHost() );
178
179 assertEquals( 1066, p4Repo.getPort() );
180
181 assertNull( p4Repo.getUser() );
182
183 assertNull( p4Repo.getPassword() );
184
185 assertEquals( "//depot/projects/pathname", p4Repo.getPath() );
186
187 assertEquals( "ssl", p4Repo.getProtocol() );
188 }
189 }