package hudson.plugins.tfs.browsers;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.plugins.tfs.TeamFoundationServerScm;
import hudson.plugins.tfs.model.ChangeLogSet;
import hudson.plugins.tfs.model.ChangeSet;
import java.net.URL;
import org.junit.Test;
@SuppressWarnings("unchecked")
public class TeamSystemWebAccessBrowserTest {
/**
* http://tswaserver:8090/cs.aspx?cs=99
*/
@Test public void assertChangeSetLink() throws Exception {
TeamSystemWebAccessBrowser browser = new TeamSystemWebAccessBrowser("http://tswaserver:8090/ViewChangeset.aspx?changeset=6200");
ChangeSet changeSet = new ChangeSet("99", null, "user", "comment");
URL actual = browser.getChangeSetLink(changeSet);
assertEquals("The change set link was incorrect", "http://tswaserver:8090/cs.aspx?cs=99", actual.toString());
}
@Test public void assertChangeSetLinkUsesScmConfiguration() throws Exception {
AbstractBuild build = mock(AbstractBuild.class);
AbstractProject<?,?> project = mock(AbstractProject.class);
when(build.getProject()).thenReturn(project);
when(project.getScm()).thenReturn(new TeamFoundationServerScm("http://server:80", null, null, false, null, null, null));
ChangeSet changeset = new ChangeSet("62643", null, "user", "comment");
new ChangeLogSet(build, new ChangeSet[]{ changeset});
TeamSystemWebAccessBrowser browser = new TeamSystemWebAccessBrowser("");
URL actual = browser.getChangeSetLink(changeset);
assertEquals("The change set link was incorrect", "http://server:80/cs.aspx?cs=62643", actual.toString());
}
/**
* http://tswaserver:8090/view.aspx?path=$/Project/Folder/file.cs&cs=99
*/
@Test public void assertFileLink() throws Exception {
TeamSystemWebAccessBrowser browser = new TeamSystemWebAccessBrowser("http://tswaserver:8090/ViewChangeset.aspx?changeset=6200");
ChangeSet changeSet = new ChangeSet("99", null, "user", "comment");
ChangeSet.Item item = new ChangeSet.Item("$/Project/Folder/file.cs", "add");
changeSet.add(item);
URL actual = browser.getFileLink(item);
assertEquals("The change set link was incorrect", "http://tswaserver:8090/view.aspx?path=$/Project/Folder/file.cs&cs=99", actual.toString());
}
/**
* http://tswaserver:8090/diff.aspx?opath=$/Project/Folder/file.cs&ocs=99&mpath=$/Project/Folder/file.cs&mcs=98
*/
@Test public void assertDiffLink() throws Exception {
TeamSystemWebAccessBrowser browser = new TeamSystemWebAccessBrowser("http://tswaserver:8090/ViewChangeset.aspx?changeset=6200");
ChangeSet changeSet = new ChangeSet("99", null, "user", "comment");
ChangeSet.Item item = new ChangeSet.Item("$/Project/Folder/file.cs", "edit");
changeSet.add(item);
URL actual = browser.getDiffLink(item);
assertEquals("The change set link was incorrect", "http://tswaserver:8090/diff.aspx?opath=$/Project/Folder/file.cs&ocs=98&mpath=$/Project/Folder/file.cs&mcs=99", actual.toString());
}
@Test public void assertNullDiffLinkForAddedFile() throws Exception {
TeamSystemWebAccessBrowser browser = new TeamSystemWebAccessBrowser("http://tswaserver:8090/ViewChangeset.aspx?changeset=6200");
ChangeSet changeSet = new ChangeSet("99", null, "user", "comment");
ChangeSet.Item item = new ChangeSet.Item("$/Project/Folder/file.cs", "add");
changeSet.add(item);
assertNull("The diff link should be null for new files", browser.getDiffLink(item));
}
@Test public void assertNullDiffLinkForInvalidChangeSetVersion() throws Exception {
TeamSystemWebAccessBrowser browser = new TeamSystemWebAccessBrowser("http://tswaserver:8090/ViewChangeset.aspx?changeset=6200");
ChangeSet changeSet = new ChangeSet("aaaa", null, "user", "comment");
ChangeSet.Item item = new ChangeSet.Item("$/Project/Folder/file.cs", "edit");
changeSet.add(item);
assertNull("The diff link should be null for invalid change set version", browser.getDiffLink(item));
}
@Test public void assertDescriptorBaseUrlRemovesName() {
String expected = TeamSystemWebAccessBrowser.DescriptorImpl.getBaseUrl("http://server:80/UI/Pages/Scc/ViewChangeset.aspx?changeset=62643");
assertEquals("The base url was incorrect", "http://server:80/UI/Pages/Scc/", expected);
}
@Test public void assertDescriptorBaseUrlDoesNotRemoveLastPath() {
String expected = TeamSystemWebAccessBrowser.DescriptorImpl.getBaseUrl("http://server:80/UI/Pages/Scc/");
assertEquals("The base url was incorrect", "http://server:80/UI/Pages/Scc/", expected);
}
}