package hudson.plugins.codeplex.browsers;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.plugins.codeplex.CodePlexProjectProperty;
import hudson.plugins.tfs.model.ChangeLogSet;
import hudson.plugins.tfs.model.ChangeSet;
import java.net.URL;
import org.junit.Test;
@SuppressWarnings("unchecked")
public class CodePlexTfsBrowserTest {
@Test public void assertChangeSetLink() throws Exception {
AbstractBuild build = mock(AbstractBuild.class);
AbstractProject<?, ?> project = mock(AbstractProject.class);
when(project.getProperty(CodePlexProjectProperty.class)).thenReturn(new CodePlexProjectProperty("project"));
when(build.getProject()).thenReturn(project);
ChangeSet changeset = new ChangeSet("450", null, "user", "comment");
new ChangeLogSet(build, new ChangeSet[]{changeset});
URL actual = new CodePlexTfsBrowser().getChangeSetLink(changeset);
assertEquals("The change set link was incorrect", "http://www.codeplex.com/project/SourceControl/DirectoryView.aspx?SourcePath=&changeSetId=450", actual.toString());
}
@Test public void assertLinkIsNullIfNoProjectProperty() throws Exception {
AbstractBuild build = mock(AbstractBuild.class);
AbstractProject<?, ?> project = mock(AbstractProject.class);
when(project.getProperty(CodePlexProjectProperty.class)).thenReturn(null);
when(build.getProject()).thenReturn(project);
ChangeSet changeset = new ChangeSet("450", null, "user", "comment");
new ChangeLogSet(build, new ChangeSet[]{changeset});
URL actual = new CodePlexTfsBrowser().getChangeSetLink(changeset);
assertNull("The change set link was not null", actual);
}
}