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()); - } - } - } -}