From 9017d79b06e110e970361d87107ccfa41bcc35c5 Mon Sep 17 00:00:00 2001 From: Giorgi Dalakishvili Date: Fri, 25 Oct 2024 00:52:07 +0400 Subject: [PATCH] Add test --- DuckDB.NET.Test/DuckDBManagedAppenderTests.cs | 3 +-- DuckDB.NET.Test/ModuleInit.cs | 8 +++--- .../Parameters/ListParameterTests.cs | 26 ++++++++++++++----- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/DuckDB.NET.Test/DuckDBManagedAppenderTests.cs b/DuckDB.NET.Test/DuckDBManagedAppenderTests.cs index 836e0dc2..59025ef6 100644 --- a/DuckDB.NET.Test/DuckDBManagedAppenderTests.cs +++ b/DuckDB.NET.Test/DuckDBManagedAppenderTests.cs @@ -272,8 +272,7 @@ public void TemporalValues() result.Select(tuple => tuple.Item4).Should().BeEquivalentTo(dates); result.Select(tuple => tuple.Item5).Should().BeEquivalentTo(dates); result.Select(tuple => tuple.Item6).Should().BeEquivalentTo(dates); - result.Select(tuple => tuple.Item7).Should().BeEquivalentTo(dates.Select(time => time.ToDateTimeOffset(TimeSpan.FromHours(1))), - options => options.ComparingByMembers().Including(offset => offset.Offset).Including(offset => offset.TimeOfDay)); + result.Select(tuple => tuple.Item7).Should().BeEquivalentTo(dates.Select(time => time.ToDateTimeOffset(TimeSpan.FromHours(1)))); result.Select(tuple => tuple.Item8).Should().BeEquivalentTo(dates.Select(TimeOnly.FromDateTime)); } diff --git a/DuckDB.NET.Test/ModuleInit.cs b/DuckDB.NET.Test/ModuleInit.cs index 8967b7e9..cd81fe72 100644 --- a/DuckDB.NET.Test/ModuleInit.cs +++ b/DuckDB.NET.Test/ModuleInit.cs @@ -1,9 +1,7 @@ using DuckDB.NET.Test.Helpers; +using FluentAssertions; using System; -using System.IO; -using System.Reflection; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; #nullable enable namespace DuckDB.NET.Test; @@ -13,5 +11,9 @@ public static class ModuleInit public static void Init() { NativeLibraryHelper.TryLoad(); + + AssertionOptions.AssertEquivalencyUsing(options => options.ComparingByMembers().Including(info => + info.Name == nameof(DateTimeOffset.Offset) || + info.Name == nameof(DateTimeOffset.TimeOfDay))); } } diff --git a/DuckDB.NET.Test/Parameters/ListParameterTests.cs b/DuckDB.NET.Test/Parameters/ListParameterTests.cs index e2d2f091..ae8f8375 100644 --- a/DuckDB.NET.Test/Parameters/ListParameterTests.cs +++ b/DuckDB.NET.Test/Parameters/ListParameterTests.cs @@ -2,6 +2,7 @@ using DuckDB.NET.Data; using DuckDB.NET.Native; using FluentAssertions; +using FluentAssertions.Common; using System; using System.Collections.Generic; using System.Linq; @@ -72,8 +73,7 @@ public void CanBindLongList() [Fact] public void CanBindHugeIntList() { - TestInsertSelect("HugeInt", - faker => BigInteger.Subtract(DuckDBHugeInt.HugeIntMaxValue, faker.Random.Int(min: 0))); + TestInsertSelect("HugeInt", faker => BigInteger.Subtract(DuckDBHugeInt.HugeIntMaxValue, faker.Random.Int(min: 0))); } [Fact] @@ -130,11 +130,23 @@ public void CanBindDateTimeList() TestInsertSelect("Date", faker => faker.Date.Past().Date); } - //[Fact] - //public void CanBindDateTimeOffsetList() - //{ - // TestInsertSelect("TimeTZ", faker => faker.Date.PastOffset()); - //} + [Fact] + public void CanBindDateTimeOffsetList() + { + TestInsertSelect("TimeTZ", faker => + { + var dateTime = faker.Date.Between(DateTime.Now.AddYears(-100), DateTime.Now.AddYears(100)); + + if (dateTime.Hour < 1) + { + dateTime = dateTime.AddHours(1); + } + + dateTime = dateTime.AddTicks(-dateTime.Ticks % 10); + + return dateTime.ToDateTimeOffset(TimeSpan.FromHours(1)); + }); + } [Fact] public void CanBindStringList()