package hudson.plugins.googlecode; import static org.junit.Assert.*; import java.net.URL; import hudson.scm.SubversionChangeLogSet.LogEntry; import hudson.scm.SubversionChangeLogSet.Path; import org.jmock.Expectations; import org.jmock.Mockery; import org.junit.Before; import org.junit.Test; public class GoogleCodeRepositoryBrowserTest { private GoogleCodeRepositoryBrowser googleCodeRepositoryBrowser; private Mockery context; private GoogleCodeProjectProperty.PropertyRetriever urlRetriever; private GoogleCodeProjectProperty property; private LogEntry entry; private Path path; @Before public void setUp() throws Exception { property = new GoogleCodeProjectProperty("http://code.google.com/p/mockito/"); entry = new LogEntry(); path = new Path(); path.setLogEntry(entry); context = new Mockery(); urlRetriever = context.mock(GoogleCodeProjectProperty.PropertyRetriever.class); context.checking(new Expectations() { { one(urlRetriever).getProperty(entry); will(returnValue(property)); } }); googleCodeRepositoryBrowser = new GoogleCodeRepositoryBrowser(urlRetriever); } @Test public void testGetDiffLinkPath() throws Throwable { entry.setRevision(448); path.setValue("/trunk/src/org/mockito/ArgumentMatcher.java"); path.setAction("EDIT"); URL actual = googleCodeRepositoryBrowser.getDiffLink(path); URL expected = new URL("http://code.google.com/p/mockito/source/diff?r=448&format=side&path=/trunk/src/org/mockito/ArgumentMatcher.java"); assertEquals(expected, actual); context.assertIsSatisfied(); } @Test public void testGetDiffLinkPathForAddAction() throws Throwable { path.setAction("ADD"); URL actual = googleCodeRepositoryBrowser.getDiffLink(path); assertNull(actual); } @Test public void testGetFileLinkPath() throws Throwable { entry.setRevision(446); path.setValue("/trunk/src/org/mockito/ArgumentMatcher.java"); path.setAction("EDIT"); URL actual = googleCodeRepositoryBrowser.getFileLink(path); URL expected = new URL("http://code.google.com/p/mockito/source/browse/trunk/src/org/mockito/ArgumentMatcher.java?r=446#1"); assertEquals(expected, actual); context.assertIsSatisfied(); } @Test public void testGetChangeSetLinkLogEntry() throws Throwable { entry.setRevision(450); URL actual = googleCodeRepositoryBrowser.getChangeSetLink(entry); URL expected = new URL("http://code.google.com/p/mockito/source/detail?r=450"); assertEquals(expected, actual); context.assertIsSatisfied(); } }