package org.codefaces.web.urls.googlecode; import static org.junit.Assert.*; import org.codefaces.ui.SCMConfigurableElement; import org.codefaces.ui.SCMURLConfiguration; import org.codefaces.web.urls.googlecode.GoogleCodeSvnPageParsingStrategy; import org.junit.Before; import org.junit.Test; public class GoogleCodeSvnPageParsingStrategyTest { private static final String TEST_REPO_URL = "http://aurorasdk.googlecode.com/svn"; private static final String TEST_SCM_KIND = "Subversion"; private static final String TEST_SVN_MAIN_PAGE_URL = "http://aurorasdk.googlecode.com/svn"; private static final String TEST_SVN_MAIN_PAGE_URL_WITH_TRAILING_SLASH = TEST_SVN_MAIN_PAGE_URL + "/"; private static final String TEST_SVN_OTHER_PAGE_URL = "http://aurorasdk.googlecode.com/svn/trunk/%20aurorasdk%20--username%20jingweno/"; private GoogleCodeSvnPageParsingStrategy strategy; @Before public void setUp(){ strategy = new GoogleCodeSvnPageParsingStrategy(); } @Test public void urlShouldBeCorrectlyParsedWhenMainPageSVNUrlIsGiven(){ SCMURLConfiguration config = strategy.buildConfigurations(TEST_SVN_MAIN_PAGE_URL); assertEquals(TEST_REPO_URL, config.get(SCMConfigurableElement.REPO_URL)); assertEquals(TEST_SCM_KIND, config.get(SCMConfigurableElement.SCM_KIND)); assertNull(config.get(SCMConfigurableElement.USER)); } @Test public void urlShouldBeCorrectlyParsedWhenMainPageWithTrailingSlashSVNUrlIsGiven(){ SCMURLConfiguration config = strategy .buildConfigurations(TEST_SVN_MAIN_PAGE_URL_WITH_TRAILING_SLASH); assertEquals(TEST_REPO_URL, config.get(SCMConfigurableElement.REPO_URL)); assertEquals(TEST_SCM_KIND, config.get(SCMConfigurableElement.SCM_KIND)); assertNull(config.get(SCMConfigurableElement.USER)); } @Test public void urlShouldBeCorrectlyParsedWhenOtherPageSVNUrlIsGiven(){ SCMURLConfiguration config = strategy.buildConfigurations(TEST_SVN_OTHER_PAGE_URL); assertEquals(TEST_REPO_URL, config.get(SCMConfigurableElement.REPO_URL)); assertEquals(TEST_SCM_KIND, config.get(SCMConfigurableElement.SCM_KIND)); assertNull(config.get(SCMConfigurableElement.USER)); } }