Skip to content

Commit cd739cb

Browse files
authored
Merge pull request #3 from TensionDev/feature/extended-cases
Added additional test cases for ReadJson.
2 parents 1ab692c + 586c62a commit cd739cb

3 files changed

Lines changed: 59 additions & 13 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using Xunit;
8+
9+
namespace TensionDev.ULID.Serialization.JsonNet.Tests
10+
{
11+
public class ReadJsonTestData : TheoryData<JsonToken, Object, Boolean>
12+
{
13+
public ReadJsonTestData()
14+
{
15+
Add(JsonToken.String, "00000000000000000000000000", false);
16+
Add(JsonToken.String, "7ZZZZZZZZZZZZZZZZZZZZZZZZZ", false);
17+
Add(JsonToken.String, "01ARZ3NDEKTSV4RRFFQ69G5FAV", false);
18+
19+
Add(JsonToken.Boolean, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
20+
Add(JsonToken.Bytes, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
21+
Add(JsonToken.Date, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
22+
Add(JsonToken.Float, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
23+
Add(JsonToken.Integer, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
24+
Add(JsonToken.Null, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
25+
Add(JsonToken.Raw, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
26+
Add(JsonToken.Undefined, "01ARZ3NDEKTSV4RRFFQ69G5FAV", true);
27+
28+
Add(JsonToken.String, Int16.MaxValue, true);
29+
Add(JsonToken.String, Int32.MaxValue, true);
30+
Add(JsonToken.String, Int64.MaxValue, true);
31+
Add(JsonToken.String, Single.MaxValue, true);
32+
Add(JsonToken.String, Double.MaxValue, true);
33+
Add(JsonToken.String, DateTime.MinValue, true);
34+
Add(JsonToken.String, DateTime.MaxValue, true);
35+
Add(JsonToken.String, Guid.Empty, true);
36+
37+
Add(JsonToken.Raw, new Object(), true);
38+
}
39+
}
40+
}

TensionDev.ULID.Serialization.JsonNet.Tests/UlidJsonNetConverterTests.cs

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,34 @@ public UlidJsonNetConverterTests()
1717
}
1818

1919
[Theory]
20-
[InlineData("00000000000000000000000000")]
21-
[InlineData("7ZZZZZZZZZZZZZZZZZZZZZZZZZ")]
22-
[InlineData("01ARZ3NDEKTSV4RRFFQ69G5FAV")]
23-
public void TestReadJson(string validUlidString)
20+
[ClassData(typeof(ReadJsonTestData))]
21+
public void TestReadJson(JsonToken jsonToken, object value, bool throwsException)
2422
{
2523
// Arrange
2624
var readerMock = new Mock<JsonReader>(MockBehavior.Strict);
27-
readerMock.SetupGet(r => r.TokenType).Returns(JsonToken.String);
28-
readerMock.SetupGet(r => r.Value).Returns((object)validUlidString);
25+
readerMock.SetupGet(r => r.TokenType).Returns(jsonToken);
26+
readerMock.SetupGet(r => r.Value).Returns(value);
2927

3028
var converter = new UlidJsonNetConverter();
3129

3230
// existingValue must be non-nullable; obtain an instance via Parse to satisfy parameter constraints.
33-
Ulid existingValue = Ulid.Parse(validUlidString);
31+
Ulid existingValue = Ulid.Max;
3432
var serializer = new JsonSerializer();
3533

36-
// Act
37-
Ulid result = converter.ReadJson(readerMock.Object, typeof(Ulid), existingValue, hasExistingValue: false, serializer: serializer);
34+
if (throwsException)
35+
{
36+
// Act and Assert
37+
Assert.Throws<JsonSerializationException>(() => converter.ReadJson(readerMock.Object, typeof(Ulid), existingValue, hasExistingValue: false, serializer: serializer));
38+
}
39+
else
40+
{
41+
// Act
42+
Ulid result = converter.ReadJson(readerMock.Object, typeof(Ulid), existingValue, hasExistingValue: false, serializer: serializer);
3843

39-
// Assert
40-
Assert.NotNull(result);
41-
Assert.Equal(validUlidString, result.ToString());
44+
// Assert
45+
Assert.NotNull(result);
46+
Assert.Equal(value.ToString(), result.ToString());
47+
}
4248
}
4349

4450
[Theory]

TensionDev.ULID.Serialization.JsonNet/TensionDev.ULID.Serialization.JsonNet.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
1111
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
1212
<PackageId>TensionDev.ULID.Serialization.JsonNet</PackageId>
13-
<Version>1.0.0-alpha</Version>
13+
<Version>1.0.0</Version>
1414
<Authors>TensionDev amsga</Authors>
1515
<Company>TensionDev</Company>
1616
<Product>TensionDev.ULID.Serialization.JsonNet</Product>

0 commit comments

Comments
 (0)