private BuildServer ConstructBuildServerFromSelectedOptions()
        {
            if (rdoRemoting.Checked)
            {
                var server = BuildServer.BuildFromRemotingDisplayName(txtRemoting.Text);
                server.ExtensionSettings = ClientStartUpSettingsExtensions.GenerateExtensionSettings(connectToOldServer.Checked,
                                                                                                     remotingEncryption.Checked);
                return(server);
            }

            if (rdoHttp.Checked)
            {
                var server = new BuildServer(txtHttp.Text);
                server.ExtensionSettings = ClientStartUpSettingsExtensions.GenerateExtensionSettings(true, false);
                return(server);
            }

            if (rdoDashboard.Checked)
            {
                var baseUri = txtDashboard.Text;
                if (baseUri.EndsWith("XmlStatusReport.aspx", StringComparison.CurrentCultureIgnoreCase) ||
                    baseUri.EndsWith("XmlServerReport.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    baseUri = baseUri.Substring(0, baseUri.Length - 20);
                }
                var server = new BuildServer(baseUri);
                server.ExtensionSettings = ClientStartUpSettingsExtensions.GenerateExtensionSettings(connectToOldDashboard.Checked,
                                                                                                     httpEncryption.Checked);
                return(server);
            }

            if (rdoExtension.Checked)
            {
                if (transportExtension == null)
                {
                    throw new ApplicationException("No extension selected");
                }
                var server = new BuildServer(transportExtension.Configuration.Url,
                                             BuildServerTransport.Extension,
                                             cmbExtension.Text,
                                             transportExtension.Settings);
                return(server);
            }

            return(null);
        }
 public void ThrowsWhenParsingAStringThatContainsMoreThanOneColon()
 {
     Assert.That(delegate { BuildServer.BuildFromRemotingDisplayName("tcp://server:123/blah.rem"); },
                 Throws.TypeOf <ApplicationException>());
 }
 public void ThrowsWhenParsingAStringWithNonNumericPortNumber()
 {
     Assert.That(delegate { BuildServer.BuildFromRemotingDisplayName("server:xxx"); },
                 Throws.TypeOf <ApplicationException>());
 }
        public void CanParseADisplayNameWithoutAPort()
        {
            BuildServer server = BuildServer.BuildFromRemotingDisplayName("server");

            Assert.AreEqual("tcp://server:21234/CruiseManager.rem", server.Url);
        }