CommandLineFixture.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using NUnit.Framework;
  6. namespace CassiniDev.Tests
  7. {
  8. [TestFixture]
  9. public class CommandLineFixture
  10. {
  11. [Test]
  12. public void Empty()
  13. {
  14. CommandLineArguments args = new CommandLineArguments();
  15. string[] cmdLine = new string[]
  16. {
  17. //@"/path:c:\windows"
  18. };
  19. if (!CommandLineParser.ParseArgumentsWithUsage(cmdLine, args))
  20. {
  21. Assert.Fail();
  22. }
  23. Assert.AreEqual(false, args.AddHost);
  24. Assert.AreEqual(null, args.ApplicationPath);
  25. Assert.AreEqual(null, args.HostName);
  26. Assert.AreEqual(null, args.IPAddress);
  27. Assert.AreEqual(IPMode.Loopback, args.IPMode);
  28. Assert.AreEqual(false, args.IPv6);
  29. Assert.AreEqual(false, args.Nodirlist);
  30. Assert.AreEqual(false, args.Ntlm);
  31. Assert.AreEqual(0, args.Port);
  32. Assert.AreEqual(PortMode.FirstAvailable, args.PortMode);
  33. Assert.AreEqual(65535, args.PortRangeEnd);
  34. Assert.AreEqual(32768, args.PortRangeStart);
  35. Assert.AreEqual(RunMode.Server, args.RunMode);
  36. Assert.AreEqual(false, args.Silent);
  37. Assert.AreEqual(0, args.TimeOut);
  38. Assert.AreEqual("/", args.VirtualPath);
  39. Assert.AreEqual(0, args.WaitForPort);
  40. Assert.AreEqual("/v:\"/\"", args.ToString());
  41. }
  42. [Test]
  43. public void VisualStudioCmdLine()
  44. {
  45. CommandLineArguments args = new CommandLineArguments();
  46. string[] cmdLine = new string[]
  47. {
  48. @"/port:32768",
  49. "/path:c:\\temp",
  50. "/vpath:/myapp",
  51. @"/ntlm",
  52. @"/silent",
  53. @"/nodirlist"
  54. };
  55. if (!CommandLineParser.ParseArgumentsWithUsage(cmdLine, args))
  56. {
  57. Assert.Fail();
  58. }
  59. Assert.AreEqual(false, args.AddHost);
  60. Assert.AreEqual("c:\\temp", args.ApplicationPath);
  61. Assert.AreEqual(null, args.HostName);
  62. Assert.AreEqual(null, args.IPAddress);
  63. Assert.AreEqual(IPMode.Loopback, args.IPMode);
  64. Assert.AreEqual(false, args.IPv6);
  65. Assert.AreEqual(true, args.Nodirlist);
  66. Assert.AreEqual(true, args.Ntlm);
  67. Assert.AreEqual(32768, args.Port);
  68. Assert.AreEqual(PortMode.FirstAvailable, args.PortMode);
  69. Assert.AreEqual(65535, args.PortRangeEnd);
  70. Assert.AreEqual(32768, args.PortRangeStart);
  71. Assert.AreEqual(RunMode.Server, args.RunMode);
  72. Assert.AreEqual(true, args.Silent);
  73. Assert.AreEqual(0, args.TimeOut);
  74. Assert.AreEqual("/myapp", args.VirtualPath);
  75. Assert.AreEqual(0, args.WaitForPort);
  76. Assert.AreEqual("/a:\"c:\\temp\" /v:\"/myapp\" /p:32768 /ntlm /silent /nodirlist", args.ToString());
  77. }
  78. [Test]
  79. public void QuotedValuesInToString()
  80. {
  81. CommandLineArguments args = new CommandLineArguments();
  82. string[] cmdLine = new string[]
  83. {
  84. @"/port:32768",
  85. @"/path:c:\temp foo",
  86. @"/vpath:/myapp with spaces",
  87. @"/ntlm",
  88. @"/silent",
  89. @"/nodirlist"
  90. };
  91. if (!CommandLineParser.ParseArgumentsWithUsage(cmdLine, args))
  92. {
  93. Assert.Fail();
  94. }
  95. Assert.AreEqual(false, args.AddHost);
  96. Assert.AreEqual(@"c:\temp foo", args.ApplicationPath);
  97. Assert.AreEqual(null, args.HostName);
  98. Assert.AreEqual(null, args.IPAddress);
  99. Assert.AreEqual(IPMode.Loopback, args.IPMode);
  100. Assert.AreEqual(false, args.IPv6);
  101. Assert.AreEqual(true, args.Nodirlist);
  102. Assert.AreEqual(true, args.Ntlm);
  103. Assert.AreEqual(32768, args.Port);
  104. Assert.AreEqual(PortMode.FirstAvailable, args.PortMode);
  105. Assert.AreEqual(65535, args.PortRangeEnd);
  106. Assert.AreEqual(32768, args.PortRangeStart);
  107. Assert.AreEqual(RunMode.Server, args.RunMode);
  108. Assert.AreEqual(true, args.Silent);
  109. Assert.AreEqual(0, args.TimeOut);
  110. Assert.AreEqual("/myapp with spaces", args.VirtualPath);
  111. Assert.AreEqual(0, args.WaitForPort);
  112. Assert.AreEqual("/a:\"c:\\temp foo\" /v:\"/myapp with spaces\" /p:32768 /ntlm /silent /nodirlist", args.ToString());
  113. }
  114. }
  115. }