From 8ee63c6fa2a63179dee240a9cdddad953fe04aeb Mon Sep 17 00:00:00 2001
From: Sahin Kasap <39086573+sahin52@users.noreply.github.com>
Date: Mon, 21 Jul 2025 11:26:31 +0200
Subject: [PATCH 1/4] Reproduce many-to-many filter not working issue
---
.../ManyToManyWithFilter/Fixture.cs | 104 ++++++++++++++++++
.../ManyToManyWithFilter/BaseClass.cs | 10 ++
.../ManyToManyWithFilter/Department.cs | 12 ++
.../ManyToManyWithFilter/Employee.cs | 9 ++
.../ManyToManyWithFilter/Fixture.cs | 93 ++++++++++++++++
.../ManyToManyWithFilter/Mappings.hbm.xml | 31 ++++++
6 files changed, 259 insertions(+)
create mode 100644 src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Mappings.hbm.xml
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
new file mode 100644
index 0000000000..e816001bd7
--- /dev/null
+++ b/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
@@ -0,0 +1,104 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by AsyncGenerator.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+using System;
+using NUnit.Framework;
+using System.Linq;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ using System.Threading.Tasks;
+ [TestFixture]
+ public class FixtureAsync : BugTestCase
+ {
+ private Department _department1;
+ private Department _department2;
+ private Employee _employee1;
+ private Employee _employee2;
+
+ protected override void OnSetUp()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1 = new Department();
+ _department2 = new Department();
+
+ _employee1 = new Employee();
+ _employee2 = new Employee();
+
+ _employee1.Departments.Add(_department1);
+ _employee2.Departments.Add(_department1);
+ _employee2.Departments.Add(_department2);
+
+ session.Save(_department1);
+ session.Save(_department2);
+ session.Save(_employee1);
+ session.Save(_employee2);
+
+ tx.Commit();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ session.Delete(_employee1);
+ session.Delete(_employee2);
+ session.Delete(_department1);
+ session.Delete(_department2);
+
+ tx.Commit();
+ }
+ }
+
+ [Theory]
+ public async Task Querying_Employees_Departments_ManyToMany_With_FilterAsync(bool enableFilter)
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1.DeletedAt = DateTime.UtcNow;
+ _department2.DeletedAt = DateTime.UtcNow;
+
+ await (session.UpdateAsync(_department1));
+ await (session.UpdateAsync(_department2));
+
+ await (tx.CommitAsync());
+ }
+
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ if (enableFilter)
+ session.EnableFilter("NotDeletedFilter");
+
+ var departments = session.Query();
+ var employee2 = await (session.GetAsync(_employee2.Id));
+
+ if (enableFilter)
+ {
+ Assert.That(departments, Is.Empty);
+ Assert.That(employee2.Departments, Is.Empty);
+ }
+ else
+ {
+ Assert.That(departments.Count, Is.EqualTo(2));
+ Assert.That(employee2.Departments, Has.Count.EqualTo(2));
+ }
+
+
+ await (tx.CommitAsync());
+ }
+ }
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
new file mode 100644
index 0000000000..57c64e62e7
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ public class BaseClass
+ {
+ public virtual Guid Id { get; set; }
+
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
new file mode 100644
index 0000000000..d68a1db66f
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ public class Department : BaseClass
+ {
+ public virtual ISet Employees { get; set; } = new HashSet();
+
+ public virtual DateTime? DeletedAt { get; set; }
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
new file mode 100644
index 0000000000..658b0e152d
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
@@ -0,0 +1,9 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ public class Employee : BaseClass
+ {
+ public virtual ISet Departments { get; set; } = new HashSet();
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
new file mode 100644
index 0000000000..6f953f8b8c
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
@@ -0,0 +1,93 @@
+using System;
+using NUnit.Framework;
+using System.Linq;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ private Department _department1;
+ private Department _department2;
+ private Employee _employee1;
+ private Employee _employee2;
+
+ protected override void OnSetUp()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1 = new Department();
+ _department2 = new Department();
+
+ _employee1 = new Employee();
+ _employee2 = new Employee();
+
+ _employee1.Departments.Add(_department1);
+ _employee2.Departments.Add(_department1);
+ _employee2.Departments.Add(_department2);
+
+ session.Save(_department1);
+ session.Save(_department2);
+ session.Save(_employee1);
+ session.Save(_employee2);
+
+ tx.Commit();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ session.Delete(_employee1);
+ session.Delete(_employee2);
+ session.Delete(_department1);
+ session.Delete(_department2);
+
+ tx.Commit();
+ }
+ }
+
+ [Theory]
+ public void Querying_Employees_Departments_ManyToMany_With_Filter(bool enableFilter)
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1.DeletedAt = DateTime.UtcNow;
+ _department2.DeletedAt = DateTime.UtcNow;
+
+ session.Update(_department1);
+ session.Update(_department2);
+
+ tx.Commit();
+ }
+
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ if (enableFilter)
+ session.EnableFilter("NotDeletedFilter");
+
+ var departments = session.Query();
+ var employee2 = session.Get(_employee2.Id);
+
+ if (enableFilter)
+ {
+ Assert.That(departments, Is.Empty);
+ Assert.That(employee2.Departments, Is.Empty);
+ }
+ else
+ {
+ Assert.That(departments.Count, Is.EqualTo(2));
+ Assert.That(employee2.Departments, Has.Count.EqualTo(2));
+ }
+
+
+ tx.Commit();
+ }
+ }
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Mappings.hbm.xml b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Mappings.hbm.xml
new file mode 100644
index 0000000000..513787efcb
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Mappings.hbm.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 22fe96c86414000c7006929c745b8f844eb0390c Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Mon, 21 Jul 2025 09:30:56 +0000
Subject: [PATCH 2/4] Generate async files
---
.../ManyToManyWithFilter/Fixture.cs | 208 +++++++++---------
.../ManyToManyWithFilter/BaseClass.cs | 20 +-
.../ManyToManyWithFilter/Department.cs | 24 +-
.../ManyToManyWithFilter/Employee.cs | 18 +-
.../ManyToManyWithFilter/Fixture.cs | 186 ++++++++--------
5 files changed, 228 insertions(+), 228 deletions(-)
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
index e816001bd7..de1ef49a60 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
@@ -1,104 +1,104 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by AsyncGenerator.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-
-using System;
-using NUnit.Framework;
-using System.Linq;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- using System.Threading.Tasks;
- [TestFixture]
- public class FixtureAsync : BugTestCase
- {
- private Department _department1;
- private Department _department2;
- private Employee _employee1;
- private Employee _employee2;
-
- protected override void OnSetUp()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1 = new Department();
- _department2 = new Department();
-
- _employee1 = new Employee();
- _employee2 = new Employee();
-
- _employee1.Departments.Add(_department1);
- _employee2.Departments.Add(_department1);
- _employee2.Departments.Add(_department2);
-
- session.Save(_department1);
- session.Save(_department2);
- session.Save(_employee1);
- session.Save(_employee2);
-
- tx.Commit();
- }
- }
-
- protected override void OnTearDown()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- session.Delete(_employee1);
- session.Delete(_employee2);
- session.Delete(_department1);
- session.Delete(_department2);
-
- tx.Commit();
- }
- }
-
- [Theory]
- public async Task Querying_Employees_Departments_ManyToMany_With_FilterAsync(bool enableFilter)
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1.DeletedAt = DateTime.UtcNow;
- _department2.DeletedAt = DateTime.UtcNow;
-
- await (session.UpdateAsync(_department1));
- await (session.UpdateAsync(_department2));
-
- await (tx.CommitAsync());
- }
-
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- if (enableFilter)
- session.EnableFilter("NotDeletedFilter");
-
- var departments = session.Query();
- var employee2 = await (session.GetAsync(_employee2.Id));
-
- if (enableFilter)
- {
- Assert.That(departments, Is.Empty);
- Assert.That(employee2.Departments, Is.Empty);
- }
- else
- {
- Assert.That(departments.Count, Is.EqualTo(2));
- Assert.That(employee2.Departments, Has.Count.EqualTo(2));
- }
-
-
- await (tx.CommitAsync());
- }
- }
- }
-}
+//------------------------------------------------------------------------------
+//
+// This code was generated by AsyncGenerator.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+using System;
+using NUnit.Framework;
+using System.Linq;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ using System.Threading.Tasks;
+ [TestFixture]
+ public class FixtureAsync : BugTestCase
+ {
+ private Department _department1;
+ private Department _department2;
+ private Employee _employee1;
+ private Employee _employee2;
+
+ protected override void OnSetUp()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1 = new Department();
+ _department2 = new Department();
+
+ _employee1 = new Employee();
+ _employee2 = new Employee();
+
+ _employee1.Departments.Add(_department1);
+ _employee2.Departments.Add(_department1);
+ _employee2.Departments.Add(_department2);
+
+ session.Save(_department1);
+ session.Save(_department2);
+ session.Save(_employee1);
+ session.Save(_employee2);
+
+ tx.Commit();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ session.Delete(_employee1);
+ session.Delete(_employee2);
+ session.Delete(_department1);
+ session.Delete(_department2);
+
+ tx.Commit();
+ }
+ }
+
+ [Theory]
+ public async Task Querying_Employees_Departments_ManyToMany_With_FilterAsync(bool enableFilter)
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1.DeletedAt = DateTime.UtcNow;
+ _department2.DeletedAt = DateTime.UtcNow;
+
+ await (session.UpdateAsync(_department1));
+ await (session.UpdateAsync(_department2));
+
+ await (tx.CommitAsync());
+ }
+
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ if (enableFilter)
+ session.EnableFilter("NotDeletedFilter");
+
+ var departments = session.Query();
+ var employee2 = await (session.GetAsync(_employee2.Id));
+
+ if (enableFilter)
+ {
+ Assert.That(departments, Is.Empty);
+ Assert.That(employee2.Departments, Is.Empty);
+ }
+ else
+ {
+ Assert.That(departments.Count, Is.EqualTo(2));
+ Assert.That(employee2.Departments, Has.Count.EqualTo(2));
+ }
+
+
+ await (tx.CommitAsync());
+ }
+ }
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
index 57c64e62e7..1e50eedc56 100644
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
@@ -1,10 +1,10 @@
-using System;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- public class BaseClass
- {
- public virtual Guid Id { get; set; }
-
- }
-}
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ public class BaseClass
+ {
+ public virtual Guid Id { get; set; }
+
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
index d68a1db66f..4cb4139b9f 100644
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
@@ -1,12 +1,12 @@
-using System;
-using System.Collections.Generic;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- public class Department : BaseClass
- {
- public virtual ISet Employees { get; set; } = new HashSet();
-
- public virtual DateTime? DeletedAt { get; set; }
- }
-}
+using System;
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ public class Department : BaseClass
+ {
+ public virtual ISet Employees { get; set; } = new HashSet();
+
+ public virtual DateTime? DeletedAt { get; set; }
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
index 658b0e152d..a1425662a4 100644
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
@@ -1,9 +1,9 @@
-using System.Collections.Generic;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- public class Employee : BaseClass
- {
- public virtual ISet Departments { get; set; } = new HashSet();
- }
-}
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ public class Employee : BaseClass
+ {
+ public virtual ISet Departments { get; set; } = new HashSet();
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
index 6f953f8b8c..5cd988c197 100644
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
@@ -1,93 +1,93 @@
-using System;
-using NUnit.Framework;
-using System.Linq;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- [TestFixture]
- public class Fixture : BugTestCase
- {
- private Department _department1;
- private Department _department2;
- private Employee _employee1;
- private Employee _employee2;
-
- protected override void OnSetUp()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1 = new Department();
- _department2 = new Department();
-
- _employee1 = new Employee();
- _employee2 = new Employee();
-
- _employee1.Departments.Add(_department1);
- _employee2.Departments.Add(_department1);
- _employee2.Departments.Add(_department2);
-
- session.Save(_department1);
- session.Save(_department2);
- session.Save(_employee1);
- session.Save(_employee2);
-
- tx.Commit();
- }
- }
-
- protected override void OnTearDown()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- session.Delete(_employee1);
- session.Delete(_employee2);
- session.Delete(_department1);
- session.Delete(_department2);
-
- tx.Commit();
- }
- }
-
- [Theory]
- public void Querying_Employees_Departments_ManyToMany_With_Filter(bool enableFilter)
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1.DeletedAt = DateTime.UtcNow;
- _department2.DeletedAt = DateTime.UtcNow;
-
- session.Update(_department1);
- session.Update(_department2);
-
- tx.Commit();
- }
-
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- if (enableFilter)
- session.EnableFilter("NotDeletedFilter");
-
- var departments = session.Query();
- var employee2 = session.Get(_employee2.Id);
-
- if (enableFilter)
- {
- Assert.That(departments, Is.Empty);
- Assert.That(employee2.Departments, Is.Empty);
- }
- else
- {
- Assert.That(departments.Count, Is.EqualTo(2));
- Assert.That(employee2.Departments, Has.Count.EqualTo(2));
- }
-
-
- tx.Commit();
- }
- }
- }
-}
+using System;
+using NUnit.Framework;
+using System.Linq;
+
+namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ private Department _department1;
+ private Department _department2;
+ private Employee _employee1;
+ private Employee _employee2;
+
+ protected override void OnSetUp()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1 = new Department();
+ _department2 = new Department();
+
+ _employee1 = new Employee();
+ _employee2 = new Employee();
+
+ _employee1.Departments.Add(_department1);
+ _employee2.Departments.Add(_department1);
+ _employee2.Departments.Add(_department2);
+
+ session.Save(_department1);
+ session.Save(_department2);
+ session.Save(_employee1);
+ session.Save(_employee2);
+
+ tx.Commit();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ session.Delete(_employee1);
+ session.Delete(_employee2);
+ session.Delete(_department1);
+ session.Delete(_department2);
+
+ tx.Commit();
+ }
+ }
+
+ [Theory]
+ public void Querying_Employees_Departments_ManyToMany_With_Filter(bool enableFilter)
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1.DeletedAt = DateTime.UtcNow;
+ _department2.DeletedAt = DateTime.UtcNow;
+
+ session.Update(_department1);
+ session.Update(_department2);
+
+ tx.Commit();
+ }
+
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ if (enableFilter)
+ session.EnableFilter("NotDeletedFilter");
+
+ var departments = session.Query();
+ var employee2 = session.Get(_employee2.Id);
+
+ if (enableFilter)
+ {
+ Assert.That(departments, Is.Empty);
+ Assert.That(employee2.Departments, Is.Empty);
+ }
+ else
+ {
+ Assert.That(departments.Count, Is.EqualTo(2));
+ Assert.That(employee2.Departments, Has.Count.EqualTo(2));
+ }
+
+
+ tx.Commit();
+ }
+ }
+ }
+}
From ee1921ac5ecd241b8ac61fd4f9f17bcaf00c072e Mon Sep 17 00:00:00 2001
From: Alex Zaytsev
Date: Tue, 23 Sep 2025 12:02:21 +1000
Subject: [PATCH 3/4] Modernize tests & fix namespace
---
.../ManyToManyWithFilter/Fixture.cs | 1 +
.../NHSpecificTest/GH3652/BaseClass.cs | 8 ++
.../NHSpecificTest/GH3652/Department.cs | 11 +++
.../NHSpecificTest/GH3652/Employee.cs | 8 ++
.../NHSpecificTest/GH3652/Fixture.cs | 88 ++++++++++++++++++
.../Mappings.hbm.xml | 62 ++++++-------
.../ManyToManyWithFilter/BaseClass.cs | 10 --
.../ManyToManyWithFilter/Department.cs | 12 ---
.../ManyToManyWithFilter/Employee.cs | 9 --
.../ManyToManyWithFilter/Fixture.cs | 93 -------------------
10 files changed, 147 insertions(+), 155 deletions(-)
create mode 100644 src/NHibernate.Test/NHSpecificTest/GH3652/BaseClass.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/GH3652/Department.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/GH3652/Employee.cs
create mode 100644 src/NHibernate.Test/NHSpecificTest/GH3652/Fixture.cs
rename src/NHibernate.Test/NHSpecificTest/{ManyToManyWithFilter => GH3652}/Mappings.hbm.xml (90%)
delete mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
delete mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
delete mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
delete mode 100644 src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
index de1ef49a60..c218810459 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
@@ -11,6 +11,7 @@
using System;
using NUnit.Framework;
using System.Linq;
+using NHibernate.Test.NHSpecificTest.GH3652;
namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
{
diff --git a/src/NHibernate.Test/NHSpecificTest/GH3652/BaseClass.cs b/src/NHibernate.Test/NHSpecificTest/GH3652/BaseClass.cs
new file mode 100644
index 0000000000..5657e8e155
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/GH3652/BaseClass.cs
@@ -0,0 +1,8 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.GH3652;
+
+public class BaseClass
+{
+ public virtual Guid Id { get; set; }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/GH3652/Department.cs b/src/NHibernate.Test/NHSpecificTest/GH3652/Department.cs
new file mode 100644
index 0000000000..c8e368918e
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/GH3652/Department.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.GH3652;
+
+public class Department : BaseClass
+{
+ public virtual ISet Employees { get; set; } = new HashSet();
+
+ public virtual DateTime? DeletedAt { get; set; }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/GH3652/Employee.cs b/src/NHibernate.Test/NHSpecificTest/GH3652/Employee.cs
new file mode 100644
index 0000000000..8e0c39cd66
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/GH3652/Employee.cs
@@ -0,0 +1,8 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.GH3652;
+
+public class Employee : BaseClass
+{
+ public virtual ISet Departments { get; set; } = new HashSet();
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/GH3652/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/GH3652/Fixture.cs
new file mode 100644
index 0000000000..c3dd39fb28
--- /dev/null
+++ b/src/NHibernate.Test/NHSpecificTest/GH3652/Fixture.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Linq;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.GH3652;
+
+[TestFixture]
+public class Fixture : BugTestCase
+{
+ private Department _department1;
+ private Department _department2;
+ private Employee _employee1;
+ private Employee _employee2;
+
+ protected override void OnSetUp()
+ {
+ using var session = OpenSession();
+ using var tx = session.BeginTransaction();
+ _department1 = new Department();
+ _department2 = new Department();
+
+ _employee1 = new Employee();
+ _employee2 = new Employee();
+
+ _employee1.Departments.Add(_department1);
+ _employee2.Departments.Add(_department1);
+ _employee2.Departments.Add(_department2);
+
+ session.Save(_department1);
+ session.Save(_department2);
+ session.Save(_employee1);
+ session.Save(_employee2);
+
+ tx.Commit();
+ }
+
+ protected override void OnTearDown()
+ {
+ using var session = OpenSession();
+ using var tx = session.BeginTransaction();
+ session.Delete(_employee1);
+ session.Delete(_employee2);
+ session.Delete(_department1);
+ session.Delete(_department2);
+
+ tx.Commit();
+ }
+
+ [Theory]
+ public void Querying_Employees_Departments_ManyToMany_With_Filter(bool enableFilter)
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1.DeletedAt = DateTime.UtcNow;
+ _department2.DeletedAt = DateTime.UtcNow;
+
+ session.Update(_department1);
+ session.Update(_department2);
+
+ tx.Commit();
+ }
+
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ if (enableFilter)
+ session.EnableFilter("NotDeletedFilter");
+
+ var departments = session.Query();
+ var employee2 = session.Get(_employee2.Id);
+
+ if (enableFilter)
+ {
+ Assert.That(departments, Is.Empty);
+ Assert.That(employee2.Departments, Is.Empty);
+ }
+ else
+ {
+ Assert.That(departments.Count, Is.EqualTo(2));
+ Assert.That(employee2.Departments, Has.Count.EqualTo(2));
+ }
+
+
+ tx.Commit();
+ }
+ }
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Mappings.hbm.xml b/src/NHibernate.Test/NHSpecificTest/GH3652/Mappings.hbm.xml
similarity index 90%
rename from src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Mappings.hbm.xml
rename to src/NHibernate.Test/NHSpecificTest/GH3652/Mappings.hbm.xml
index 513787efcb..cfdc1b332e 100644
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Mappings.hbm.xml
+++ b/src/NHibernate.Test/NHSpecificTest/GH3652/Mappings.hbm.xml
@@ -1,31 +1,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
deleted file mode 100644
index 1e50eedc56..0000000000
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/BaseClass.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- public class BaseClass
- {
- public virtual Guid Id { get; set; }
-
- }
-}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
deleted file mode 100644
index 4cb4139b9f..0000000000
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Department.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- public class Department : BaseClass
- {
- public virtual ISet Employees { get; set; } = new HashSet();
-
- public virtual DateTime? DeletedAt { get; set; }
- }
-}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
deleted file mode 100644
index a1425662a4..0000000000
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Employee.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System.Collections.Generic;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- public class Employee : BaseClass
- {
- public virtual ISet Departments { get; set; } = new HashSet();
- }
-}
diff --git a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
deleted file mode 100644
index 5cd988c197..0000000000
--- a/src/NHibernate.Test/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-using System;
-using NUnit.Framework;
-using System.Linq;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- [TestFixture]
- public class Fixture : BugTestCase
- {
- private Department _department1;
- private Department _department2;
- private Employee _employee1;
- private Employee _employee2;
-
- protected override void OnSetUp()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1 = new Department();
- _department2 = new Department();
-
- _employee1 = new Employee();
- _employee2 = new Employee();
-
- _employee1.Departments.Add(_department1);
- _employee2.Departments.Add(_department1);
- _employee2.Departments.Add(_department2);
-
- session.Save(_department1);
- session.Save(_department2);
- session.Save(_employee1);
- session.Save(_employee2);
-
- tx.Commit();
- }
- }
-
- protected override void OnTearDown()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- session.Delete(_employee1);
- session.Delete(_employee2);
- session.Delete(_department1);
- session.Delete(_department2);
-
- tx.Commit();
- }
- }
-
- [Theory]
- public void Querying_Employees_Departments_ManyToMany_With_Filter(bool enableFilter)
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1.DeletedAt = DateTime.UtcNow;
- _department2.DeletedAt = DateTime.UtcNow;
-
- session.Update(_department1);
- session.Update(_department2);
-
- tx.Commit();
- }
-
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- if (enableFilter)
- session.EnableFilter("NotDeletedFilter");
-
- var departments = session.Query();
- var employee2 = session.Get(_employee2.Id);
-
- if (enableFilter)
- {
- Assert.That(departments, Is.Empty);
- Assert.That(employee2.Departments, Is.Empty);
- }
- else
- {
- Assert.That(departments.Count, Is.EqualTo(2));
- Assert.That(employee2.Departments, Has.Count.EqualTo(2));
- }
-
-
- tx.Commit();
- }
- }
- }
-}
From 738c1db24662f4b9c3f9614591bf5dae74a977c2 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Tue, 23 Sep 2025 02:06:26 +0000
Subject: [PATCH 4/4] Generate async files
---
.../Async/NHSpecificTest/GH3652/Fixture.cs | 99 +++++++++++++++++
.../ManyToManyWithFilter/Fixture.cs | 105 ------------------
2 files changed, 99 insertions(+), 105 deletions(-)
create mode 100644 src/NHibernate.Test/Async/NHSpecificTest/GH3652/Fixture.cs
delete mode 100644 src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/GH3652/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/GH3652/Fixture.cs
new file mode 100644
index 0000000000..91db60684d
--- /dev/null
+++ b/src/NHibernate.Test/Async/NHSpecificTest/GH3652/Fixture.cs
@@ -0,0 +1,99 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by AsyncGenerator.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+using System;
+using System.Linq;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.GH3652;
+using System.Threading.Tasks;
+
+[TestFixture]
+public class FixtureAsync : BugTestCase
+{
+ private Department _department1;
+ private Department _department2;
+ private Employee _employee1;
+ private Employee _employee2;
+
+ protected override void OnSetUp()
+ {
+ using var session = OpenSession();
+ using var tx = session.BeginTransaction();
+ _department1 = new Department();
+ _department2 = new Department();
+
+ _employee1 = new Employee();
+ _employee2 = new Employee();
+
+ _employee1.Departments.Add(_department1);
+ _employee2.Departments.Add(_department1);
+ _employee2.Departments.Add(_department2);
+
+ session.Save(_department1);
+ session.Save(_department2);
+ session.Save(_employee1);
+ session.Save(_employee2);
+
+ tx.Commit();
+ }
+
+ protected override void OnTearDown()
+ {
+ using var session = OpenSession();
+ using var tx = session.BeginTransaction();
+ session.Delete(_employee1);
+ session.Delete(_employee2);
+ session.Delete(_department1);
+ session.Delete(_department2);
+
+ tx.Commit();
+ }
+
+ [Theory]
+ public async Task Querying_Employees_Departments_ManyToMany_With_FilterAsync(bool enableFilter)
+ {
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ _department1.DeletedAt = DateTime.UtcNow;
+ _department2.DeletedAt = DateTime.UtcNow;
+
+ await (session.UpdateAsync(_department1));
+ await (session.UpdateAsync(_department2));
+
+ await (tx.CommitAsync());
+ }
+
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ if (enableFilter)
+ session.EnableFilter("NotDeletedFilter");
+
+ var departments = session.Query();
+ var employee2 = await (session.GetAsync(_employee2.Id));
+
+ if (enableFilter)
+ {
+ Assert.That(departments, Is.Empty);
+ Assert.That(employee2.Departments, Is.Empty);
+ }
+ else
+ {
+ Assert.That(departments.Count, Is.EqualTo(2));
+ Assert.That(employee2.Departments, Has.Count.EqualTo(2));
+ }
+
+
+ await (tx.CommitAsync());
+ }
+ }
+}
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
deleted file mode 100644
index c218810459..0000000000
--- a/src/NHibernate.Test/Async/NHSpecificTest/ManyToManyWithFilter/Fixture.cs
+++ /dev/null
@@ -1,105 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by AsyncGenerator.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-
-using System;
-using NUnit.Framework;
-using System.Linq;
-using NHibernate.Test.NHSpecificTest.GH3652;
-
-namespace NHibernate.Test.NHSpecificTest.ManyToManyWithFilter
-{
- using System.Threading.Tasks;
- [TestFixture]
- public class FixtureAsync : BugTestCase
- {
- private Department _department1;
- private Department _department2;
- private Employee _employee1;
- private Employee _employee2;
-
- protected override void OnSetUp()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1 = new Department();
- _department2 = new Department();
-
- _employee1 = new Employee();
- _employee2 = new Employee();
-
- _employee1.Departments.Add(_department1);
- _employee2.Departments.Add(_department1);
- _employee2.Departments.Add(_department2);
-
- session.Save(_department1);
- session.Save(_department2);
- session.Save(_employee1);
- session.Save(_employee2);
-
- tx.Commit();
- }
- }
-
- protected override void OnTearDown()
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- session.Delete(_employee1);
- session.Delete(_employee2);
- session.Delete(_department1);
- session.Delete(_department2);
-
- tx.Commit();
- }
- }
-
- [Theory]
- public async Task Querying_Employees_Departments_ManyToMany_With_FilterAsync(bool enableFilter)
- {
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- _department1.DeletedAt = DateTime.UtcNow;
- _department2.DeletedAt = DateTime.UtcNow;
-
- await (session.UpdateAsync(_department1));
- await (session.UpdateAsync(_department2));
-
- await (tx.CommitAsync());
- }
-
- using (var session = OpenSession())
- using (var tx = session.BeginTransaction())
- {
- if (enableFilter)
- session.EnableFilter("NotDeletedFilter");
-
- var departments = session.Query();
- var employee2 = await (session.GetAsync(_employee2.Id));
-
- if (enableFilter)
- {
- Assert.That(departments, Is.Empty);
- Assert.That(employee2.Departments, Is.Empty);
- }
- else
- {
- Assert.That(departments.Count, Is.EqualTo(2));
- Assert.That(employee2.Departments, Has.Count.EqualTo(2));
- }
-
-
- await (tx.CommitAsync());
- }
- }
- }
-}