1
0

StringTokenizerTests.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using Avalonia.Utilities;
  3. using Xunit;
  4. #pragma warning disable CS0618 // Type or member is obsolete
  5. namespace Avalonia.Base.UnitTests.Utilities
  6. {
  7. public class StringTokenizerTests
  8. {
  9. [Fact]
  10. public void ReadInt32_Reads_Values()
  11. {
  12. var target = new StringTokenizer("123,456");
  13. Assert.Equal(123, target.ReadInt32());
  14. Assert.Equal(456, target.ReadInt32());
  15. Assert.Throws<FormatException>(() => target.ReadInt32());
  16. }
  17. [Fact]
  18. public void ReadDouble_Reads_Values()
  19. {
  20. var target = new StringTokenizer("12.3,45.6");
  21. Assert.Equal(12.3, target.ReadDouble());
  22. Assert.Equal(45.6, target.ReadDouble());
  23. Assert.Throws<FormatException>(() => target.ReadDouble());
  24. }
  25. [Fact]
  26. public void TryReadInt32_Reads_Values()
  27. {
  28. var target = new StringTokenizer("123,456");
  29. Assert.True(target.TryReadInt32(out var value));
  30. Assert.Equal(123, value);
  31. Assert.True(target.TryReadInt32(out value));
  32. Assert.Equal(456, value);
  33. Assert.False(target.TryReadInt32(out value));
  34. }
  35. [Fact]
  36. public void TryReadInt32_Doesnt_Throw()
  37. {
  38. var target = new StringTokenizer("abc");
  39. Assert.False(target.TryReadInt32(out var value));
  40. }
  41. [Fact]
  42. public void TryReadDouble_Reads_Values()
  43. {
  44. var target = new StringTokenizer("12.3,45.6");
  45. Assert.True(target.TryReadDouble(out var value));
  46. Assert.Equal(12.3, value);
  47. Assert.True(target.TryReadDouble(out value));
  48. Assert.Equal(45.6, value);
  49. Assert.False(target.TryReadDouble(out value));
  50. }
  51. [Fact]
  52. public void TryReadDouble_Doesnt_Throw()
  53. {
  54. var target = new StringTokenizer("abc");
  55. Assert.False(target.TryReadDouble(out var value));
  56. }
  57. [Fact]
  58. public void ReadSpan_And_ReadString_Reads_Same()
  59. {
  60. var target1 = new StringTokenizer("abc,def");
  61. var target2 = new StringTokenizer("abc,def");
  62. Assert.Equal(target1.ReadString(), target2.ReadSpan().ToString());
  63. Assert.True(target1.ReadSpan().SequenceEqual(target2.ReadString()));
  64. }
  65. }
  66. }