From 3caa7b8150ba436f34e4bae5dc6ee32b39335fe6 Mon Sep 17 00:00:00 2001 From: Rik Svendsen Rose Date: Thu, 12 Sep 2024 15:33:13 +0200 Subject: [PATCH] Prove ToJson Not working with EF Core 8 --- .../Base/Tables.cs | 1 + .../Base/TestDbContext.cs | 1 + .../DbTestsBase.cs | 5 ++++- .../DbTests_Postgres.cs | 4 ++-- ...exLabs.EntityFrameworkCore.Upsert.IntegrationTests.csproj | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/Tables.cs b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/Tables.cs index 34e2e84..f9f9397 100644 --- a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/Tables.cs +++ b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/Tables.cs @@ -39,6 +39,7 @@ public class JsonData public int ID { get; set; } public string Data { get; set; } public ChildObject Child { get; set; } + public ChildObject Poco { get; set; } } public class ChildObject diff --git a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/TestDbContext.cs b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/TestDbContext.cs index bb6f707..5a4d711 100644 --- a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/TestDbContext.cs +++ b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/Base/TestDbContext.cs @@ -43,6 +43,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Property(j => j.Data).HasColumnType("jsonb"); modelBuilder.Entity().Property(j => j.Child).HasColumnType("jsonb"); + modelBuilder.Entity().OwnsOne(j => j.Poco, x => x.ToJson()); } else { diff --git a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTestsBase.cs b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTestsBase.cs index 35fa5b3..41a7e66 100644 --- a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTestsBase.cs +++ b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTestsBase.cs @@ -1143,7 +1143,8 @@ public void Upsert_JsonData_Update_ComplexObject() var timestamp = new DateTime(2021, 2, 3, 4, 5, 6, DateTimeKind.Utc); var updatedJson = new JsonData { - Child = new ChildObject { Value = "test", Time = timestamp } + Child = new ChildObject { Value = "test", Time = timestamp }, + Poco = new ChildObject { Value = "test", Time = timestamp } }; dbContext.JsonDatas.Upsert(updatedJson) @@ -1151,6 +1152,8 @@ public void Upsert_JsonData_Update_ComplexObject() dbContext.JsonDatas.OrderBy(c => c.ID).Should().SatisfyRespectively( j => j.Child.Time.Should().Be(timestamp)); + dbContext.JsonDatas.OrderBy(c => c.ID).Should().SatisfyRespectively( + j => j.Poco.Time.Should().Be(timestamp)); } [Fact] diff --git a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTests_Postgres.cs b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTests_Postgres.cs index ee2f852..d62e907 100644 --- a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTests_Postgres.cs +++ b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/DbTests_Postgres.cs @@ -23,9 +23,9 @@ protected override IContainer BuildContainer() protected override void ConfigureContextOptions(DbContextOptionsBuilder builder) { var connectionString = (TestContainer as IDatabaseContainer)?.GetConnectionString() - ?? (BuildEnvironment.IsGitHub ? "Server=localhost;Port=5432;Database=testuser;Username=postgres;Password=root" : null); + ?? (BuildEnvironment.IsGitHub ? "Server=localhost;Port=54320;Database=testuser;Username=postgres;Password=postgres" : null); builder.UseNpgsql(new NpgsqlDataSourceBuilder(connectionString) - .EnableDynamicJsonMappings() + .EnableDynamicJson() .Build()); } } diff --git a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests.csproj b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests.csproj index 4f1d494..0d995f8 100644 --- a/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests.csproj +++ b/test/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests/FlexLabs.EntityFrameworkCore.Upsert.IntegrationTests.csproj @@ -18,7 +18,7 @@ - + all