Skip to content

Commit 2cd502b

Browse files
committed
Refactor date validation in integration tests to use DateParse method for improved accuracy
1 parent 21d8bfd commit 2cd502b

1 file changed

Lines changed: 24 additions & 6 deletions

File tree

TownSuite.DapperExtras.Tests/TownSuiteDapperExtensions_IntegrationTests.cs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,8 @@ public async Task QueryDt_Test(Func<IDbConnection> connectionFactory)
224224
DataRow row = dt.Rows[0];
225225
Assert.That(row["Col1"], Is.EqualTo("Value1"));
226226
Assert.That(row["Col2"], Is.EqualTo("ValueA"));
227-
Assert.That(row["Col3"].ToString().StartsWith("2024-01-01"), row["Col3"].ToString());
227+
DateTime parsedCol3 = DateParse(row);
228+
Assert.That(parsedCol3.Date, Is.EqualTo(new DateTime(2024, 1, 1)), row["Col3"].ToString());
228229
}
229230

230231
[TestCaseSource(typeof(DatabaseTestCases), nameof(DatabaseTestCases.TestCases))]
@@ -240,16 +241,32 @@ public async Task QueryDt_WithSqlMapper_Test(Func<IDbConnection> connectionFacto
240241
Assert.That(row["Col1"], Is.EqualTo("Value1"));
241242
Assert.That(row["Col2"], Is.EqualTo("ValueA"));
242243

243-
// sqlite returrns exactly what was set, postgresql and sql server are using a datetime column type and returns
244-
// extra info
245-
Assert.That(row["Col3"].ToString().StartsWith("2024-01-01"), row["Col3"].ToString());
244+
DateTime parsedCol3 = DateParse(row);
245+
Assert.That(parsedCol3.Date, Is.EqualTo(new DateTime(2024, 1, 1)), row["Col3"].ToString());
246246

247247
DataTable dt2 = await connection.QueryDtAsync("select * from exampletable where id=@Id", new { Id = id });
248248
Assert.That(dt2.Rows.Count, Is.EqualTo(1));
249249
DataRow row2 = dt2.Rows[0];
250250
Assert.That(row2["Col1"], Is.EqualTo("Value1"));
251251
Assert.That(row2["Col2"], Is.EqualTo("ValueA"));
252-
Assert.That(row2["Col3"].ToString().StartsWith("2024-01-01"), row2["Col3"].ToString());
252+
DateTime parsedCol32 = DateParse(row2);
253+
Assert.That(parsedCol32.Date, Is.EqualTo(new DateTime(2024, 1, 1)), row2["Col3"].ToString());
254+
}
255+
256+
private static DateTime DateParse(DataRow row)
257+
{ // sqlite returns exactly what was set, postgresql and sql server are using a datetime column type and returns
258+
// extra info
259+
DateTime parsedCol3;
260+
if (row["Col3"].GetType() == typeof(DateTime))
261+
{
262+
parsedCol3 = row.Field<DateTime>("Col3");
263+
}
264+
else
265+
{
266+
parsedCol3 = DateTime.Parse(row["Col3"].ToString()!);
267+
}
268+
269+
return parsedCol3;
253270
}
254271

255272
[TestCaseSource(typeof(DatabaseTestCases), nameof(DatabaseTestCases.TestCases))]
@@ -262,7 +279,8 @@ public async Task QueryDtAsync_Test(Func<IDbConnection> connectionFactory)
262279
DataRow row = dt.Rows[0];
263280
Assert.That(row["Col1"], Is.EqualTo("Value1"));
264281
Assert.That(row["Col2"], Is.EqualTo("ValueA"));
265-
Assert.That(row["Col3"].ToString().StartsWith("2024-01-01"), row["Col3"].ToString());
282+
DateTime parsedCol3 = DateParse(row);
283+
Assert.That(parsedCol3.Date, Is.EqualTo(new DateTime(2024, 1, 1)), row["Col3"].ToString());
266284
}
267285

268286
public static class DatabaseTestCases

0 commit comments

Comments
 (0)