public void InitialiseNewResponseSetsTheDefaultValues()
 {
     DateTime now = DateTime.Now;
     DataListResponse response = new DataListResponse();
     Assert.AreEqual(ResponseResult.Unknown, response.Result, "Result wasn't set to failure");
     Assert.IsTrue((now <= response.Timestamp), "Timestamp was not set");
 }
 public void InitialiseResponseFromRequestSetsTheDefaultValues()
 {
     DateTime now = DateTime.Now;
     ServerRequest request = new ServerRequest();
     DataListResponse response = new DataListResponse(request);
     Assert.AreEqual(ResponseResult.Unknown, response.Result, "Result wasn't set to failure");
     Assert.AreEqual(request.Identifier, response.RequestIdentifier, "RequestIdentifier wasn't set to the identifier of the request");
     Assert.IsTrue((now <= response.Timestamp), "Timestamp was not set");
 }
 public void ToStringSerialisesDefaultValues()
 {
     DataListResponse response = new DataListResponse();
     string actual = response.ToString();
     string expected = string.Format("<dataListResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
         "timestamp=\"{1:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" result=\"{0}\" />",
         response.Result,
         response.Timestamp);
     Assert.AreEqual(expected, actual);
 }
 public void InitialiseResponseFromResponseSetsTheDefaultValues()
 {
     DateTime now = DateTime.Now;
     DataListResponse response1 = new DataListResponse();
     response1.Result = ResponseResult.Success;
     response1.RequestIdentifier = "original id";
     response1.Timestamp = DateTime.Now.AddMinutes(-1);
     DataListResponse response2 = new DataListResponse(response1);
     Assert.AreEqual(ResponseResult.Success, response2.Result, "Result wasn't set to failure");
     Assert.AreEqual("original id", response2.RequestIdentifier, "RequestIdentifier wasn't set to the identifier of the request");
     Assert.IsTrue((response1.Timestamp == response2.Timestamp), "Timestamp was not set");
 }
 public void ToStringSerialisesAllValues()
 {
     DataListResponse response = new DataListResponse();
     response.ErrorMessages.Add(new ErrorMessage("Error 1"));
     response.ErrorMessages.Add(new ErrorMessage("Error 2"));
     response.RequestIdentifier = "request";
     response.Result = ResponseResult.Success;
     response.Timestamp = DateTime.Now;
     response.Data.Add("new data");
     string actual = response.ToString();
     string expected = string.Format("<dataListResponse 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}\" result=\"{1}\">" +
         "<error>Error 1</error>" +
         "<error>Error 2</error>" +
         "<data>{3}</data>" +
         "</dataListResponse>",
         response.RequestIdentifier,
         response.Result,
         response.Timestamp,
         response.Data[0]);
     Assert.AreEqual(expected, actual);
 }
        /// <summary>
        /// Processes a message for a server.
        /// </summary>
        /// <param name="serverSpecifer">The server the request is for.</param>
        /// <param name="action">The action to process.</param>
        /// <param name="message">The message containing the details of the request.</param>
        /// <returns>The response to the request.</returns>
        public string ProcessMessage(IServerSpecifier serverSpecifer, string action, string message)
        {
            // Normally this method just passes the request onto the remote server, but some messages
            // need to be intercepted and handled at the web dashboard level
            switch (action)
            {
                case "ListServers":
                    // Generate the list of available servers - this is from the dashboard level
                    var serverList = new DataListResponse
                    {
                        Data = new List<string>()
                    };
                    foreach (var serverLocation in this.ServerLocations)
                    {
                        serverList.Data.Add(serverLocation.Name);
                    }

                    // Return the XML of the list
                    return serverList.ToString();

                default:
                    // Pass the request on
                    var client = this.GetCruiseManager(serverSpecifer, null);
                    var response = client.ProcessMessage(action, message);
                    return response;
            }
        }
 public void GetMostRecentBuildNames()
 {
     DataListResponse response = new DataListResponse();
     response.Result = ResponseResult.Success;
     CruiseServerClient client = new CruiseServerClient(
         new ServerStub("GetMostRecentBuildNames", typeof(BuildListRequest), "Project #1", response));
     client.GetMostRecentBuildNames("Project #1", 5);
 }
 /// <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 names of the buildCount most recent builds for the specified project, sorted s.t. the newest build is first in the array
 /// </summary>
 public virtual DataListResponse GetMostRecentBuildNames(BuildListRequest request)
 {
     string[] data = { };
     DataListResponse response = new DataListResponse(RunProjectRequest(request,
         SecurityPermission.ViewProject,
         null,
         delegate
         {
             data = GetIntegrator(request.ProjectName)
                 .IntegrationRepository
                 .GetMostRecentBuildNames(request.NumberOfBuilds);
         }));
     if (data != null) response.Data.AddRange(data);
     return response;
 }