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 return 0;
96 }
97
98 protected Wagon getWagon()
99 throws Exception
100 {
101 return wagon;
102 }
103
104 private File getCheckoutDirectory()
105 {
106 return new File( FileTestUtils.getTestOutputDir(), "/checkout-" + providerClassName );
107 }
108
109 protected int getExpectedContentLengthOnGet( int expectedSize )
110 {
111 return WagonConstants.UNKNOWN_LENGTH;
112 }
113
114 protected long getExpectedLastModifiedOnGet( Repository repository, Resource resource )
115 {
116 return 0;
117 }
118
119
120
121
122
123
124 protected abstract String getScmId();
125
126 protected String getProtocol()
127 {
128 return "scm";
129 }
130
131 protected void createDirectory( Wagon wagon, String resourceToCreate, String dirName )
132 throws Exception
133 {
134 super.createDirectory( wagon, resourceToCreate, dirName );
135 FileUtils.deleteDirectory( getCheckoutDirectory() );
136 }
137
138 protected void assertResourcesAreInRemoteSide( Wagon wagon, List resourceNames )
139 throws IOException, TransferFailedException, ResourceDoesNotExistException, AuthorizationException
140 {
141 FileUtils.deleteDirectory( getCheckoutDirectory() );
142 super.assertResourcesAreInRemoteSide( wagon, resourceNames );
143 }
144 }