|
|
@@ -14,28 +14,45 @@ namespace winswTests.Util
|
|
|
public string Id { get; set; }
|
|
|
public string Description { get; set; }
|
|
|
public string Executable { get; set; }
|
|
|
+ public bool PrintXMLVersion { get; set; }
|
|
|
+ public string XMLComment { get; set; }
|
|
|
|
|
|
private List<String> configEntries;
|
|
|
|
|
|
+ // TODO: Switch to the initializer?
|
|
|
private ConfigXmlBuilder()
|
|
|
{
|
|
|
configEntries = new List<string>();
|
|
|
}
|
|
|
|
|
|
public static ConfigXmlBuilder create(string id = null, string name = null,
|
|
|
- string description = null, string executable = null)
|
|
|
+ string description = null, string executable = null, bool printXMLVersion = true,
|
|
|
+ string xmlComment = "")
|
|
|
{
|
|
|
var config = new ConfigXmlBuilder();
|
|
|
config.Id = id ?? "myapp";
|
|
|
config.Name = name ?? "MyApp Service";
|
|
|
config.Description = description ?? "MyApp Service (powered by WinSW)";
|
|
|
- config.Executable = executable ?? "%BASE%\\myExecutable.exe";
|
|
|
+ config.Executable = executable ?? "%BASE%\\myExecutable.exe";
|
|
|
+ config.PrintXMLVersion = printXMLVersion;
|
|
|
+ config.XMLComment = (xmlComment != null && xmlComment.Length == 0)
|
|
|
+ ? "Just a sample configuration file generated by the test suite"
|
|
|
+ : xmlComment;
|
|
|
return config;
|
|
|
}
|
|
|
|
|
|
public string ToXMLString(bool dumpConfig = false)
|
|
|
{
|
|
|
StringBuilder str = new StringBuilder();
|
|
|
+ if (PrintXMLVersion)
|
|
|
+ {
|
|
|
+ // TODO: The encoding is generally wrong
|
|
|
+ str.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
|
|
|
+ }
|
|
|
+ if (XMLComment != null)
|
|
|
+ {
|
|
|
+ str.AppendFormat("<!--{0}-->\n", XMLComment);
|
|
|
+ }
|
|
|
str.Append("<service>\n");
|
|
|
str.AppendFormat(" <id>{0}</id>\n", Id);
|
|
|
str.AppendFormat(" <name>{0}</name>\n", Name);
|