StringTokenizerTests.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using Avalonia.Utilities;
  3. using Xunit;
  4. namespace Avalonia.Base.UnitTests.Utilities
  5. {
  6. public class StringTokenizerTests
  7. {
  8. [Fact]
  9. public void ReadInt32_Reads_Values()
  10. {
  11. var target = new StringTokenizer("123,456");
  12. Assert.Equal(123, target.ReadInt32());
  13. Assert.Equal(456, target.ReadInt32());
  14. Assert.Throws<FormatException>(() => target.ReadInt32());
  15. }
  16. [Fact]
  17. public void ReadDouble_Reads_Values()
  18. {
  19. var target = new StringTokenizer("12.3,45.6");
  20. Assert.Equal(12.3, target.ReadDouble());
  21. Assert.Equal(45.6, target.ReadDouble());
  22. Assert.Throws<FormatException>(() => target.ReadDouble());
  23. }
  24. [Fact]
  25. public void TryReadInt32_Reads_Values()
  26. {
  27. var target = new StringTokenizer("123,456");
  28. Assert.True(target.TryReadInt32(out var value));
  29. Assert.Equal(123, value);
  30. Assert.True(target.TryReadInt32(out value));
  31. Assert.Equal(456, value);
  32. Assert.False(target.TryReadInt32(out value));
  33. }
  34. [Fact]
  35. public void TryReadInt32_Doesnt_Throw()
  36. {
  37. var target = new StringTokenizer("abc");
  38. Assert.False(target.TryReadInt32(out var value));
  39. }
  40. [Fact]
  41. public void TryReadDouble_Reads_Values()
  42. {
  43. var target = new StringTokenizer("12.3,45.6");
  44. Assert.True(target.TryReadDouble(out var value));
  45. Assert.Equal(12.3, value);
  46. Assert.True(target.TryReadDouble(out value));
  47. Assert.Equal(45.6, value);
  48. Assert.False(target.TryReadDouble(out value));
  49. }
  50. [Fact]
  51. public void TryReadDouble_Doesnt_Throw()
  52. {
  53. var target = new StringTokenizer("abc");
  54. Assert.False(target.TryReadDouble(out var value));
  55. }
  56. }
  57. }