/// <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 ToStringSerialisesDefaultValues() { DataListResponse response = new DataListResponse(); string actual = response.ToString(); string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture, "<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); XDocument.Parse(actual).Should().BeEquivalentTo(XDocument.Parse(expected)); }
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(System.Globalization.CultureInfo.CurrentCulture, "<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]); XDocument.Parse(actual).Should().BeEquivalentTo(XDocument.Parse(expected)); }