diff --git a/tests/Utf8Json.Tests/JsonReaderWriterTest.cs b/tests/Utf8Json.Tests/JsonReaderWriterTest.cs index b19b094d..e33729ce 100644 --- a/tests/Utf8Json.Tests/JsonReaderWriterTest.cs +++ b/tests/Utf8Json.Tests/JsonReaderWriterTest.cs @@ -2,6 +2,7 @@ using System; using System.Linq; using System.Text; +using FsCheck.Xunit; using Xunit; namespace Utf8Json.Tests @@ -15,7 +16,7 @@ JsonReader SameAsReference(T target, ArraySegment result) return new JsonReader(result.Array, result.Offset); } - /* + [Fact] public void NullTest() { @@ -23,175 +24,87 @@ public void NullTest() writer.WriteNull(); var reader = SameAsReference((object)null, writer.GetBuffer()); - reader.ReadIsNull().IsTrue(); } - - [Theory] - [InlineData(true)] - [InlineData(false)] + + [Property] public void BoolTest(bool target) { var writer = new JsonWriter(); writer.WriteBoolean(target); var reader = SameAsReference(target, writer.GetBuffer()); - reader.ReadBoolean().Is(target); } - - [Theory] - [InlineData(byte.MinValue)] - [InlineData(9)] - [InlineData(10)] - [InlineData(99)] - [InlineData(100)] - [InlineData(101)] - [InlineData(byte.MaxValue)] + + [Property] public void ByteTest(byte target) { var writer = new JsonWriter(); writer.WriteByte(target); var reader = SameAsReference(target, writer.GetBuffer()); - reader.ReadByte().Is(target); } - - [Theory] - [InlineData(0)] - [InlineData(1)] - [InlineData(12)] - [InlineData(123)] - [InlineData(12345)] - [InlineData(123456)] - [InlineData(1234567)] - [InlineData(12345678)] - [InlineData(123456789)] - [InlineData(1234567890)] - [InlineData(12345678901)] - [InlineData(123456789012)] - [InlineData(1234567890123)] - [InlineData(12345678901234)] - [InlineData(123456789012345)] - [InlineData(1234567890123456)] - [InlineData(12345678901234567)] - [InlineData(123456789012345678)] - [InlineData(1234567890123456789)] - [InlineData(12345678901234567890)] - [InlineData(ulong.MaxValue)] + + [Property] public void UInt64Test(ulong target) { var writer = new JsonWriter(); writer.WriteUInt64(target); var reader = SameAsReference(target, writer.GetBuffer()); - reader.ReadUInt64().Is(target); } - - [Theory] - [InlineData(long.MinValue)] - [InlineData(-1234567890123456789)] - [InlineData(-123456789012345678)] - [InlineData(-12345678901234567)] - [InlineData(-1234567890123456)] - [InlineData(-123456789012345)] - [InlineData(-12345678901234)] - [InlineData(-1234567890123)] - [InlineData(-123456789012)] - [InlineData(-12345678901)] - [InlineData(-1234567890)] - [InlineData(-123456789)] - [InlineData(-12345678)] - [InlineData(-1234567)] - [InlineData(-123456)] - [InlineData(-12345)] - [InlineData(-1234)] - [InlineData(-123)] - [InlineData(-12)] - [InlineData(-1)] - [InlineData(0)] - [InlineData(1)] - [InlineData(12)] - [InlineData(123)] - [InlineData(12345)] - [InlineData(123456)] - [InlineData(1234567)] - [InlineData(12345678)] - [InlineData(123456789)] - [InlineData(1234567890)] - [InlineData(12345678901)] - [InlineData(123456789012)] - [InlineData(1234567890123)] - [InlineData(12345678901234)] - [InlineData(123456789012345)] - [InlineData(1234567890123456)] - [InlineData(12345678901234567)] - [InlineData(123456789012345678)] - [InlineData(1234567890123456789L)] - [InlineData(long.MaxValue)] + + [Property] public void Int64Test(long target) { var writer = new JsonWriter(); writer.WriteInt64(target); var reader = SameAsReference(target, writer.GetBuffer()); - reader.ReadInt64().Is(target); } - - [Theory] - [InlineData(-10)] - [InlineData(-120)] - [InlineData(10)] - [InlineData(byte.MaxValue)] - [InlineData(sbyte.MaxValue)] - [InlineData(short.MaxValue)] - [InlineData(int.MaxValue)] - [InlineData(long.MaxValue)] - [InlineData(ushort.MaxValue)] - [InlineData(uint.MaxValue)] - [InlineData(ulong.MaxValue)] - public void FloatTest(T value) + + [Property] + public void FloatTest(float value) { var bin = JsonSerializer.Serialize(value); JsonSerializer.Deserialize(bin).Is(Convert.ToSingle(value)); } - - [Theory] - [InlineData(-10)] - [InlineData(-120)] - [InlineData(10)] - [InlineData(byte.MaxValue)] - [InlineData(sbyte.MaxValue)] - [InlineData(short.MaxValue)] - [InlineData(int.MaxValue)] - [InlineData(long.MaxValue)] - [InlineData(ushort.MaxValue)] - [InlineData(uint.MaxValue)] - [InlineData(ulong.MaxValue)] - public void DoubleTest(T value) + + [Property] + public void DoubleTest(double value) { var bin = JsonSerializer.Serialize(value); JsonSerializer.Deserialize(bin).Is(Convert.ToDouble(value)); } - - [InlineData("\"xyzzy\"")] - [InlineData("/xyzzy/")] - [InlineData("'xyzzy'")] - [InlineData("\r\nxyzzy\r\n")] - [InlineData("xyz\r\nzy")] - [InlineData("xy\"zzy")] - [InlineData("xy\"zz\"y")] - [Theory] - public void StringEscaping(string v) + + [Property] + public void StringTest(string v) { var js = JsonSerializer.Serialize(v); var ok = JsonSerializer.Deserialize(js); ok.Is(v); } - */ + + [Property] + public void IntArrayTest(int[] origin) + { + var serialized = JsonSerializer.Serialize(origin); + var deserialized = JsonSerializer.Deserialize(serialized); + Assert.Equal(origin, deserialized); + } + + [Property] + public void StringArrayTest(string[] origin) + { + var serialized = JsonSerializer.Serialize(origin); + var deserialized = JsonSerializer.Deserialize(serialized); + Assert.Equal(origin, deserialized); + } + [Fact] public void LargeString() { @@ -205,7 +118,6 @@ public void LargeString() aaa.Is("\u0313" + origstr); } - [Fact] public void LargeString2() { diff --git a/tests/Utf8Json.Tests/Utf8Json.Tests.csproj b/tests/Utf8Json.Tests/Utf8Json.Tests.csproj index feeade2e..97745217 100644 --- a/tests/Utf8Json.Tests/Utf8Json.Tests.csproj +++ b/tests/Utf8Json.Tests/Utf8Json.Tests.csproj @@ -23,6 +23,7 @@ +