Skip to content

Commit e56c819

Browse files
fix tests
1 parent 1e49098 commit e56c819

File tree

5 files changed

+38
-30
lines changed

5 files changed

+38
-30
lines changed

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Query/GearsOfWarQueryYdbFixture.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,18 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con
2020

2121
modelBuilder.Entity<Mission>()
2222
.Property(e => e.Date)
23-
.HasConversion(
24-
v => v.ToDateTime(TimeOnly.MinValue),
25-
v => DateOnly.FromDateTime(v));
23+
.HasColumnType("Date32");
2624

2725
modelBuilder.Entity<Mission>()
28-
.Property(e => e.Duration)
26+
.Property(e => e.Time)
27+
.HasColumnType("Datetime64")
2928
.HasConversion(
30-
v => new DateTime(1970, 1, 1).Add(v),
31-
v => v.TimeOfDay);
29+
v => new DateTime(2000, 1, 1).Add(v.ToTimeSpan()), // Time → DateTime
30+
v => new TimeOnly(v.TimeOfDay.Ticks)
31+
); // DateTime → Time
32+
33+
modelBuilder.Entity<CogTag>()
34+
.Property(e => e.IssueDate)
35+
.HasColumnType("Date32");
3236
}
3337
}

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Query/TPCGearsOfWarQueryYdbFixture.cs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,19 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con
1616
base.OnModelCreating(modelBuilder, context);
1717

1818
modelBuilder.Entity<Mission>()
19-
.Property(e => e.Time)
20-
.HasConversion(
21-
v => new DateTime(2000, 1, 1).Add(v.ToTimeSpan()), // Time → DateTime
22-
v => new TimeOnly(v.TimeOfDay.Ticks)) // DateTime → Time
23-
.HasColumnType("DATETIME");
19+
.Property(e => e.Date)
20+
.HasColumnType("Date32");
2421

2522
modelBuilder.Entity<Mission>()
26-
.Property(e => e.Duration)
23+
.Property(e => e.Time)
24+
.HasColumnType("Datetime64")
2725
.HasConversion(
28-
v => new DateTime(2000, 1, 1).Add(v), // TimeSpan → DateTime
29-
v => v.TimeOfDay) // DateTime → TimeSpan
30-
.HasColumnType("DATETIME");
26+
v => new DateTime(2000, 1, 1).Add(v.ToTimeSpan()), // Time → DateTime
27+
v => new TimeOnly(v.TimeOfDay.Ticks)
28+
); // DateTime → Time
29+
30+
modelBuilder.Entity<CogTag>()
31+
.Property(e => e.IssueDate)
32+
.HasColumnType("Date32");
3133
}
3234
}

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Query/TPTGearsOfWarQueryYdbFixture.cs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace EntityFrameworkCore.Ydb.FunctionalTests.Query;
88

9-
public class TptGearsOfWarQueryYdbFixture : TPTGearsOfWarQueryRelationalFixture
9+
public class TPTGearsOfWarQueryYdbFixture : TPTGearsOfWarQueryRelationalFixture
1010
{
1111
protected override ITestStoreFactory TestStoreFactory
1212
=> YdbTestStoreFactory.Instance;
@@ -16,17 +16,19 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con
1616
base.OnModelCreating(modelBuilder, context);
1717

1818
modelBuilder.Entity<Mission>()
19-
.Property(e => e.Time)
20-
.HasConversion(
21-
v => new DateTime(2000, 1, 1).Add(v.ToTimeSpan()), // Time → DateTime
22-
v => new TimeOnly(v.TimeOfDay.Ticks)) // DateTime → Time
23-
.HasColumnType("DATETIME");
19+
.Property(e => e.Date)
20+
.HasColumnType("Date32");
2421

2522
modelBuilder.Entity<Mission>()
26-
.Property(e => e.Date)
23+
.Property(e => e.Time)
24+
.HasColumnType("Datetime64")
2725
.HasConversion(
28-
v => new DateTime(v.Year, v.Month, v.Day), // DateOnly → DateTime
29-
v => new DateOnly(v.Year, v.Month, v.Day)) // DateTime → DateOnly
30-
.HasColumnType("DATETIME");
26+
v => new DateTime(2000, 1, 1).Add(v.ToTimeSpan()), // Time → DateTime
27+
v => new TimeOnly(v.TimeOfDay.Ticks)
28+
); // DateTime → Time
29+
30+
modelBuilder.Entity<CogTag>()
31+
.Property(e => e.IssueDate)
32+
.HasColumnType("Date32");
3133
}
3234
}

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Query/TPTGearsOfWarQueryYdbTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
namespace EntityFrameworkCore.Ydb.FunctionalTests.Query;
66

77
// TODO: Correlated subqueries right now are not supported in YDB
8-
public class TptGearsOfWarQueryYdbTest : TPTGearsOfWarQueryRelationalTestBase<TptGearsOfWarQueryYdbFixture>
8+
public class TPTGearsOfWarQueryYdbTest : TPTGearsOfWarQueryRelationalTestBase<TPTGearsOfWarQueryYdbFixture>
99
{
1010
// ReSharper disable once UnusedParameter.Local
11-
public TptGearsOfWarQueryYdbTest(TptGearsOfWarQueryYdbFixture fixture, ITestOutputHelper testOutputHelper)
11+
public TPTGearsOfWarQueryYdbTest(TPTGearsOfWarQueryYdbFixture fixture, ITestOutputHelper testOutputHelper)
1212
: base(fixture)
1313
{
1414
Fixture.TestSqlLoggerFactory.Clear();

src/Ydb.Sdk/src/Ado/Internal/YdbValueExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ internal static Guid UnpackUuid(this Ydb.Value value)
143143
}
144144

145145
internal static Ydb.Value PackDate(DateTime value) =>
146-
new() { Uint32Value = (uint)(value.Subtract(DateTime.UnixEpoch).Ticks / TimeSpan.TicksPerDay) };
146+
new() { Uint32Value = checked((uint)(value.Subtract(DateTime.UnixEpoch).Ticks / TimeSpan.TicksPerDay)) };
147147

148148
internal static DateTime UnpackDate(this Ydb.Value value) =>
149149
UnixEpoch.AddTicks(value.Uint32Value * TimeSpan.TicksPerDay);
@@ -155,7 +155,7 @@ internal static DateTime UnpackDate32(this Ydb.Value value) =>
155155
UnixEpoch.AddTicks(value.Int32Value * TimeSpan.TicksPerDay);
156156

157157
internal static Ydb.Value PackDatetime(DateTime value) => new()
158-
{ Uint32Value = (uint)(value.Subtract(DateTime.UnixEpoch).Ticks / TimeSpan.TicksPerSecond) };
158+
{ Uint32Value = checked((uint)(value.Subtract(DateTime.UnixEpoch).Ticks / TimeSpan.TicksPerSecond)) };
159159

160160
internal static DateTime UnpackDatetime(this Ydb.Value value) =>
161161
UnixEpoch.AddTicks(value.Uint32Value * TimeSpan.TicksPerSecond);
@@ -167,7 +167,7 @@ internal static DateTime UnpackDatetime64(this Ydb.Value value) =>
167167
UnixEpoch.AddTicks(value.Int64Value * TimeSpan.TicksPerSecond);
168168

169169
internal static Ydb.Value PackTimestamp(DateTime value) => new()
170-
{ Uint64Value = (ulong)(value.Ticks - DateTime.UnixEpoch.Ticks) / TimeSpanUtils.TicksPerMicrosecond };
170+
{ Uint64Value = checked((ulong)(value.Ticks - DateTime.UnixEpoch.Ticks) / TimeSpanUtils.TicksPerMicrosecond) };
171171

172172
internal static DateTime UnpackTimestamp(this Ydb.Value value) =>
173173
UnixEpoch.AddTicks((long)(value.Uint64Value * TimeSpanUtils.TicksPerMicrosecond));

0 commit comments

Comments
 (0)