diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 118ed0a7..af8e2240 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools":{ "csharpasyncgenerator.tool": { - "version": "0.21.1", + "version": "0.22.0", "commands": [ "async-generator" ] diff --git a/.github/workflows/GenerateAsyncCode.yml b/.github/workflows/GenerateAsyncCode.yml index c705a569..597f0ec3 100644 --- a/.github/workflows/GenerateAsyncCode.yml +++ b/.github/workflows/GenerateAsyncCode.yml @@ -21,7 +21,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Generate Async code run: | diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 2785099b..d3bf51d5 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -67,7 +67,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Compile and run tests - run: dotnet test Src\\Envers.sln -c Release -f net6.0 \ No newline at end of file + run: dotnet test Src\\Envers.sln -c Release -f net8.0 \ No newline at end of file diff --git a/Src/AsyncGenerator.yml b/Src/AsyncGenerator.yml index ec2db593..1431323d 100644 --- a/Src/AsyncGenerator.yml +++ b/Src/AsyncGenerator.yml @@ -1,6 +1,6 @@ projects: - filePath: NHibernate.Envers/NHibernate.Envers.csproj - targetFramework: netcoreapp2.0 + targetFramework: net8.0 concurrentRun: true applyChanges: true analyzation: @@ -41,7 +41,7 @@ projects: - type: AsyncGenerator.Core.Plugins.EmptyRegionRemover assemblyName: AsyncGenerator.Core - filePath: NHibernate.Envers.Tests/NHibernate.Envers.Tests.csproj - targetFramework: net6.0 + targetFramework: net8.0 concurrentRun: true applyChanges: true analyzation: diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/AuditReader/AuditReaderAPITest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/AuditReader/AuditReaderAPITest.cs index d2d22396..d60374c0 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/AuditReader/AuditReaderAPITest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/AuditReader/AuditReaderAPITest.cs @@ -28,5 +28,17 @@ public async Task ShouldAuditAsync() (await (AuditReader().GetRevisionsAsync(typeof(AuditedTestEntity),1)).ConfigureAwait(false)) .Should().Have.SameSequenceAs(1, 2); } + + [Test] + public void ShouldNotAuditAsync() + { + AuditReader().IsEntityClassAudited(typeof(NotAuditedTestEntity)) + .Should().Be.False(); + AuditReader().IsEntityNameAudited(typeof(NotAuditedTestEntity).FullName) + .Should().Be.False(); + + Assert.ThrowsAsync(() => + AuditReader().GetRevisionsAsync(typeof(NotAuditedTestEntity), 1)); + } } } \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/Basic/NonVersionedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/Basic/NonVersionedTest.cs new file mode 100644 index 00000000..5518e0e3 --- /dev/null +++ b/Src/NHibernate.Envers.Tests/Async/Integration/Basic/NonVersionedTest.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by AsyncGenerator. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +using NHibernate.Envers.Exceptions; +using NUnit.Framework; + +namespace NHibernate.Envers.Tests.Integration.Basic +{ + using System.Threading.Tasks; + public partial class NonVersionedTest : TestBase + { + + [Test] + public void VerifyRevisionCountAsync() + { + Assert.ThrowsAsync(() => + AuditReader().GetRevisionsAsync(typeof(BasicTestEntity3),id1) + ); + } + + [Test] + public void VerifyHistoryAsync() + { + Assert.ThrowsAsync(() => + AuditReader().FindAsync(id1, 1) + ); + } + } +} \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/Basic/OutsideTransactionTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/Basic/OutsideTransactionTest.cs index af6d2ff1..b5de426f 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/Basic/OutsideTransactionTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/Basic/OutsideTransactionTest.cs @@ -22,6 +22,18 @@ namespace NHibernate.Envers.Tests.Integration.Basic public partial class OutsideTransactionTest : TestBase { + [Test] + public void ShouldThrowIfInsertOutsideActiveTransactionAsync() + { + // Illegal insertion of entity outside of active transaction. + var entity = new StrTestEntity {Str = "data"}; + Assert.ThrowsAsync(async () => + { + await (Session.SaveAsync(entity)).ConfigureAwait(false); + await (Session.FlushAsync()).ConfigureAwait(false); + }); + } + [Test] public async Task ShouldThrowIfUpdateOutsideActiveTransactionAsync() { @@ -33,9 +45,9 @@ public async Task ShouldThrowIfUpdateOutsideActiveTransactionAsync() } // Illegal modification of entity state outside of active transaction. entity.Str = "modified data"; - Assert.Throws(() => { - Session.Update(entity); - Session.Flush(); + Assert.ThrowsAsync(async () => { + await (Session.UpdateAsync(entity)).ConfigureAwait(false); + await (Session.FlushAsync()).ConfigureAwait(false); }); } @@ -49,10 +61,10 @@ public async Task ShouldThrowIfDeleteOutsideActiveTransactionAsync() await (tx.CommitAsync()).ConfigureAwait(false); } // Illegal modification of entity state outside of active transaction. - Assert.Throws(() => + Assert.ThrowsAsync(async () => { - Session.Delete(entity); - Session.Flush(); + await (Session.DeleteAsync(entity)).ConfigureAwait(false); + await (Session.FlushAsync()).ConfigureAwait(false); }); } @@ -69,10 +81,10 @@ public async Task ShouldThrowIfCollectionUpdateOutsideActiveTransactionAsync() } // Illegal collection update outside of active transaction. person.Names.Remove(name); - Assert.Throws(() => + Assert.ThrowsAsync(async () => { - Session.Update(person); - Session.Flush(); + await (Session.UpdateAsync(person)).ConfigureAwait(false); + await (Session.FlushAsync()).ConfigureAwait(false); }); } @@ -89,10 +101,10 @@ public async Task ShouldThrowIfCollectionRemovalOutsideActiveTransactionAsync() } // Illegal collection update outside of active transaction. person.Names = null; - Assert.Throws(() => + Assert.ThrowsAsync(async () => { - Session.Update(person); - Session.Flush(); + await (Session.UpdateAsync(person)).ConfigureAwait(false); + await (Session.FlushAsync()).ConfigureAwait(false); }); } } diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/AllAudited/AbstractAllAuditedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/AllAudited/AbstractAllAuditedTest.cs index 33114369..798cafdb 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/AllAudited/AbstractAllAuditedTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/AllAudited/AbstractAllAuditedTest.cs @@ -51,8 +51,8 @@ public async Task VerifyRetrieveNonAuditedAsync() si.Data.Should().Be.EqualTo(nai.Data); - Assert.Throws(() => - AuditReader().Find(naiId, 1)); + Assert.ThrowsAsync(() => + AuditReader().FindAsync(naiId, 1)); (await (AuditReader().FindAsync(naiId, 1)).ConfigureAwait(false)) .Should().Be.Null(); diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited/AbstractAllAuditedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited/AbstractAllAuditedTest.cs index b629a271..975580dc 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited/AbstractAllAuditedTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited/AbstractAllAuditedTest.cs @@ -42,8 +42,8 @@ public async Task VerifyRetrieveNonAuditedAsync() si.Data.Should().Be.EqualTo(nai.Data); - Assert.Throws(() => - AuditReader().Find(naiId, 1)); + Assert.ThrowsAsync(() => + AuditReader().FindAsync(naiId, 1)); (await (AuditReader().FindAsync(naiId, 1)).ConfigureAwait(false)) .Should().Be.Null(); diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited2/AbstractAllAuditedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited2/AbstractAllAuditedTest.cs index dc35d499..708532d5 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited2/AbstractAllAuditedTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/Interfaces/Inheritance/PropertiesAudited2/AbstractAllAuditedTest.cs @@ -42,8 +42,8 @@ public async Task VerifyRetrieveNonAuditedAsync() si.Data.Should().Be.EqualTo(nai.Data); - Assert.Throws(() => - AuditReader().Find(naiId, 1)); + Assert.ThrowsAsync(() => + AuditReader().FindAsync(naiId, 1)); (await (AuditReader().FindAsync(naiId, 1)).ConfigureAwait(false)) .Should().Be.Null(); diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs index 46081bb9..aa545467 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs @@ -26,6 +26,13 @@ public async Task VerifyRevisionsCountsForAuditedAsync() .Should().Have.SameSequenceAs(1, 2); } + [Test] + public void VerifyRevisionsCountsForNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().GetRevisionsAsync(typeof (NotAuditedSubclassEntity), id2_1)); + } + [Test] public async Task VerifyHistoryOfAuditedAsync() { @@ -42,5 +49,12 @@ public async Task VerifyHistoryOfAuditedAsync() rev1.Should().Be.EqualTo(ver1); rev2.Should().Be.EqualTo(ver2); } + + [Test] + public void VerifyHistoryOfNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().FindAsync(typeof(NotAuditedSubclassEntity), id2_1, 1)); + } } } \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs index afc887c4..ee91607c 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditAtMethodSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs @@ -26,6 +26,13 @@ public async Task VerifyRevisionsCountsForAuditedAsync() .Should().Have.SameSequenceAs(1, 2); } + [Test] + public void VerifyRevisionsCountsForNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().GetRevisionsAsync(typeof(NotAuditedSubclassEntity), id2_1)); + } + [Test] public async Task VerifyHistoryOfAuditedAsync() { @@ -42,5 +49,12 @@ public async Task VerifyHistoryOfAuditedAsync() rev1.Should().Be.EqualTo(ver1); rev2.Should().Be.EqualTo(ver2); } + + [Test] + public void VerifyHistoryOfNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().FindAsync(typeof(NotAuditedSubclassEntity), id2_1, 1)); + } } } \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs index 21290528..4860497e 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditAllSubclass/MappedSubclassingAllAuditedTest.cs @@ -26,6 +26,13 @@ public async Task VerifyRevisionsCountsForAuditedAsync() .Should().Have.SameSequenceAs(1, 2); } + [Test] + public void VerifyRevisionsCountsForNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().GetRevisionsAsync(typeof(NotAuditedSubclassEntity), id2_1)); + } + [Test] public async Task VerifyHistoryOfAuditedAsync() { @@ -41,5 +48,12 @@ public async Task VerifyHistoryOfAuditedAsync() rev1.Should().Be.EqualTo(ver1); rev2.Should().Be.EqualTo(ver2); } + + [Test] + public void VerifyHistoryOfNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().FindAsync(typeof(NotAuditedSubclassEntity), id2_1, 1)); + } } } \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs index 7356ba34..70da4394 100644 --- a/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/Integration/SuperClass/AuditedAtSuperclassLevel/AuditMethodSubclass/MappedSubclassingMethodAuditedTest.cs @@ -26,6 +26,13 @@ public async Task VerifyRevisionsCountsForAuditedAsync() .Should().Have.SameSequenceAs(1, 2); } + [Test] + public void VerifyRevisionsCountsForNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().GetRevisionsAsync(typeof(NotAuditedSubclassEntity), id2_1)); + } + [Test] public async Task VerifyHistoryOfAuditedAsync() { @@ -41,5 +48,12 @@ public async Task VerifyHistoryOfAuditedAsync() rev1.Should().Be.EqualTo(ver1); rev2.Should().Be.EqualTo(ver2); } + + [Test] + public void VerifyHistoryOfNotAuditedAsync() + { + Assert.ThrowsAsync(() => + AuditReader().FindAsync(typeof(NotAuditedSubclassEntity), id2_1, 1)); + } } } \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Async/NetSpecific/Integration/Query/QueryForNonAuditEntityTest.cs b/Src/NHibernate.Envers.Tests/Async/NetSpecific/Integration/Query/QueryForNonAuditEntityTest.cs new file mode 100644 index 00000000..4234ce20 --- /dev/null +++ b/Src/NHibernate.Envers.Tests/Async/NetSpecific/Integration/Query/QueryForNonAuditEntityTest.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 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.Collections.Generic; +using NHibernate.Envers.Exceptions; +using NUnit.Framework; + +namespace NHibernate.Envers.Tests.NetSpecific.Integration.Query +{ + using System.Threading.Tasks; + public partial class QueryForNonAuditEntityTest : TestBase + { + + [Test] + public void ShouldThrowWhenFindAsync() + { + Assert.ThrowsAsync(() => + AuditReader().FindAsync(1, 1) + ); + } + + } +} \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Async/NetSpecific/Integration/Query/RelationIn/RelationInTest.cs b/Src/NHibernate.Envers.Tests/Async/NetSpecific/Integration/Query/RelationIn/RelationInTest.cs index 908f91e6..6a94e426 100644 --- a/Src/NHibernate.Envers.Tests/Async/NetSpecific/Integration/Query/RelationIn/RelationInTest.cs +++ b/Src/NHibernate.Envers.Tests/Async/NetSpecific/Integration/Query/RelationIn/RelationInTest.cs @@ -29,5 +29,14 @@ public async Task ShouldBeAbleToUseInOnSingleSideAsync() .Add(AuditEntity.Property("Data").Eq("bar")) .ResultsAsync()).ConfigureAwait(false)).Should().Contain(ing); } + + [Test] + public void ShouldThrowUsingInOnCollectionAsync() + { + Assert.ThrowsAsync(() => + AuditReader().CreateQuery().ForRevisionsOf() + .Add(AuditEntity.Property("Reffering").In(new List {ing})) + .ResultsAsync()); + } } } \ No newline at end of file diff --git a/Src/NHibernate.Envers.Tests/Integration/Basic/NonVersionedTest.cs b/Src/NHibernate.Envers.Tests/Integration/Basic/NonVersionedTest.cs index 326387c1..754f0e3f 100644 --- a/Src/NHibernate.Envers.Tests/Integration/Basic/NonVersionedTest.cs +++ b/Src/NHibernate.Envers.Tests/Integration/Basic/NonVersionedTest.cs @@ -3,7 +3,7 @@ namespace NHibernate.Envers.Tests.Integration.Basic { - public class NonVersionedTest : TestBase + public partial class NonVersionedTest : TestBase { private int id1; diff --git a/Src/NHibernate.Envers.Tests/NHibernate.Envers.Tests.csproj b/Src/NHibernate.Envers.Tests/NHibernate.Envers.Tests.csproj index 22d06ccd..362e6253 100644 --- a/Src/NHibernate.Envers.Tests/NHibernate.Envers.Tests.csproj +++ b/Src/NHibernate.Envers.Tests/NHibernate.Envers.Tests.csproj @@ -1,8 +1,9 @@ - net48;net6.0 + net48;net8.0 true + true @@ -20,7 +21,7 @@ - + @@ -28,7 +29,7 @@ - + diff --git a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Query/QueryForNonAuditEntityTest.cs b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Query/QueryForNonAuditEntityTest.cs index 0d15678e..8211155d 100644 --- a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Query/QueryForNonAuditEntityTest.cs +++ b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Query/QueryForNonAuditEntityTest.cs @@ -4,7 +4,7 @@ namespace NHibernate.Envers.Tests.NetSpecific.Integration.Query { - public class QueryForNonAuditEntityTest : TestBase + public partial class QueryForNonAuditEntityTest : TestBase { public QueryForNonAuditEntityTest(AuditStrategyForTest strategyType) : base(strategyType) { diff --git a/Src/NHibernate.Envers/NHibernate.Envers.csproj b/Src/NHibernate.Envers/NHibernate.Envers.csproj index 9a0756a6..9ae2d911 100644 --- a/Src/NHibernate.Envers/NHibernate.Envers.csproj +++ b/Src/NHibernate.Envers/NHibernate.Envers.csproj @@ -4,7 +4,7 @@ NHibernate.Envers Roger Kratz, NHibernate community, Hibernate community Audit trail integrated with NHibernate. - netstandard2.0;net461;netcoreapp2.0 + netstandard2.0;net461;net8.0 Audit, NHibernate, Envers, History, Auditing https://github.com/nhibernate/nhibernate-envers Envers.snk