Skip to content

Commit a82c542

Browse files
authored
Merge pull request #10 from TensionDev/feature/extended-cases
2 parents 3739f26 + ddc72ed commit a82c542

2 files changed

Lines changed: 55 additions & 33 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using Xunit;
4+
5+
namespace TensionDev.UUID.Serialization.JsonNet.Tests
6+
{
7+
public class ReadJsonTestData : TheoryData<JsonToken, Object, Boolean>
8+
{
9+
public ReadJsonTestData()
10+
{
11+
Add(JsonToken.String, "00000000-0000-0000-0000-000000000000", false);
12+
Add(JsonToken.String, "ffffffff-ffff-ffff-ffff-ffffffffffff", false);
13+
Add(JsonToken.String, "164a714c-0c79-11ec-82a8-0242ac130003", false);
14+
Add(JsonToken.String, "550e8400-e29b-41d4-a716-446655440000", false);
15+
Add(JsonToken.String, "1bf6935b-49e6-54cf-a9c8-51fb21c41b46", false);
16+
17+
Add(JsonToken.Boolean, "550e8400-e29b-41d4-a716-446655440000", true);
18+
Add(JsonToken.Bytes, "550e8400-e29b-41d4-a716-446655440000", true);
19+
Add(JsonToken.Date, "550e8400-e29b-41d4-a716-446655440000", true);
20+
Add(JsonToken.Float, "550e8400-e29b-41d4-a716-446655440000", true);
21+
Add(JsonToken.Integer, "550e8400-e29b-41d4-a716-446655440000", true);
22+
Add(JsonToken.Null, "550e8400-e29b-41d4-a716-446655440000", true);
23+
Add(JsonToken.Raw, "550e8400-e29b-41d4-a716-446655440000", true);
24+
Add(JsonToken.Undefined, "550e8400-e29b-41d4-a716-446655440000", true);
25+
26+
Add(JsonToken.String, Int16.MaxValue, true);
27+
Add(JsonToken.String, Int32.MaxValue, true);
28+
Add(JsonToken.String, Int64.MaxValue, true);
29+
Add(JsonToken.String, Single.MaxValue, true);
30+
Add(JsonToken.String, Double.MaxValue, true);
31+
Add(JsonToken.String, DateTime.MinValue, true);
32+
Add(JsonToken.String, DateTime.MaxValue, true);
33+
Add(JsonToken.String, Guid.Empty, true);
34+
35+
Add(JsonToken.Raw, new Object(), true);
36+
}
37+
}
38+
}

TensionDev.UUID.Serialization.JsonNet.Tests/UuidJsonNetConverterTests.cs

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,48 +17,32 @@ public UuidJsonNetConverterTests()
1717
}
1818

1919
[Theory]
20-
[InlineData("00000000-0000-0000-0000-000000000000")]
21-
[InlineData("ffffffff-ffff-ffff-ffff-ffffffffffff")]
22-
[InlineData("164a714c-0c79-11ec-82a8-0242ac130003")]
23-
[InlineData("550e8400-e29b-41d4-a716-446655440000")]
24-
[InlineData("1bf6935b-49e6-54cf-a9c8-51fb21c41b46")]
25-
public void TestReadJson(string validUuidString)
20+
[ClassData(typeof(ReadJsonTestData))]
21+
public void TestReadJson(JsonToken jsonToken, object value, bool throwsException)
2622
{
2723
// Arrange
2824
var readerMock = new Mock<JsonReader>(MockBehavior.Strict);
29-
readerMock.SetupGet(r => r.TokenType).Returns(JsonToken.String);
30-
readerMock.SetupGet(r => r.Value).Returns((object)validUuidString);
25+
readerMock.SetupGet(r => r.TokenType).Returns(jsonToken);
26+
readerMock.SetupGet(r => r.Value).Returns(value);
3127

3228
// existingValue must be non-nullable; obtain an instance via Parse to satisfy parameter constraints.
33-
Uuid existingValue = Uuid.Parse(validUuidString);
29+
Uuid existingValue = Uuid.Max;
3430
var serializer = new JsonSerializer();
3531

36-
// Act
37-
Uuid result = _converter.ReadJson(readerMock.Object, typeof(Uuid), existingValue, hasExistingValue: false, serializer: serializer);
38-
39-
// Assert
40-
Assert.NotNull(result);
41-
Assert.Equal(validUuidString, result.ToString());
42-
}
43-
44-
[Fact]
45-
public void TestReadJsonInvalidType()
46-
{
47-
// Arrange
48-
const string validUuidString = "00000000-0000-0000-0000-000000000000";
49-
var readerMock = new Mock<JsonReader>(MockBehavior.Strict);
50-
readerMock.SetupGet(r => r.TokenType).Returns(JsonToken.Undefined);
51-
readerMock.SetupGet(r => r.Value).Returns((object)validUuidString);
52-
53-
// existingValue must be non-nullable; obtain an instance via Parse to satisfy parameter constraints.
54-
Uuid existingValue = Uuid.Parse(validUuidString);
55-
var serializer = new JsonSerializer();
56-
57-
Assert.Throws<JsonSerializationException>(() =>
32+
if (throwsException)
33+
{
34+
// Act and Assert
35+
Assert.Throws<JsonSerializationException>(() => _converter.ReadJson(readerMock.Object, typeof(Uuid), existingValue, hasExistingValue: false, serializer: serializer));
36+
}
37+
else
5838
{
5939
// Act
60-
_converter.ReadJson(readerMock.Object, typeof(Uuid), existingValue, hasExistingValue: false, serializer: serializer);
61-
});
40+
Uuid result = _converter.ReadJson(readerMock.Object, typeof(Uuid), existingValue, hasExistingValue: false, serializer: serializer);
41+
42+
// Assert
43+
Assert.NotNull(result);
44+
Assert.Equal(value.ToString(), result.ToString());
45+
}
6246
}
6347

6448
[Theory]

0 commit comments

Comments
 (0)