1 package org.apache.continuum.scm.manager;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Properties;
23
24 import org.apache.maven.scm.manager.NoSuchScmProviderException;
25 import org.apache.maven.scm.provider.ScmProvider;
26 import org.apache.maven.scm.provider.cvslib.cvsexe.CvsExeScmProvider;
27 import org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider;
28 import org.codehaus.plexus.spring.PlexusClassPathXmlApplicationContext;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31 import org.springframework.context.ApplicationContext;
32
33 import junit.framework.TestCase;
34
35
36
37
38
39 public class ScmManagerTest
40 extends TestCase
41 {
42 private static final Logger log = LoggerFactory.getLogger( ScmManagerTest.class );
43
44 private ScmManager manager;
45
46 public void setUp()
47 {
48 ApplicationContext context = new PlexusClassPathXmlApplicationContext(
49 new String[]{"classpath*:META-INF/spring-context.xml", "classpath*:META-INF/plexus/components.xml",
50 "classpath*:" + getClass().getName().replace( '.', '/' ) + ".xml"} );
51 manager = (ScmManager) context.getBean( "scmManager" );
52 }
53
54 public void testScmProviders()
55 throws NoSuchScmProviderException
56 {
57 Properties backupSysProps = System.getProperties();
58
59 try
60 {
61 manager.getScmLogger().info( "Hello, World" );
62 assertNotNull( manager.getProviderByType( "svn" ) );
63
64 ScmProvider cvsProvider = manager.getProviderByType( "cvs" );
65 assertNotNull( cvsProvider );
66
67 log.info( "cvs provider class " + cvsProvider.getClass().getName() );
68
69 assertEquals( CvsJavaScmProvider.class, cvsProvider.getClass() );
70
71 System.setProperty( "maven.scm.provider.cvs.implementation", "cvs_native" );
72
73 cvsProvider = manager.getProviderByType( "cvs" );
74 assertNotNull( cvsProvider );
75
76 log.info( "cvs provider class " + cvsProvider.getClass().getName() );
77 assertEquals( CvsExeScmProvider.class, cvsProvider.getClass() );
78 System.setProperty( "maven.scm.provider.cvs.implementation", "cvs" );
79
80 cvsProvider = manager.getProviderByType( "cvs" );
81 assertNotNull( cvsProvider );
82
83 log.info( "cvs provider class " + cvsProvider.getClass().getName() );
84
85 assertEquals( CvsJavaScmProvider.class, cvsProvider.getClass() );
86 }
87 finally
88 {
89 System.setProperties( backupSysProps );
90 System.setProperty( "maven.scm.provider.cvs.implementation", "cvs" );
91 }
92
93 }
94 }