1 package org.apache.maven.wagon.providers.scm;
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.manager.plexus.DefaultScmManager;
23 import org.apache.maven.scm.provider.ScmProvider;
24 import org.apache.maven.wagon.FileTestUtils;
25 import org.apache.maven.wagon.ResourceDoesNotExistException;
26 import org.apache.maven.wagon.TransferFailedException;
27 import org.apache.maven.wagon.Wagon;
28 import org.apache.maven.wagon.WagonConstants;
29 import org.apache.maven.wagon.WagonTestCase;
30 import org.apache.maven.wagon.authorization.AuthorizationException;
31 import org.apache.maven.wagon.repository.Repository;
32 import org.apache.maven.wagon.resource.Resource;
33 import org.codehaus.plexus.util.FileUtils;
34
35 import java.io.File;
36 import java.io.IOException;
37 import java.util.List;
38
39
40
41
42
43
44
45 public abstract class AbstractScmWagonTest
46 extends WagonTestCase
47 {
48
49 private ScmWagon wagon;
50
51 private String providerClassName;
52
53 protected void setUp()
54 throws Exception
55 {
56 super.setUp();
57
58 FileUtils.deleteDirectory( getCheckoutDirectory() );
59
60 if ( wagon == null )
61 {
62 wagon = (ScmWagon) super.getWagon();
63
64 DefaultScmManager scmManager = (DefaultScmManager) wagon.getScmManager();
65
66 if ( getScmProvider() != null )
67 {
68 scmManager.setScmProvider( getScmId(), getScmProvider() );
69
70 providerClassName = getScmProvider().getClass().getName();
71 }
72 else
73 {
74 providerClassName = scmManager.getProviderByType( getScmId() ).getClass().getName();
75 }
76
77 wagon.setCheckoutDirectory( getCheckoutDirectory() );
78 }
79 }
80
81
82
83
84
85
86
87
88 protected ScmProvider getScmProvider()
89 {
90 return null;
91 }
92
93 @Override
94 protected int getTestRepositoryPort()
95 {
96 return 0;
97 }
98
99 protected Wagon getWagon()
100 throws Exception
101 {
102 return wagon;
103 }
104
105 private File getCheckoutDirectory()
106 {
107 return new File( FileTestUtils.getTestOutputDir(), "/checkout-" + providerClassName );
108 }
109
110 protected int getExpectedContentLengthOnGet( int expectedSize )
111 {
112 return WagonConstants.UNKNOWN_LENGTH;
113 }
114
115 protected long getExpectedLastModifiedOnGet( Repository repository, Resource resource )
116 {
117 return 0;
118 }
119
120
121
122
123
124
125 protected abstract String getScmId();
126
127 protected String getProtocol()
128 {
129 return "scm";
130 }
131
132 protected void createDirectory( Wagon wagon, String resourceToCreate, String dirName )
133 throws Exception
134 {
135 super.createDirectory( wagon, resourceToCreate, dirName );
136 FileUtils.deleteDirectory( getCheckoutDirectory() );
137 }
138
139 protected void assertResourcesAreInRemoteSide( Wagon wagon, List<String> resourceNames )
140 throws IOException, TransferFailedException, ResourceDoesNotExistException, AuthorizationException
141 {
142 FileUtils.deleteDirectory( getCheckoutDirectory() );
143 super.assertResourcesAreInRemoteSide( wagon, resourceNames );
144 }
145 }