PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/src/tests/Core/EnumeratorsFixture.cs

https://github.com/sflanker/commandline
C# | 98 lines | 57 code | 15 blank | 26 comment | 0 complexity | 820d601aa7e978ecd1eb5f808847c453 MD5 | raw file
Possible License(s): Apache-2.0
  1. #region License
  2. //
  3. // Command Line Library: EnumeratorsFixture.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 Xunit;
  31. using FluentAssertions;
  32. using CommandLine.Core;
  33. #endregion
  34. namespace CommandLine.Tests
  35. {
  36. public class EnumeratorsFixture
  37. {
  38. [Fact]
  39. public void String_iteration()
  40. {
  41. const string valueOne = "one";
  42. const string valueTwo = "two";
  43. const string valueThree = "three";
  44. string[] values = { valueOne, valueTwo, valueThree };
  45. IArgumentEnumerator e = new StringArrayEnumerator(values);
  46. e.MoveNext();
  47. e.Current.Should().Be(valueOne);
  48. e.Next.Should().Be(valueTwo);
  49. e.IsLast.Should().BeFalse();
  50. e.MoveNext();
  51. e.Current.Should().Be(valueTwo);
  52. e.Next.Should().Be(valueThree);
  53. e.IsLast.Should().BeFalse();
  54. e.MoveNext();
  55. e.Current.Should().Be(valueThree);
  56. e.Next.Should().BeNull();
  57. e.IsLast.Should().BeTrue();
  58. }
  59. [Fact]
  60. public void Char_iteration()
  61. {
  62. IArgumentEnumerator e = new OneCharStringEnumerator("abcd");
  63. e.MoveNext();
  64. e.Current.Should().Be("a");
  65. e.Next.Should().Be("b");
  66. e.GetRemainingFromNext().Should().Be("bcd");
  67. e.IsLast.Should().BeFalse();
  68. e.MoveNext();
  69. e.Current.Should().Be("b");
  70. e.Next.Should().Be("c");
  71. e.GetRemainingFromNext().Should().Be("cd");
  72. e.IsLast.Should().BeFalse();
  73. e.MoveNext();
  74. e.Current.Should().Be("c");
  75. e.Next.Should().Be("d");
  76. e.GetRemainingFromNext().Should().Be("d");
  77. e.IsLast.Should().BeFalse();
  78. e.MoveNext();
  79. e.Current.Should().Be("d");
  80. e.IsLast.Should().BeTrue();
  81. }
  82. }
  83. }