001package org.apache.maven.scm.provider;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import junit.framework.TestCase;
023
024/**
025 * @author <a href="mailto:dennisl@apache.org">Dennis Lundberg</a>
026 *
027 */
028public class ScmUrlUtilsTest
029    extends TestCase
030{
031    private static final String SCM_URL_CVS_COLON = "scm:cvs:local:repository:module";
032
033    private static final String SCM_URL_CVS_PIPE = "scm:cvs|local|repository|module";
034
035    private static final String SCM_URL_CVS_INVALID = "scm|cvs|local|repository|module";
036
037    private static final String SCM_URL_INVALID_1 = null;
038
039    private static final String SCM_URL_INVALID_2 = "scm";
040
041    private static final String SCM_URL_INVALID_3 = "scm:a";
042
043    private static final String SCM_URL_INVALID_4 = "scm:a-";
044
045    private static final String SCM_URL_VALID_1 = "scm:a:";
046
047    private static final String SCM_URL_VALID_2 = "scm:a|";
048
049    private static final String SCM_URL_VALID_3 = "scm:a:provider-specific-part";
050
051    private static final String SCM_URL_VALID_4 = "scm:a|provider-specific-part";
052
053    public void testGetDelimiter()
054        throws Exception
055    {
056        assertEquals( ":", ScmUrlUtils.getDelimiter( SCM_URL_CVS_COLON ) );
057        assertEquals( "|", ScmUrlUtils.getDelimiter( SCM_URL_CVS_PIPE ) );
058        assertEquals( "|", ScmUrlUtils.getDelimiter( SCM_URL_CVS_INVALID ) );
059    }
060
061    public void testGetProvider()
062        throws Exception
063    {
064        assertEquals( "cvs", ScmUrlUtils.getProvider( SCM_URL_CVS_COLON ) );
065        assertEquals( "cvs", ScmUrlUtils.getProvider( SCM_URL_CVS_PIPE ) );
066        assertEquals( "cvs", ScmUrlUtils.getProvider( SCM_URL_CVS_INVALID ) );
067
068        assertEquals( "a", ScmUrlUtils.getProvider( SCM_URL_VALID_1 ) );
069        assertEquals( "a", ScmUrlUtils.getProvider( SCM_URL_VALID_2 ) );
070        assertEquals( "a", ScmUrlUtils.getProvider( SCM_URL_VALID_3 ) );
071        assertEquals( "a", ScmUrlUtils.getProvider( SCM_URL_VALID_4 ) );
072    }
073
074    public void testGetProviderSpecificPart()
075        throws Exception
076    {
077        assertEquals( "local:repository:module", ScmUrlUtils.getProviderSpecificPart( SCM_URL_CVS_COLON ) );
078        assertEquals( "local|repository|module", ScmUrlUtils.getProviderSpecificPart( SCM_URL_CVS_PIPE ) );
079        assertEquals( "local|repository|module", ScmUrlUtils.getProviderSpecificPart( SCM_URL_CVS_INVALID ) );
080
081        assertEquals( "", ScmUrlUtils.getProviderSpecificPart( SCM_URL_VALID_1 ) );
082        assertEquals( "", ScmUrlUtils.getProviderSpecificPart( SCM_URL_VALID_2 ) );
083        assertEquals( "provider-specific-part", ScmUrlUtils.getProviderSpecificPart( SCM_URL_VALID_3 ) );
084        assertEquals( "provider-specific-part", ScmUrlUtils.getProviderSpecificPart( SCM_URL_VALID_4 ) );
085    }
086
087    public void testIsValid()
088        throws Exception
089    {
090        assertTrue( ScmUrlUtils.isValid( SCM_URL_CVS_COLON ) );
091        assertTrue( ScmUrlUtils.isValid( SCM_URL_CVS_PIPE ) );
092        assertFalse( ScmUrlUtils.isValid( SCM_URL_CVS_INVALID ) );
093
094        assertTrue( ScmUrlUtils.isValid( SCM_URL_VALID_1 ) );
095        assertTrue( ScmUrlUtils.isValid( SCM_URL_VALID_2 ) );
096        assertTrue( ScmUrlUtils.isValid( SCM_URL_VALID_3 ) );
097        assertFalse( ScmUrlUtils.isValid( SCM_URL_INVALID_1 ) );
098        assertFalse( ScmUrlUtils.isValid( SCM_URL_INVALID_2 ) );
099        assertFalse( ScmUrlUtils.isValid( SCM_URL_INVALID_3 ) );
100        assertFalse( ScmUrlUtils.isValid( SCM_URL_INVALID_4 ) );
101    }
102}