package org.codefaces.web.urls.googlecode; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class GoogleCodeMainPageParsingStrategyTest { private static final String TEST_MAIN_PAGE_SVN_URL = "http://code.google.com/p/aurorasdk"; private static final String TEST_MAIN_PAGE_SVN_URL_WITH_TRAILING_SLASH = TEST_MAIN_PAGE_SVN_URL + "/"; private static final String TEST_OTHER_PAGE_SVN_URL = "http://code.google.com/p/aurorasdk/issues/detail?id=1"; private static final String TEST_SVN_PROJECT_NAME = "aurorasdk"; private static final String TEST_SVN_SCM_KIND = "Subversion"; private static final String TEST_SVN_REPO_URL = "http://aurorasdk.googlecode.com/svn"; private static final String TEST_HG_PROJECT_NAME = "ocropus"; private static final String TEST_HG_SCM_KIND = "Mercurial"; private static final String TEST_HG_REPO_URL = "http://ocropus.googlecode.com/hg"; private GoogleCodeMainPageParsingStrategy strategy; @Before public void setUp(){ strategy = new GoogleCodeMainPageParsingStrategy(); } @Test public void canParseSvnUrl(){ assertTrue(strategy.canParse(TEST_MAIN_PAGE_SVN_URL)); assertTrue(strategy.canParse(TEST_MAIN_PAGE_SVN_URL_WITH_TRAILING_SLASH)); assertTrue(strategy.canParse(TEST_OTHER_PAGE_SVN_URL)); } @Test public void svnUrlShouldBeCorrectlyReconstructedWhenSvnUrlIsProvided(){ assertEquals(TEST_SVN_REPO_URL, strategy.reconstructUrl( TEST_SVN_PROJECT_NAME, TEST_SVN_SCM_KIND)); } @Test public void hgUrlShouldBeCorrectlyReconstructedWhenSvnUrlIsProvided(){ assertEquals(TEST_HG_REPO_URL, strategy.reconstructUrl( TEST_HG_PROJECT_NAME, TEST_HG_SCM_KIND)); } @Test public void projectNameShouldBeObtainedWhenMainPageUrlIsProvided(){ assertEquals(TEST_SVN_PROJECT_NAME, strategy.getProjectNameFromUrl(TEST_MAIN_PAGE_SVN_URL)); } @Test public void projectNameShouldBeObtainedWhenMainPageUrlWithTrailingSlashIsProvided(){ assertEquals(TEST_SVN_PROJECT_NAME, strategy.getProjectNameFromUrl(TEST_MAIN_PAGE_SVN_URL_WITH_TRAILING_SLASH)); } @Test public void projectNameShouldBeObtainedWhenOtherPageUrlIsProvided(){ assertEquals(TEST_SVN_PROJECT_NAME, strategy.getProjectNameFromUrl(TEST_OTHER_PAGE_SVN_URL)); } }