@@ -9,10 +9,35 @@ public static class SqliteTests
99 [ KnownTestType . SqliteDataTypes ] = new TestImpl
1010 {
1111 Impl = $$ """
12+ private static IEnumerable<TestCaseData> SqliteTypesTestCases
13+ {
14+ get
15+ {
16+ yield return new TestCaseData(
17+ -54355,
18+ 9787.66m,
19+ "Songs of Love and Hate",
20+ new byte[] { 0x15, 0x20, 0x33 },
21+ true,
22+ false,
23+ DateTime.SpecifyKind(DateTime.Parse("2020-01-01 14:15:16"), DateTimeKind.Utc),
24+ DateTime.SpecifyKind(DateTime.Parse("2025-01-01 17:18:19"), DateTimeKind.Utc),
25+ Instant.FromUtc(2025, 10, 15, 19, 55, 2),
26+ Instant.FromUtc(1993, 9, 27, 03, 55, 2)
27+ ).SetName("SqliteTypes with values");
28+
29+ yield return new TestCaseData(
30+ null, null, null, new byte[] { }, null, null, null, null, null, null
31+ ).SetName("SqliteTypes with empty values");
32+
33+ yield return new TestCaseData(
34+ null, null, null, null, null, null, null, null, null, null
35+ ).SetName("SqliteTypes with null values");
36+ }
37+ }
38+
1239 [Test]
13- [TestCase(-54355, 9787.66, "Songs of Love and Hate", new byte[] { 0x15, 0x20, 0x33 }, true, false, "2020-01-01 14:15:16", "2025-01-01 17:18:19")]
14- [TestCase(null, null, null, new byte[] { }, null, null, null, null)]
15- [TestCase(null, null, null, null, null, null, null, null)]
40+ [TestCaseSource(nameof(SqliteTypesTestCases))]
1641 public async Task TestSqliteTypes(
1742 int? cInteger,
1843 decimal? cReal,
@@ -21,13 +46,10 @@ public async Task TestSqliteTypes(
2146 bool? cTextBoolOverride,
2247 bool? cIntegerBoolOverride,
2348 DateTime? cTextDatetimeOverride,
24- DateTime? cIntegerDatetimeOverride)
49+ DateTime? cIntegerDatetimeOverride,
50+ Instant? cTextNodaInstantOverride,
51+ Instant? cIntegerNodaInstantOverride)
2552 {
26- if (cTextDatetimeOverride.HasValue && cTextDatetimeOverride.Value.Kind != DateTimeKind.Utc)
27- cTextDatetimeOverride = DateTime.SpecifyKind(cTextDatetimeOverride.Value, DateTimeKind.Utc);
28- if (cIntegerDatetimeOverride.HasValue && cIntegerDatetimeOverride.Value.Kind != DateTimeKind.Utc)
29- cIntegerDatetimeOverride = DateTime.SpecifyKind(cIntegerDatetimeOverride.Value, DateTimeKind.Utc);
30-
3153 await QuerySql.InsertSqliteTypes(new QuerySql.InsertSqliteTypesArgs
3254 {
3355 CInteger = cInteger,
@@ -37,7 +59,9 @@ await QuerySql.InsertSqliteTypes(new QuerySql.InsertSqliteTypesArgs
3759 CTextBoolOverride = cTextBoolOverride,
3860 CIntegerBoolOverride = cIntegerBoolOverride,
3961 CTextDatetimeOverride = cTextDatetimeOverride,
40- CIntegerDatetimeOverride = cIntegerDatetimeOverride
62+ CIntegerDatetimeOverride = cIntegerDatetimeOverride,
63+ CTextNodaInstantOverride = cTextNodaInstantOverride,
64+ CIntegerNodaInstantOverride = cIntegerNodaInstantOverride
4165 });
4266
4367 var expected = new QuerySql.GetSqliteTypesRow
@@ -49,7 +73,9 @@ await QuerySql.InsertSqliteTypes(new QuerySql.InsertSqliteTypesArgs
4973 CTextBoolOverride = cTextBoolOverride,
5074 CIntegerBoolOverride = cIntegerBoolOverride,
5175 CTextDatetimeOverride = cTextDatetimeOverride,
52- CIntegerDatetimeOverride = cIntegerDatetimeOverride
76+ CIntegerDatetimeOverride = cIntegerDatetimeOverride,
77+ CTextNodaInstantOverride = cTextNodaInstantOverride,
78+ CIntegerNodaInstantOverride = cIntegerNodaInstantOverride
5379 };
5480 var actual = await QuerySql.GetSqliteTypes();
5581 AssertSingularEquals(expected, actual{{ Consts . UnknownRecordValuePlaceholder }} );
@@ -62,24 +88,10 @@ void AssertSingularEquals(QuerySql.GetSqliteTypesRow x, QuerySql.GetSqliteTypesR
6288 Assert.That(x.CBlob, Is.EqualTo(y.CBlob));
6389 Assert.That(x.CTextBoolOverride, Is.EqualTo(y.CTextBoolOverride));
6490 Assert.That(x.CIntegerBoolOverride, Is.EqualTo(y.CIntegerBoolOverride));
65- AssertDateTimeEquals(x.CTextDatetimeOverride, y.CTextDatetimeOverride);
66- AssertDateTimeEquals(x.CIntegerDatetimeOverride, y.CIntegerDatetimeOverride);
67- }
68-
69- void AssertDateTimeEquals(DateTime? x, DateTime? y)
70- {
71- Assert.That(x.HasValue, Is.EqualTo(y.HasValue));
72- if (!x.HasValue)
73- return;
74-
75- var xv = x.Value;
76- var yv = y.Value;
77- Assert.That(xv.Year, Is.EqualTo(yv.Year));
78- Assert.That(xv.Month, Is.EqualTo(yv.Month));
79- Assert.That(xv.Day, Is.EqualTo(yv.Day));
80- Assert.That(xv.Hour, Is.EqualTo(yv.Hour));
81- Assert.That(xv.Minute, Is.EqualTo(yv.Minute));
82- Assert.That(xv.Second, Is.EqualTo(yv.Second));
91+ Assert.That(x.CTextDatetimeOverride, Is.EqualTo(y.CTextDatetimeOverride));
92+ Assert.That(x.CIntegerDatetimeOverride, Is.EqualTo(y.CIntegerDatetimeOverride));
93+ Assert.That(x.CTextNodaInstantOverride, Is.EqualTo(y.CTextNodaInstantOverride));
94+ Assert.That(x.CIntegerNodaInstantOverride, Is.EqualTo(y.CIntegerNodaInstantOverride));
8395 }
8496 }
8597 """
0 commit comments