public void InitialiseRequestWithSessionSetsTheCorrectValues() { string sessionToken = "the session"; DateTime now = DateTime.Now; ProjectRequest request = new ProjectRequest(sessionToken); Assert.IsFalse(string.IsNullOrEmpty(request.Identifier), "Identifier was not set"); Assert.AreEqual(Environment.MachineName, request.SourceName, "Source name doesn't match the machine name"); Assert.AreEqual(sessionToken, request.SessionToken, "SessionToken doesn't match the input token"); Assert.IsTrue((now <= request.Timestamp), "Timestamp was not set"); }
public void ToStringSerialisesDefaultValues() { ProjectRequest request = new ProjectRequest(); string actual = request.ToString(); string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture,"<projectMessage xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "timestamp=\"{2:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" identifier=\"{0}\" source=\"{1}\" />", request.Identifier, request.SourceName, request.Timestamp); Assert.AreEqual(expected, actual); }
private void buildProject() { this._manager = new RemoteCruiseManagerFactory() .GetCruiseServerClient("tcp://localhost:21234/CruiseManager.rem"); this._project = new ProjectRequest("Edd", this.Name); this._manager.ForceBuild(this._project); this._request = new ServerRequest(this._project.SessionToken); // Write current status this.progress(String.Empty); IsRunning = false; Console.Write("\n\n"); }
public void ProcessMessageCorrectlyHandlesAnUnknownAction() { // Setup the messages ProjectRequest request = new ProjectRequest("123-45", "A test project"); // Initialises the mocks ICruiseServer server = mocks.DynamicMock<ICruiseServer>(); mocks.ReplayAll(); // Run the actual test var manager = new ThoughtWorks.CruiseControl.Core.CruiseServerClient(server); string responseText = manager.ProcessMessage("UnknownAction", request.ToString()); Response response = ConvertXmlToResponse(responseText); Assert.AreEqual(ResponseResult.Failure, response.Result, "Result is unexpected"); }
public void ProcessMessageCorrectlyHandlesAValidMessage() { // Setup the messages ProjectRequest request = new ProjectRequest("123-45", "A test project"); Response response = new Response(request); response.Result = ResponseResult.Success; // Initialises the mocks ICruiseServer server = mocks.DynamicMock<ICruiseServer>(); Expect.Call(server.ForceBuild(request)).Return(response); mocks.ReplayAll(); // Run the actual test var manager = new ThoughtWorks.CruiseControl.Core.CruiseServerClient(server); string responseText = manager.ProcessMessage("ForceBuild", request.ToString()); Assert.AreEqual(response.ToString(), responseText); mocks.VerifyAll(); }
public void ToStringSerialisesAllValues() { ProjectRequest request = new ProjectRequest(); request.Identifier = "identifier"; request.ProjectName = "projectName"; request.ServerName = "serverName"; request.SessionToken = "sessionToken"; request.SourceName = "sourceName"; request.Timestamp = DateTime.Now; string actual = request.ToString(); string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture,"<projectMessage xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "timestamp=\"{4:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" identifier=\"{0}\" server=\"{1}\" source=\"{2}\" session=\"{3}\" project=\"{5}\" />", request.Identifier, request.ServerName, request.SourceName, request.SessionToken, request.Timestamp, request.ProjectName); Assert.AreEqual(expected, actual); }
/// <summary> /// Forces a build for the named project. /// </summary> /// <param name="request">A <see cref="ProjectRequest"/> containing the request details.</param> /// <returns>A <see cref="Response"/> containing the results of the request.</returns> public Response ForceBuild(ProjectRequest request) { return cruiseServer.ForceBuild(request); }
/// <summary> /// Retrieves a list of packages for a project. /// </summary> public virtual ListPackagesResponse RetrievePackageList(ProjectRequest request) { return cruiseServer.RetrievePackageList(request); }
/// <summary> /// Lists the build parameters for a project. /// </summary> /// <param name="request">The project to retrieve the parameters for.</param> /// <returns>The list of parameters (if any).</returns> public BuildParametersResponse ListBuildParameters(ProjectRequest request) { return cruiseServer.ListBuildParameters(request); }
/// <summary> /// Gets the modification history document. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public virtual DataResponse GetModificationHistoryDocument(ProjectRequest request) { return cruiseServer.GetModificationHistoryDocument(request); }
/// <summary> /// Gets the artifact directory. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public virtual DataResponse GetArtifactDirectory(ProjectRequest request) { return cruiseServer.GetArtifactDirectory(request); }
/// <summary> /// Returns the names of all builds for the specified project, sorted s.t. the newest build is first in the array /// </summary> public virtual DataListResponse GetBuildNames(ProjectRequest request) { return cruiseServer.GetBuildNames(request); }
/// <summary> /// Gets the project. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public DataResponse GetProject(ProjectRequest request) { string data = null; DataResponse response = new DataResponse(RunProjectRequest(request, SecurityPermission.ViewConfiguration, null, delegate(ProjectRequest arg, Response resp) { Log.Info("Getting project - " + request.ProjectName); data = new NetReflectorProjectSerializer() .Serialize(configurationService.Load().Projects[arg.ProjectName]); })); response.Data = data; return response; }
/// <summary> /// Returns the names of all builds for the specified project, sorted s.t. the newest build is first in the array /// </summary> public DataListResponse GetBuildNames(ProjectRequest request) { List<string> data = new List<string>(); DataListResponse response = new DataListResponse(RunProjectRequest(request, SecurityPermission.ViewProject, null, delegate(ProjectRequest arg, Response resp) { data.AddRange(GetIntegrator(arg.ProjectName). IntegrationRepository. GetBuildNames()); })); response.Data = data; return response; }
/// <summary> /// Returns the name of the most recent build for the specified project /// </summary> public DataResponse GetLatestBuildName(ProjectRequest request) { string data = null; DataResponse response = new DataResponse(RunProjectRequest(request, SecurityPermission.ViewProject, null, delegate(ProjectRequest arg, Response resp) { data = GetIntegrator(arg.ProjectName).IntegrationRepository.GetLatestBuildName(); })); response.Data = data; return response; }
/// <summary> /// Waits for the project to exit. /// </summary> /// <param name="request"></param> /// <returns></returns> public virtual Response WaitForExit(ProjectRequest request) { return cruiseServer.WaitForExit(request); }
/// <summary> /// Returns the name of the most recent build for the specified project /// </summary> public virtual DataResponse GetLatestBuildName(ProjectRequest request) { return cruiseServer.GetLatestBuildName(request); }
/// <summary> /// Gets the external links. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public ExternalLinksListResponse GetExternalLinks(ProjectRequest request) { List<ExternalLink> data = new List<ExternalLink>(); ExternalLinksListResponse response = new ExternalLinksListResponse(RunProjectRequest(request, SecurityPermission.ViewProject, null, delegate(ProjectRequest arg, Response resp) { data.AddRange(LookupProject(arg.ProjectName).ExternalLinks); })); response.ExternalLinks = data; return response; }
/// <summary> /// Gets the external links. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public virtual ExternalLinksListResponse GetExternalLinks(ProjectRequest request) { return cruiseServer.GetExternalLinks(request); }
/// <summary> /// Gets the modification history document. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public DataResponse GetModificationHistoryDocument(ProjectRequest request) { string data = null; DataResponse response = new DataResponse(RunProjectRequest(request, SecurityPermission.ViewProject, null, delegate(ProjectRequest arg, Response resp) { data = GetIntegrator(arg.ProjectName).Project.ModificationHistory; })); response.Data = data; return response; }
/// <summary> /// Gets the statistics document. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public virtual DataResponse GetStatisticsDocument(ProjectRequest request) { return cruiseServer.GetStatisticsDocument(request); }
/// <summary> /// Gets the RSS feed. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public DataResponse GetRSSFeed(ProjectRequest request) { string data = null; DataResponse response = new DataResponse(RunProjectRequest(request, SecurityPermission.ViewProject, null, delegate(ProjectRequest arg, Response resp) { data = GetIntegrator(arg.ProjectName).Project.RSSFeed; })); response.Data = data; return response; }
/// <summary> /// Gets the RSS feed. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> /// <remarks></remarks> public virtual DataResponse GetRSSFeed(ProjectRequest request) { return cruiseServer.GetRSSFeed(request); }
/// <summary> /// Takes a status snapshot of a project. /// </summary> /// <param name="request"></param> /// <returns>The snapshot of the current status.</returns> public virtual StatusSnapshotResponse TakeStatusSnapshot(ProjectRequest request) { ProjectStatusSnapshot snapshot = null; StatusSnapshotResponse response = new StatusSnapshotResponse(RunProjectRequest(request, SecurityPermission.ViewProject, null, delegate { IProjectIntegrator integrator = GetIntegrator(request.ProjectName); if (integrator != null) { // First see if the project has its own associated generator if (integrator.Project is IStatusSnapshotGenerator) { snapshot = (integrator.Project as IStatusSnapshotGenerator).GenerateSnapshot() as ProjectStatusSnapshot; } else { // Otherwise generate an overview snapshot (details will not be available) ProjectStatus status = integrator.Project.CreateProjectStatus(integrator); snapshot = new ProjectStatusSnapshot(); snapshot.Name = integrator.Project.Name; if (status.Activity.IsBuilding()) { snapshot.Status = ItemBuildStatus.Running; } else if (status.Activity.IsPending()) { snapshot.Status = ItemBuildStatus.Pending; } else if (status.Activity.IsSleeping()) { switch (status.BuildStatus) { case IntegrationStatus.Success: snapshot.Status = ItemBuildStatus.CompletedSuccess; break; case IntegrationStatus.Exception: case IntegrationStatus.Failure: snapshot.Status = ItemBuildStatus.CompletedSuccess; break; } } } } else { throw new NoSuchProjectException(request.ProjectName); } })); response.Snapshot = snapshot; return response; }
/// <summary> /// Takes a status snapshot of a project. /// </summary> public virtual StatusSnapshotResponse TakeStatusSnapshot(ProjectRequest request) { return cruiseServer.TakeStatusSnapshot(request); }
/// <summary> /// Generate a project request. /// </summary> /// <param name="projectName"></param> /// <returns></returns> private ProjectRequest GenerateProjectRequest(string projectName) { ProjectRequest request = new ProjectRequest(); request.ProjectName = projectName; return request; }
/// <summary> /// Attempts to stop a project. /// </summary> /// <param name="request">A <see cref="ProjectRequest"/> containing the request details.</param> /// <returns>A <see cref="Response"/> containing the results of the request.</returns> public Response Stop(ProjectRequest request) { return cruiseServer.Stop(request); }
/// <summary> /// Aborts the build of the selected project. /// </summary> /// <param name="request">A <see cref="ProjectRequest"/> containing the request details.</param> /// <returns>A <see cref="Response"/> containing the results of the request.</returns> public Response AbortBuild(ProjectRequest request) { return cruiseServer.AbortBuild(request); }
/// <summary> /// Generates a project request. /// </summary> /// <param name="projectName">The name of the project to use.</param> /// <returns></returns> private ProjectRequest GenerateProjectRequest(string projectName) { if (string.IsNullOrEmpty(projectName)) throw new ArgumentNullException("projectName"); ProjectRequest request = new ProjectRequest(SessionToken, projectName); request.DisplayName = this.DisplayName; request.ServerName = TargetServer; return request; }
/// <summary> /// Cancel a pending project integration request from the integration queue. /// </summary> public Response CancelPendingRequest(ProjectRequest request) { return cruiseServer.CancelPendingRequest(request); }