package hudson.plugins.tfs;
import hudson.util.FormValidation;
import org.junit.Assert;
import org.junit.Test;
import java.net.URI;
/**
* A class to test {@link TeamCollectionConfiguration}.
*/
public class TeamCollectionConfigurationTest {
private static void assertSameCollectionUri(final String a, final String b) {
areSameCollectionUri(a, b, true);
}
private static void areSameCollectionUri(final String a, final String b, boolean expected) {
final URI uriA = a == null ? null : URI.create(a);
final URI uriB = b == null ? null : URI.create(b);
final String template = "Expected '%s' and '%s' to be considered%s the same.";
final String message = String.format(template, a, b, expected ? "" : " NOT");
Assert.assertEquals(message, expected, TeamCollectionConfiguration.areSameCollectionUri(uriA, uriB));
Assert.assertEquals(message, expected, TeamCollectionConfiguration.areSameCollectionUri(uriB, uriA));
}
@Test public void areSameCollectionUri_identity() throws Exception {
final String input = "https://fabrikam-fiber-inc.visualstudio.com/";
assertSameCollectionUri(input, input);
}
@Test public void areSameCollectionUri_typical() throws Exception {
final String a = "https://fabrikam-fiber-inc.visualstudio.com/";
final String b = "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection";
assertSameCollectionUri(a, b);
}
@Test public void areSameCollectionUri_withSlashes() throws Exception {
final String a = "https://fabrikam-fiber-inc.visualstudio.com/";
final String b = "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/";
assertSameCollectionUri(a, b);
}
@Test public void areSameCollectionUri_withoutSlashes() throws Exception {
final String a = "https://fabrikam-fiber-inc.visualstudio.com";
final String b = "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection";
assertSameCollectionUri(a, b);
}
@Test public void checkTeamServices_serverOnly() throws Exception {
final URI input = URI.create("https://fabrikam-fiber-inc.visualstudio.com");
final FormValidation actual = TeamCollectionConfiguration.checkTeamServices(input);
Assert.assertEquals(FormValidation.Kind.OK, actual.kind);
}
@Test public void checkTeamServices_serverWithSlash() throws Exception {
final URI input = URI.create("https://fabrikam-fiber-inc.visualstudio.com/");
final FormValidation actual = TeamCollectionConfiguration.checkTeamServices(input);
Assert.assertEquals(FormValidation.Kind.OK, actual.kind);
}
@Test public void checkTeamServices_serverWithDefaultCollection() throws Exception {
final URI input = URI.create("https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection");
final FormValidation actual = TeamCollectionConfiguration.checkTeamServices(input);
Assert.assertEquals(FormValidation.Kind.ERROR, actual.kind);
}
@Test public void checkTeamServices_serverWithDefaultCollectionSlash() throws Exception {
final URI input = URI.create("https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/");
final FormValidation actual = TeamCollectionConfiguration.checkTeamServices(input);
Assert.assertEquals(FormValidation.Kind.ERROR, actual.kind);
}
@Test public void checkTeamServices_gitUrl() throws Exception {
final URI input = URI.create("https://fabrikam-fiber-inc.visualstudio.com/_git/Fabrikam");
final FormValidation actual = TeamCollectionConfiguration.checkTeamServices(input);
Assert.assertEquals(FormValidation.Kind.ERROR, actual.kind);
}
}