123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- using System;
- using Avalonia.Utilities;
- using Xunit;
- #pragma warning disable CS0618 // Type or member is obsolete
- namespace Avalonia.Base.UnitTests.Utilities
- {
- public class StringTokenizerTests
- {
- [Fact]
- public void ReadInt32_Reads_Values()
- {
- var target = new StringTokenizer("123,456");
- Assert.Equal(123, target.ReadInt32());
- Assert.Equal(456, target.ReadInt32());
- Assert.Throws<FormatException>(() => target.ReadInt32());
- }
- [Fact]
- public void ReadDouble_Reads_Values()
- {
- var target = new StringTokenizer("12.3,45.6");
- Assert.Equal(12.3, target.ReadDouble());
- Assert.Equal(45.6, target.ReadDouble());
- Assert.Throws<FormatException>(() => target.ReadDouble());
- }
- [Fact]
- public void TryReadInt32_Reads_Values()
- {
- var target = new StringTokenizer("123,456");
- Assert.True(target.TryReadInt32(out var value));
- Assert.Equal(123, value);
- Assert.True(target.TryReadInt32(out value));
- Assert.Equal(456, value);
- Assert.False(target.TryReadInt32(out value));
- }
- [Fact]
- public void TryReadInt32_Doesnt_Throw()
- {
- var target = new StringTokenizer("abc");
- Assert.False(target.TryReadInt32(out var value));
- }
- [Fact]
- public void TryReadDouble_Reads_Values()
- {
- var target = new StringTokenizer("12.3,45.6");
- Assert.True(target.TryReadDouble(out var value));
- Assert.Equal(12.3, value);
- Assert.True(target.TryReadDouble(out value));
- Assert.Equal(45.6, value);
- Assert.False(target.TryReadDouble(out value));
- }
- [Fact]
- public void TryReadDouble_Doesnt_Throw()
- {
- var target = new StringTokenizer("abc");
- Assert.False(target.TryReadDouble(out var value));
- }
- [Fact]
- public void ReadSpan_And_ReadString_Reads_Same()
- {
- var target1 = new StringTokenizer("abc,def");
- var target2 = new StringTokenizer("abc,def");
- Assert.Equal(target1.ReadString(), target2.ReadSpan().ToString());
- Assert.True(target1.ReadSpan().SequenceEqual(target2.ReadString()));
- }
- }
- }
|