public CCTrayProject[] GetProjectList(BuildServer server, bool newServer) { if (newServer) { // Clear the cache when adding a new server clientFactory.ResetCache(server.Url); } ICruiseServerManager manager; switch (server.Transport) { case BuildServerTransport.Remoting: { var client = GenerateRemotingClient(server); manager = new RemotingCruiseServerManager(client, server); break; } case BuildServerTransport.Extension: return new ExtensionTransportProjectListRetriever(server.ExtensionName).GetProjectList(server); default: { var client = GenerateHttpClient(server); manager = new HttpCruiseServerManager(client, server); break; } } if (!string.IsNullOrEmpty(server.SecurityType)) { manager.Login(); } return manager.GetProjectList(); }
public void SetUp() { serverClient = mocks.DynamicMock<CruiseServerClientBase>(); buildServer = new BuildServer(SERVER_URL); manager = new HttpCruiseServerManager(serverClient, buildServer); }
public CCTrayProject(string serverUrl, string projectName) { buildServer = new BuildServer(serverUrl); ServerUrl = serverUrl; ProjectName = projectName; showProject = true; }
public void SetUp() { cruiseManagerMock = mocks.StrictMock<CruiseServerClientBase>(); buildServer = new BuildServer(ServerUrl); manager = new RemotingCruiseServerManager(cruiseManagerMock, buildServer); }
public CCTrayProject(string serverUrl, string projectName) { buildServer = new BuildServer(serverUrl); ServerUrl = serverUrl; ProjectName = projectName; showProject = true; }
public StubServerMonitor( string serverUrl ) { this.serverUrl = serverUrl; BuildServer buildServer = new BuildServer(serverUrl); this.displayName = buildServer.DisplayName; this.buildServerTransport = buildServer.Transport; }
public HttpCruiseServerManager(CruiseServerClientBase manager, BuildServer buildServer) { this.manager = manager; this.configuration = buildServer; displayName = GetDisplayNameFromUri(buildServer.Uri); }
public CCTrayProject[] GetProjectList(ThoughtWorks.CruiseControl.CCTrayLib.Configuration.BuildServer server) { List <CCTrayProject> projectsList = new List <CCTrayProject>(); projectsList.Add(new CCTrayProject(server, "Test project #1")); return(projectsList.ToArray()); }
public TeamCityManager(BuildServer buildServer, HttpClient httpClient, ISirenOfShameManager sosManager) { DisplayName = "TeamCityManager"; Configuration = buildServer; _sosManager = sosManager; _httpClient = httpClient; _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); }
/// <summary> /// Initialises the args. /// </summary> /// <param name="addedProjects"></param> /// <param name="deletedProjects"></param> public ServerSnapshotChangedEventArgs(string server, BuildServer configuration, IEnumerable<string> addedProjects, IEnumerable<string> deletedProjects) { this.Server = server; this.Configuration = configuration; this.addedProjects.AddRange(addedProjects ?? new string[0]); this.deletedProjects.AddRange(deletedProjects ?? new string[0]); }
public override bool Equals(object obj) { BuildServer other = obj as BuildServer; if (other == null) { return(false); } return(other.url.Equals(url)); }
public void WhenRequestingACruiseServerManagerWithAnExtensionProtocolCannotFindExtension() { var mockCruiseManagerFactory = mocks.StrictMock<ICruiseServerClientFactory>(); var factory = new CruiseServerManagerFactory(mockCruiseManagerFactory); var server = new BuildServer("http://somethingOrOther", BuildServerTransport.Extension, "Extension.Unknown,Extension", string.Empty); mocks.ReplayAll(); Assert.That(delegate { factory.Create(server); }, Throws.TypeOf<CCTrayLibException>()); }
/// <summary> /// Generates a set of <see cref="ClientStartUpSettings"/>. /// </summary> /// <param name="server"></param> /// <returns></returns> public static ClientStartUpSettings GenerateStartupSettings(BuildServer server) { var extSettings = server.ExtensionSettings ?? string.Empty; if (extSettings.Length < 6) extSettings += new string(' ', 6 - extSettings.Length); var settings = new ClientStartUpSettings { BackwardsCompatable = (extSettings.Substring(0, 3) == "OLD"), UseEncryption = (extSettings.Substring(3, 3) == "SEC") }; return settings; }
public TFSServerManager(BuildServer buildServer) { if (buildServer.Transport != BuildServerTransport.Extension || String.IsNullOrEmpty(buildServer.ExtensionSettings)) { throw new ArgumentException("You must specify the TFS Settings to utilize this Server Manager"); } _buildServer = buildServer; Settings = TFSServerManagerSettings.GetSettings(buildServer.ExtensionSettings); }
public void WhenRequestingACruiseServerManagerWithAnExtensionProtocolEmptyExtension() { var mockCruiseManagerFactory = mocks.StrictMock<ICruiseServerClientFactory>(); var factory = new CruiseServerManagerFactory(mockCruiseManagerFactory); var server = new BuildServer("http://somethingOrOther", BuildServerTransport.Extension, "New Extension", string.Empty); server.ExtensionName = null; mocks.ReplayAll(); Assert.That(delegate { factory.Create(server); }, Throws.TypeOf<ArgumentOutOfRangeException>().With.Property("ParamName").EqualTo("name")); }
public void Setup() { var settings = new Settings() { Project = String.Empty, Username = String.Empty, Password = String.Empty, Server = "https://builds.apache.org/" }; var buildServer = new BuildServer(settings.Server); Manager = new JenkinsProjectManager(new WebRequestFactory(), new JenkinsApiFactory()); Manager.Initialize(buildServer, "Hadoop-1-win", settings); }
public ISingleServerMonitor[] GetServerMonitors() { BuildServer[] buildServers = GetUniqueBuildServerList(); ISingleServerMonitor[] serverMonitors = new ISingleServerMonitor[buildServers.Length]; for (int i = 0; i < buildServers.Length; i++) { BuildServer buildServer = buildServers[i]; ICruiseServerManager serverManager = cruiseServerManagerFactory.Create(buildServer); serverManagersList[buildServer] = serverManager; serverMonitors[i] = new ServerMonitor(serverManager); } return(serverMonitors); }
public void WhenRequestingACruiseProjectManagerWithAnExtensionProtocolValidExtension() { var server = new BuildServer("http://somethingOrOther", BuildServerTransport.Extension, "ThoughtWorks.CruiseControl.UnitTests.CCTrayLib.Monitoring.ExtensionProtocolStub,ThoughtWorks.CruiseControl.UnitTests",string.Empty); var mockCruiseManagerFactory = mocks.StrictMock<ICruiseServerClientFactory>(); var factory = new CruiseProjectManagerFactory(mockCruiseManagerFactory); var serverManagers = new Dictionary<BuildServer, ICruiseServerManager>(); mocks.ReplayAll(); var manager = factory.Create(new CCTrayProject(server, ProjectName), serverManagers); Assert.AreEqual(ProjectName, manager.ProjectName); mocks.VerifyAll(); }
/// <summary> /// Construct a unique list of the build servers based on the projects configured in CCTray. /// </summary> /// <returns></returns> public BuildServer[] GetUniqueBuildServerList() { ArrayList buildServerList = new ArrayList(); for (int i = 0; i < Projects.Length; i++) { BuildServer buildServer = Projects[i].BuildServer; if (!buildServerList.Contains(buildServer)) { buildServerList.Add(buildServer); } } return((BuildServer[])buildServerList.ToArray(typeof(BuildServer))); }
public bool Configure(IWin32Window owner) { var config = new Configuration(); if(Configuration != null) config.BaseUrl = Configuration.Url; config.ShowDialog(owner); if (config.DialogResult == DialogResult.OK) { Configuration = new BuildServer(FormatBaseUrl(config.BaseUrl), BuildServerTransport.Extension, DisplayName, string.Empty); } return true; }
public ConfigureServer(BuildServer server) { InitializeComponent(); this.server = server; Text = "Configure server: " + server.DisplayName; LoadModes(); if (server.SecurityType != null) { chkIsSecure.Checked = true; for (int loop = 0; loop < cmbAuthMode.Items.Count; loop++) { ExtensionDetails details = (ExtensionDetails)cmbAuthMode.Items[loop]; if (details.TypeName == server.SecurityType) cmbAuthMode.SelectedIndex = loop; } } }
public void WhenRequestingACruiseServerManagerWithATCPUrlAsksTheCruiseManagerFactory() { var serverAddress = @"tcp://1.2.3.4"; var server = new BuildServer(serverAddress); var mockCruiseManagerFactory = mocks.StrictMock<ICruiseServerClientFactory>(); var factory = new CruiseServerManagerFactory(mockCruiseManagerFactory); var client = mocks.DynamicMock<CruiseServerClientBase>(); Expect.Call(mockCruiseManagerFactory.GenerateRemotingClient(serverAddress, new ClientStartUpSettings())) .Constraints(new Equal(serverAddress), new Anything()) .Return(client); mocks.ReplayAll(); var manager = factory.Create(server); Assert.AreEqual(server.Url, manager.Configuration.Url); Assert.AreEqual(typeof (CachingCruiseServerManager), manager.GetType()); mocks.VerifyAll(); }
public void WhenRequestingACruiseServerManagerWithAnHttpUrlConstructsANewHttpServerManagerDecoratedWithACachingServerManager() { var mockCruiseManagerFactory = mocks.StrictMock<ICruiseServerClientFactory>(); var factory = new CruiseServerManagerFactory(mockCruiseManagerFactory); var serverAddress = "http://somethingOrOther"; var server = new BuildServer(serverAddress); var client = mocks.DynamicMock<CruiseServerClientBase>(); Expect.Call(mockCruiseManagerFactory.GenerateHttpClient(serverAddress, new ClientStartUpSettings())) .Constraints(new Equal(serverAddress), new Anything()) .Return(client); mocks.ReplayAll(); var manager = factory.Create(server); Assert.AreEqual(server.Url, manager.Configuration.Url); Assert.AreEqual(typeof (CachingCruiseServerManager), manager.GetType()); mocks.VerifyAll(); }
public ICruiseServerManager Create(BuildServer buildServer) { switch (buildServer.Transport) { case BuildServerTransport.Remoting: { var manager = GenerateRemotingClient(buildServer); return new CachingCruiseServerManager(new RemotingCruiseServerManager(manager, buildServer)); } case BuildServerTransport.Extension: ITransportExtension extensionInstance = ExtensionHelpers.RetrieveExtension(buildServer.ExtensionName); extensionInstance.Settings = buildServer.ExtensionSettings; extensionInstance.Configuration = buildServer; return extensionInstance.RetrieveServerManager(); default: { var manager = GenerateHttpClient(buildServer); return new CachingCruiseServerManager( new HttpCruiseServerManager(manager, buildServer)); } } }
public void WhenRequestingACruiseProjectManagerWithAnHttpUrlConstructsANewDashboardCruiseProjectManager() { var serverAddress = "http://somethingOrOther"; var server = new BuildServer(serverAddress); var client = mocks.DynamicMock<CruiseServerClientBase>(); var clientFactory = mocks.StrictMock<ICruiseServerClientFactory>(); Expect.Call(clientFactory.GenerateHttpClient(serverAddress, new ClientStartUpSettings())) .Constraints(new Equal(serverAddress), new Anything()) .Return(client); var factory = new CruiseProjectManagerFactory(clientFactory); var serverManagers = new Dictionary<BuildServer, ICruiseServerManager>(); serverManagers[server] = new HttpCruiseServerManager(client, server); mocks.ReplayAll(); var manager = factory.Create(new CCTrayProject(server, ProjectName), serverManagers); Assert.AreEqual(ProjectName, manager.ProjectName); Assert.AreEqual(typeof(HttpCruiseProjectManager), manager.GetType()); mocks.VerifyAll(); }
private void RetrieveListOfProjects(BuildServer server) { Cursor.Current = Cursors.WaitCursor; try { lbProject.Items.Clear(); CCTrayProject[] projectList = cruiseProjectManagerFactory.GetProjectList(server, false); foreach (CCTrayProject project in projectList) { if (! IsProjectAlreadyAdded(project)) lbProject.Items.Add(project.ProjectName); } } catch (Exception ex) { MessageBox.Show(this, "Unable to connect to server " + server.DisplayName + ": " + ex.Message, "Error"); } finally { Cursor.Current = Cursors.Default; } }
public void GetProjectListWithAnExtensionProtocolValidExtension() { var server = new BuildServer("http://somethingOrOther", BuildServerTransport.Extension, "ThoughtWorks.CruiseControl.UnitTests.CCTrayLib.Monitoring.ExtensionProtocolStub,ThoughtWorks.CruiseControl.UnitTests",string.Empty); var mockCruiseManagerFactory = mocks.StrictMock<ICruiseServerClientFactory>(); var factory = new CruiseProjectManagerFactory(mockCruiseManagerFactory); mocks.ReplayAll(); CCTrayProject[] projectList = factory.GetProjectList(server, false); Assert.AreNotEqual(0, projectList.Length); mocks.VerifyAll(); }
public CCTrayProject() { buildServer = new BuildServer(); showProject = true; }
public CCTrayProject(BuildServer buildServer, string projectName) { this.buildServer = buildServer; this.projectName = projectName; showProject = true; }
public CCTrayProject[] GetProjectList(BuildServer server) { var manager = (IJenkinsServerManager)RetrieveServerManager(); manager.SetConfiguration(server); // If we are getting the project list, then we should reset the ServerManager's project list // It will be reset when we return to the list manager.ProjectsAndCurrentStatus.Clear(); return manager.GetProjectList(); }
public bool Configure(IWin32Window owner) { using (var form = ConfigurationFormFactory.Create()) { if (form.ShowDialog(owner) == DialogResult.OK) { var server = form.GetServer(); Configuration = new BuildServer(server); var settings = new Settings() { Project = String.Empty, Server = server, Username = form.GetUsername(), Password = form.GetPassword() }; Settings = settings.ToString(); //We will need to initialize the server manager again if their information has changed JenkinsServerManagerFactory.IsServerManagerInitialized = false; return true; } return false; } }
public void TestSetConfiguration() { var buildServer = new BuildServer("http://test.com"); Manager.SetConfiguration(buildServer); Assert.AreEqual(Manager.Configuration.Url, "http://test.com"); }
public void TestLoginAndLogout() { var settings = new Settings() { Project = String.Empty, Username = "******", Password = "******", Server = "https://builds.apache.org/" }; var buildServer = new BuildServer(settings.Server); Manager.Initialize(buildServer, String.Empty, settings); Manager.Login(); Assert.IsFalse(String.IsNullOrEmpty(Manager.AuthorizationInformation)); Manager.Logout(); Assert.IsTrue(String.IsNullOrEmpty(Manager.AuthorizationInformation)); }
public static bool Configure(IWin32Window parent, BuildServer server) { ConfigureServer configureDialog = new ConfigureServer(server); bool hasChanged = (configureDialog.ShowDialog(parent) == DialogResult.OK); return hasChanged; }
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; }
private void ValidateConnection(BuildServer server) { cruiseProjectManagerFactory.GetProjectList(server, true); }
private void btnOK_Click(object sender, EventArgs e) { buildServer = null; txtFeedback.Visible = true; txtFeedback.Text = "Validating..."; Refresh(); try { buildServer = ConstructBuildServerFromSelectedOptions(); ValidateConnection(buildServer); DialogResult = DialogResult.OK; Hide(); } catch (Exception ex) { txtFeedback.Text = "Failed to connect to server: " + ex.Message; } }