PageRenderTime 53ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/src/tests/Parser/SingletonFixture.cs

https://github.com/sflanker/commandline
C# | 66 lines | 35 code | 5 blank | 26 comment | 0 complexity | a260417acc5c88a629e3a33f8dab28d6 MD5 | raw file
Possible License(s): Apache-2.0
  1. #region License
  2. //
  3. // Command Line Library: SingletonFixture.cs
  4. //
  5. // Author:
  6. // Giacomo Stelluti Scala (gsscoder@gmail.com)
  7. //
  8. // Copyright (C) 2005 - 2013 Giacomo Stelluti Scala
  9. //
  10. // Permission is hereby granted, free of charge, to any person obtaining a copy
  11. // of this software and associated documentation files (the "Software"), to deal
  12. // in the Software without restriction, including without limitation the rights
  13. // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  14. // copies of the Software, and to permit persons to whom the Software is
  15. // furnished to do so, subject to the following conditions:
  16. //
  17. // The above copyright notice and this permission notice shall be included in
  18. // all copies or substantial portions of the Software.
  19. //
  20. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  21. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  22. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  23. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  24. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  25. // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  26. // THE SOFTWARE.
  27. //
  28. #endregion
  29. #region Using Directives
  30. using System;
  31. using System.IO;
  32. using Xunit;
  33. using FluentAssertions;
  34. using CommandLine.Tests.Mocks;
  35. #endregion
  36. namespace CommandLine.Tests
  37. {
  38. public class SingletonFixture
  39. {
  40. [Fact]
  41. public void Parse_string_integer_bool_options()
  42. {
  43. var options = new SimpleOptions();
  44. bool result = Parser.Default.ParseArguments(
  45. new string[] { "-s", "another string", "-i100", "--switch" }, options);
  46. result.Should().BeTrue();
  47. options.StringValue.Should().Be("another string");
  48. options.IntegerValue.Should().Be(100);
  49. options.BooleanValue.Should().BeTrue();
  50. Console.WriteLine(options);
  51. }
  52. [Fact]
  53. public void Default_doesnt_support_mutually_exclusive_options()
  54. {
  55. var options = new OptionsWithMultipleSet();
  56. bool result = Parser.Default.ParseArguments(
  57. new string[] { "-r1", "-g2", "-b3", "-h4", "-s5", "-v6" }, options);
  58. result.Should().BeTrue(); // enabling MutuallyExclusive option it would fails
  59. }
  60. }
  61. }