public void InitialiseRequestWithSessionSetsTheCorrectValues() { string sessionToken = "the session"; DateTime now = DateTime.Now; BuildRequest request = new BuildRequest(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() { BuildRequest request = new BuildRequest(); string actual = request.ToString(); string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture,"<buildMessage 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); }
public void GetLogCompressesData() { // Initialise the mocks var mocks = new MockRepository(); var data = "This is some test - line 1, line 2, line 3 - this is some test data"; // Perform the tests var server = InitialiseServer(mocks, testBuildName, data); var request = new BuildRequest(null, testProjectName); request.BuildName = testBuildName; request.CompressData = true; var response = server.GetLog(request); // Verify the results mocks.VerifyAll(); Assert.AreEqual(ResponseResult.Success, response.Result); Assert.AreNotEqual(data, response.Data); }
public void ToStringSerialisesAllValues() { BuildRequest request = new BuildRequest(); request.Identifier = "identifier"; request.ServerName = "serverName"; request.SessionToken = "sessionToken"; request.SourceName = "sourceName"; request.Timestamp = DateTime.Now; request.BuildName = "Build#1"; string actual = request.ToString(); string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture,"<buildMessage 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}\" build=\"Build#1\" />", request.Identifier, request.ServerName, request.SourceName, request.SessionToken, request.Timestamp); Assert.AreEqual(expected, actual); }
/// <summary> /// Returns the build log contents for requested project and build name /// </summary> /// <param name="projectName">Name of the project.</param> /// <param name="buildName">Name of the build.</param> /// <param name="compress">If set to <c>true</c> the log will be compressed.</param> /// <returns>The log file for the build.</returns> public override string GetLog(string projectName, string buildName, bool compress) { if (string.IsNullOrEmpty(projectName)) throw new ArgumentNullException("projectName"); BuildRequest request = new BuildRequest(SessionToken, projectName); request.BuildName = buildName; request.ServerName = TargetServer; request.CompressData = compress; DataResponse resp = ValidateResponse( connection.SendMessage("GetLog", request)) as DataResponse; return resp.Data; }
/// <summary> /// Gets the final status for a build. /// </summary> /// <param name="request">The request.</param> /// <returns>The <see cref="SnapshotResponse"/> for the build.</returns> public virtual StatusSnapshotResponse GetFinalBuildStatus(BuildRequest request) { return cruiseServer.GetFinalBuildStatus(request); }
/// <summary> /// Returns the build log contents for requested project and build name /// </summary> public virtual DataResponse GetLog(BuildRequest request) { return cruiseServer.GetLog(request); }
/// <summary> /// Returns the build log contents for requested project and build name /// </summary> public string GetLog(string projectName, string buildName) { BuildRequest request = new BuildRequest(null, projectName); request.BuildName = buildName; DataResponse resp = cruiseServer.GetLog(request); ValidateResponse(resp); return resp.Data; }
/// <summary> /// Gets the final status for a build. /// </summary> /// <param name="request">The request.</param> /// <returns>The <see cref="SnapshotResponse"/> for the build.</returns> public virtual StatusSnapshotResponse GetFinalBuildStatus(BuildRequest request) { ItemStatus snapshot = null; var response = new StatusSnapshotResponse(RunProjectRequest( request, SecurityPermission.ViewProject, SecurityEvent.GetFinalBuildStatus, (req, res) => { var project = this.GetIntegrator(req.ProjectName).Project; snapshot = project.RetrieveBuildFinalStatus(request.BuildName); })); if (response.Result == ResponseResult.Success) { response.Snapshot = snapshot as ProjectStatusSnapshot; if (response.Snapshot == null) { response.Result = ResponseResult.Warning; response.ErrorMessages.Add( new ErrorMessage("Build status does not exist")); } } return response; }
/// <summary> /// Returns the build log contents for requested project and build name /// </summary> public virtual DataResponse GetLog(BuildRequest request) { string data = null; DataResponse response = new DataResponse(RunProjectRequest(request, SecurityPermission.ViewProject, null, delegate { data = this.RetrieveLogData(request.ProjectName, request.BuildName, request.CompressData); })); response.Data = data; // Perform a garbage collection to reduce the amount of memory held GC.Collect(); return response; }
/// <summary> /// Gets the final build status. /// </summary> /// <param name="projectName">Name of the project.</param> /// <param name="buildName">Name of the build.</param> /// <returns>The final project status for the build.</returns> public override ProjectStatusSnapshot GetFinalBuildStatus(string projectName, string buildName) { if (string.IsNullOrEmpty(projectName)) { throw new ArgumentNullException("projectName"); } if (string.IsNullOrEmpty(buildName)) { throw new ArgumentNullException("buildName"); } var request = new BuildRequest(SessionToken, projectName); request.BuildName = buildName; request.ServerName = TargetServer; var resp = ValidateResponse( connection.SendMessage("GetFinalBuildStatus", request)) as StatusSnapshotResponse; return resp.Snapshot; }
public void GetFinalBuildStatusReturnsStatus() { var securityManagerMock = this.InitialiaseSecurityManagerMock(true, true); var request = new BuildRequest("1234", "Project 1") { BuildName = "Build #1" }; var dataStoreMock = this.mocks.StrictMock<IDataStore>(); SetupResult.For(dataStoreMock.LoadProjectSnapshot(project1, "Build #1")) .Return(new ProjectStatusSnapshot { Name = "Project 1" }); this.mocks.ReplayAll(); project1.DataStore = dataStoreMock; server.SecurityManager = securityManagerMock; var actual = server.GetFinalBuildStatus(request); this.mocks.VerifyAll(); Assert.AreEqual(ResponseResult.Success, actual.Result); Assert.AreEqual("Project 1", actual.Snapshot.Name); }
public void GetFinalBuildStatusReturnsWarningIfNoStatus() { var securityManagerMock = this.InitialiaseSecurityManagerMock(true, true); var request = new BuildRequest("1234", "Project 1") { BuildName = "Build #1" }; this.mocks.ReplayAll(); server.SecurityManager = securityManagerMock; var actual = server.GetFinalBuildStatus(request); this.mocks.VerifyAll(); Assert.AreEqual(ResponseResult.Warning, actual.Result); Assert.AreEqual("Build status does not exist", actual.ErrorMessages[0].Message); }
public void GetFinalBuildStatusRequiresViewProjectPermission() { var securityManagerMock = this.InitialiaseSecurityManagerMock(false, true); var request = new BuildRequest("1234", "Project 1") { BuildName = "Build #1" }; this.mocks.ReplayAll(); server.SecurityManager = securityManagerMock; var actual = server.GetFinalBuildStatus(request); this.mocks.VerifyAll(); Assert.AreEqual(ResponseResult.Failure, actual.Result); Assert.AreEqual("Permission to execute 'ViewProject' has been denied.", actual.ErrorMessages[0].Message); }
public void GetSetAllPropertiesWorks() { BuildRequest request = new BuildRequest(); request.BuildName = "Build#1"; Assert.AreEqual("Build#1", request.BuildName, "BuildName fails the get/set test"); }
public void GetFinalBuildStatusPassesOnCall() { var mocks = new MockRepository(); var innerServer = mocks.DynamicMock<ICruiseServer>(); var request = new BuildRequest(); var response = new StatusSnapshotResponse(); Expect.Call(innerServer.GetFinalBuildStatus(request)) .Return(response); mocks.ReplayAll(); var configFile = this.CreateTemporaryConfigurationFile(); using (var server = new RemoteCruiseServer(innerServer, configFile, true)) { var actual = server.GetFinalBuildStatus(request); Assert.AreSame(response, actual); } mocks.VerifyAll(); }