Skip to content

Commit 0269fdb

Browse files
CopilotScarletKuro
andcommitted
Refactor tests to use constants for maintainability
Co-authored-by: ScarletKuro <19953225+ScarletKuro@users.noreply.github.com>
1 parent 40fd1e4 commit 0269fdb

2 files changed

Lines changed: 43 additions & 31 deletions

File tree

src/Scarlet.System.Text.Json.DateTimeConverter.Tests/DateTimeConverterFactoryHelperTests.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ namespace Scarlet.System.Text.Json.DateTimeConverter.Tests;
88
/// </summary>
99
public class DateTimeConverterFactoryHelperTests
1010
{
11+
private const string TestDateFormat = "yyyy-MM-dd";
12+
private const string TestTimeFormat = "HH:mm:ss";
13+
1114
[Fact]
1215
public void CreateConverter_DateTime_ReturnsDateTimeConverter()
1316
{
1417
// Act
15-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTime), "yyyy-MM-dd");
18+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTime), TestDateFormat);
1619

1720
// Assert
1821
Assert.NotNull(converter);
@@ -23,7 +26,7 @@ public void CreateConverter_DateTime_ReturnsDateTimeConverter()
2326
public void CreateConverter_NullableDateTime_ReturnsDateTimeNullableConverter()
2427
{
2528
// Act
26-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTime?), "yyyy-MM-dd");
29+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTime?), TestDateFormat);
2730

2831
// Assert
2932
Assert.NotNull(converter);
@@ -34,7 +37,7 @@ public void CreateConverter_NullableDateTime_ReturnsDateTimeNullableConverter()
3437
public void CreateConverter_DateTimeOffset_ReturnsDateTimeOffsetConverter()
3538
{
3639
// Act
37-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTimeOffset), "yyyy-MM-dd");
40+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTimeOffset), TestDateFormat);
3841

3942
// Assert
4043
Assert.NotNull(converter);
@@ -45,7 +48,7 @@ public void CreateConverter_DateTimeOffset_ReturnsDateTimeOffsetConverter()
4548
public void CreateConverter_NullableDateTimeOffset_ReturnsDateTimeOffsetNullableConverter()
4649
{
4750
// Act
48-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTimeOffset?), "yyyy-MM-dd");
51+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateTimeOffset?), TestDateFormat);
4952

5053
// Assert
5154
Assert.NotNull(converter);
@@ -56,7 +59,7 @@ public void CreateConverter_NullableDateTimeOffset_ReturnsDateTimeOffsetNullable
5659
public void CreateConverter_DateOnly_ReturnsDateOnlyConverter()
5760
{
5861
// Act
59-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateOnly), "yyyy-MM-dd");
62+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateOnly), TestDateFormat);
6063

6164
// Assert
6265
Assert.NotNull(converter);
@@ -67,7 +70,7 @@ public void CreateConverter_DateOnly_ReturnsDateOnlyConverter()
6770
public void CreateConverter_NullableDateOnly_ReturnsDateOnlyNullableConverter()
6871
{
6972
// Act
70-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateOnly?), "yyyy-MM-dd");
73+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(DateOnly?), TestDateFormat);
7174

7275
// Assert
7376
Assert.NotNull(converter);
@@ -78,7 +81,7 @@ public void CreateConverter_NullableDateOnly_ReturnsDateOnlyNullableConverter()
7881
public void CreateConverter_TimeOnly_ReturnsTimeOnlyConverter()
7982
{
8083
// Act
81-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(TimeOnly), "HH:mm:ss");
84+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(TimeOnly), TestTimeFormat);
8285

8386
// Assert
8487
Assert.NotNull(converter);
@@ -89,7 +92,7 @@ public void CreateConverter_TimeOnly_ReturnsTimeOnlyConverter()
8992
public void CreateConverter_NullableTimeOnly_ReturnsTimeOnlyNullableConverter()
9093
{
9194
// Act
92-
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(TimeOnly?), "HH:mm:ss");
95+
var converter = DateTimeConverterFactoryHelper.CreateConverter(typeof(TimeOnly?), TestTimeFormat);
9396

9497
// Assert
9598
Assert.NotNull(converter);
@@ -101,7 +104,7 @@ public void CreateConverter_UnsupportedType_ThrowsNotSupportedException()
101104
{
102105
// Act & Assert
103106
var exception = Assert.Throws<NotSupportedException>(() =>
104-
DateTimeConverterFactoryHelper.CreateConverter(typeof(string), "yyyy-MM-dd"));
107+
DateTimeConverterFactoryHelper.CreateConverter(typeof(string), TestDateFormat));
105108

106109
Assert.Contains("System.String", exception.Message);
107110
Assert.Contains("DateTimeConverterFactoryHelper", exception.Message);
@@ -112,7 +115,7 @@ public void CreateConverter_AnotherUnsupportedType_ThrowsNotSupportedException()
112115
{
113116
// Act & Assert
114117
var exception = Assert.Throws<NotSupportedException>(() =>
115-
DateTimeConverterFactoryHelper.CreateConverter(typeof(int), "yyyy-MM-dd"));
118+
DateTimeConverterFactoryHelper.CreateConverter(typeof(int), TestDateFormat));
116119

117120
Assert.Contains("System.Int32", exception.Message);
118121
Assert.Contains("DateTimeConverterFactoryHelper", exception.Message);
@@ -123,6 +126,6 @@ public void CreateConverter_NullType_ThrowsArgumentNullException()
123126
{
124127
// Act & Assert
125128
Assert.Throws<ArgumentNullException>(() =>
126-
DateTimeConverterFactoryHelper.CreateConverter(null!, "yyyy-MM-dd"));
129+
DateTimeConverterFactoryHelper.CreateConverter(null!, TestDateFormat));
127130
}
128131
}

src/Scarlet.System.Text.Json.DateTimeConverter.Tests/NullableConverterWriteTests.cs

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,20 @@ namespace Scarlet.System.Text.Json.DateTimeConverter.Tests;
99
/// </summary>
1010
public class NullableConverterWriteTests
1111
{
12+
private const string TestDateFormat = "yyyy-MM-dd";
13+
private const string TestTimeFormat = "HH:mm:ss";
14+
private const int TestYear = 2023;
15+
private const int TestMonth = 10;
16+
private const int TestDay = 15;
17+
private const int TestHour = 14;
18+
private const int TestMinute = 30;
19+
private const int TestSecond = 45;
20+
1221
[Fact]
1322
public void DateTimeNullableConverter_Write_DirectCallWithNull_WritesNullValue()
1423
{
1524
// Arrange
16-
var converter = Converters.DateTimeNullableConverter.FromFormat("yyyy-MM-dd");
25+
var converter = Converters.DateTimeNullableConverter.FromFormat(TestDateFormat);
1726
using var stream = new MemoryStream();
1827
using var writer = new Utf8JsonWriter(stream);
1928
DateTime? value = null;
@@ -31,10 +40,10 @@ public void DateTimeNullableConverter_Write_DirectCallWithNull_WritesNullValue()
3140
public void DateTimeNullableConverter_Write_DirectCallWithValue_WritesFormattedDate()
3241
{
3342
// Arrange
34-
var converter = Converters.DateTimeNullableConverter.FromFormat("yyyy-MM-dd");
43+
var converter = Converters.DateTimeNullableConverter.FromFormat(TestDateFormat);
3544
using var stream = new MemoryStream();
3645
using var writer = new Utf8JsonWriter(stream);
37-
DateTime? value = new DateTime(2023, 10, 15);
46+
DateTime? value = new DateTime(TestYear, TestMonth, TestDay);
3847

3948
// Act
4049
converter.Write(writer, value, new JsonSerializerOptions());
@@ -49,7 +58,7 @@ public void DateTimeNullableConverter_Write_DirectCallWithValue_WritesFormattedD
4958
public void DateTimeOffsetNullableConverter_Write_DirectCallWithNull_WritesNullValue()
5059
{
5160
// Arrange
52-
var converter = Converters.DateTimeOffsetNullableConverter.FromFormat("yyyy-MM-dd");
61+
var converter = Converters.DateTimeOffsetNullableConverter.FromFormat(TestDateFormat);
5362
using var stream = new MemoryStream();
5463
using var writer = new Utf8JsonWriter(stream);
5564
DateTimeOffset? value = null;
@@ -67,10 +76,10 @@ public void DateTimeOffsetNullableConverter_Write_DirectCallWithNull_WritesNullV
6776
public void DateTimeOffsetNullableConverter_Write_DirectCallWithValue_WritesFormattedDate()
6877
{
6978
// Arrange
70-
var converter = Converters.DateTimeOffsetNullableConverter.FromFormat("yyyy-MM-dd");
79+
var converter = Converters.DateTimeOffsetNullableConverter.FromFormat(TestDateFormat);
7180
using var stream = new MemoryStream();
7281
using var writer = new Utf8JsonWriter(stream);
73-
DateTimeOffset? value = new DateTimeOffset(2023, 10, 15, 0, 0, 0, TimeSpan.Zero);
82+
DateTimeOffset? value = new DateTimeOffset(TestYear, TestMonth, TestDay, 0, 0, 0, TimeSpan.Zero);
7483

7584
// Act
7685
converter.Write(writer, value, new JsonSerializerOptions());
@@ -85,7 +94,7 @@ public void DateTimeOffsetNullableConverter_Write_DirectCallWithValue_WritesForm
8594
public void DateOnlyNullableConverter_Write_DirectCallWithNull_WritesNullValue()
8695
{
8796
// Arrange
88-
var converter = Converters.DateOnlyNullableConverter.FromFormat("yyyy-MM-dd");
97+
var converter = Converters.DateOnlyNullableConverter.FromFormat(TestDateFormat);
8998
using var stream = new MemoryStream();
9099
using var writer = new Utf8JsonWriter(stream);
91100
DateOnly? value = null;
@@ -103,10 +112,10 @@ public void DateOnlyNullableConverter_Write_DirectCallWithNull_WritesNullValue()
103112
public void DateOnlyNullableConverter_Write_DirectCallWithValue_WritesFormattedDate()
104113
{
105114
// Arrange
106-
var converter = Converters.DateOnlyNullableConverter.FromFormat("yyyy-MM-dd");
115+
var converter = Converters.DateOnlyNullableConverter.FromFormat(TestDateFormat);
107116
using var stream = new MemoryStream();
108117
using var writer = new Utf8JsonWriter(stream);
109-
DateOnly? value = new DateOnly(2023, 10, 15);
118+
DateOnly? value = new DateOnly(TestYear, TestMonth, TestDay);
110119

111120
// Act
112121
converter.Write(writer, value, new JsonSerializerOptions());
@@ -121,7 +130,7 @@ public void DateOnlyNullableConverter_Write_DirectCallWithValue_WritesFormattedD
121130
public void TimeOnlyNullableConverter_Write_DirectCallWithNull_WritesNullValue()
122131
{
123132
// Arrange
124-
var converter = Converters.TimeOnlyNullableConverter.FromFormat("HH:mm:ss");
133+
var converter = Converters.TimeOnlyNullableConverter.FromFormat(TestTimeFormat);
125134
using var stream = new MemoryStream();
126135
using var writer = new Utf8JsonWriter(stream);
127136
TimeOnly? value = null;
@@ -139,10 +148,10 @@ public void TimeOnlyNullableConverter_Write_DirectCallWithNull_WritesNullValue()
139148
public void TimeOnlyNullableConverter_Write_DirectCallWithValue_WritesFormattedTime()
140149
{
141150
// Arrange
142-
var converter = Converters.TimeOnlyNullableConverter.FromFormat("HH:mm:ss");
151+
var converter = Converters.TimeOnlyNullableConverter.FromFormat(TestTimeFormat);
143152
using var stream = new MemoryStream();
144153
using var writer = new Utf8JsonWriter(stream);
145-
TimeOnly? value = new TimeOnly(14, 30, 45);
154+
TimeOnly? value = new TimeOnly(TestHour, TestMinute, TestSecond);
146155

147156
// Act
148157
converter.Write(writer, value, new JsonSerializerOptions());
@@ -157,8 +166,8 @@ public void TimeOnlyNullableConverter_Write_DirectCallWithValue_WritesFormattedT
157166
public void DateTimeNullableConverter_Write_NullWriter_ThrowsArgumentNullException()
158167
{
159168
// Arrange
160-
var converter = Converters.DateTimeNullableConverter.FromFormat("yyyy-MM-dd");
161-
DateTime? value = new DateTime(2023, 10, 15);
169+
var converter = Converters.DateTimeNullableConverter.FromFormat(TestDateFormat);
170+
DateTime? value = new DateTime(TestYear, TestMonth, TestDay);
162171

163172
// Act & Assert
164173
Assert.Throws<ArgumentNullException>(() => converter.Write(null!, value, new JsonSerializerOptions()));
@@ -168,8 +177,8 @@ public void DateTimeNullableConverter_Write_NullWriter_ThrowsArgumentNullExcepti
168177
public void DateTimeOffsetNullableConverter_Write_NullWriter_ThrowsArgumentNullException()
169178
{
170179
// Arrange
171-
var converter = Converters.DateTimeOffsetNullableConverter.FromFormat("yyyy-MM-dd");
172-
DateTimeOffset? value = new DateTimeOffset(2023, 10, 15, 0, 0, 0, TimeSpan.Zero);
180+
var converter = Converters.DateTimeOffsetNullableConverter.FromFormat(TestDateFormat);
181+
DateTimeOffset? value = new DateTimeOffset(TestYear, TestMonth, TestDay, 0, 0, 0, TimeSpan.Zero);
173182

174183
// Act & Assert
175184
Assert.Throws<ArgumentNullException>(() => converter.Write(null!, value, new JsonSerializerOptions()));
@@ -179,8 +188,8 @@ public void DateTimeOffsetNullableConverter_Write_NullWriter_ThrowsArgumentNullE
179188
public void DateOnlyNullableConverter_Write_NullWriter_ThrowsArgumentNullException()
180189
{
181190
// Arrange
182-
var converter = Converters.DateOnlyNullableConverter.FromFormat("yyyy-MM-dd");
183-
DateOnly? value = new DateOnly(2023, 10, 15);
191+
var converter = Converters.DateOnlyNullableConverter.FromFormat(TestDateFormat);
192+
DateOnly? value = new DateOnly(TestYear, TestMonth, TestDay);
184193

185194
// Act & Assert
186195
Assert.Throws<ArgumentNullException>(() => converter.Write(null!, value, new JsonSerializerOptions()));
@@ -190,8 +199,8 @@ public void DateOnlyNullableConverter_Write_NullWriter_ThrowsArgumentNullExcepti
190199
public void TimeOnlyNullableConverter_Write_NullWriter_ThrowsArgumentNullException()
191200
{
192201
// Arrange
193-
var converter = Converters.TimeOnlyNullableConverter.FromFormat("HH:mm:ss");
194-
TimeOnly? value = new TimeOnly(14, 30, 45);
202+
var converter = Converters.TimeOnlyNullableConverter.FromFormat(TestTimeFormat);
203+
TimeOnly? value = new TimeOnly(TestHour, TestMinute, TestSecond);
195204

196205
// Act & Assert
197206
Assert.Throws<ArgumentNullException>(() => converter.Write(null!, value, new JsonSerializerOptions()));

0 commit comments

Comments
 (0)