From cb6c8b25fff86527aabb783dbdf6c3cddc698da4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 22:29:13 +0000 Subject: [PATCH 1/3] Bump the dotnet-dependencies group with 4 updates Bumps Meziantou.Analyzer from 3.0.7 to 3.0.22 Bumps Microsoft.Bcl.AsyncInterfaces from 10.0.3 to 10.0.4 Bumps SonarAnalyzer.CSharp from 10.19.0.132793 to 10.20.0.135146 Bumps System.Linq.Async from 6.0.1 to 7.0.0 --- updated-dependencies: - dependency-name: Meziantou.Analyzer dependency-version: 3.0.22 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: Microsoft.Bcl.AsyncInterfaces dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet-dependencies - dependency-name: SonarAnalyzer.CSharp dependency-version: 10.20.0.135146 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dotnet-dependencies - dependency-name: System.Linq.Async dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: dotnet-dependencies ... Signed-off-by: dependabot[bot] --- Directory.Build.props | 4 ++-- .../Net4.8/Example1-BasicETL/Example1-BasicETL.csproj | 2 +- .../Example2-WithCancellationToken.csproj | 2 +- .../Example3-WithGracefulCancellation.csproj | 2 +- .../Example4a-WithExtractorProgress.csproj | 2 +- .../Example4b-WithTransformerProgress.csproj | 2 +- .../Example4c-WithLoaderProgress.csproj | 2 +- .../Example5a-ExtractorWithProgressAndCancellation.csproj | 2 +- .../Example6-ReducingDuplicateCode.csproj | 2 +- .../Wolfgang.Etl.Abstractions.csproj | 2 +- .../Wolfgang.Etl.Abstractions.Tests.Unit.csproj | 8 ++++---- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index b9600a5..0305956 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -45,13 +45,13 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj b/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj index 6223081..681336e 100644 --- a/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj +++ b/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj b/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj index 026ee9d..7d58d3b 100644 --- a/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj +++ b/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj b/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj index fc7985d..2a31f28 100644 --- a/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj +++ b/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj b/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj index cfd4c07..b276e39 100644 --- a/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj +++ b/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj b/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj index 84a8082..af20666 100644 --- a/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj +++ b/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj b/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj index 326dab1..2212b9a 100644 --- a/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj +++ b/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj b/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj index bbcd3f4..00aaf13 100644 --- a/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj +++ b/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj b/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj index 0a5aabc..860a71b 100644 --- a/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj +++ b/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj @@ -15,7 +15,7 @@ - + diff --git a/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj b/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj index fa82319..76e9dee 100644 --- a/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj +++ b/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj @@ -45,7 +45,7 @@ - + diff --git a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj index 3a73da5..7aeee59 100644 --- a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj +++ b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj @@ -33,7 +33,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + + true @@ -75,7 +75,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + true @@ -95,7 +95,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + From dde4b5c3c9cdf0f36a534cec618b9b5b95c7142e Mon Sep 17 00:00:00 2001 From: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com> Date: Wed, 11 Mar 2026 21:14:42 -0400 Subject: [PATCH 2/3] Add progress and cancellation tests to ETL base classes Added new unit tests for progress reporting and cancellation in ExtractorBaseTests, LoaderBaseTests, and TransformerBaseTests. Most tests are excluded from code coverage and skipped due to timing issues. Updated some existing tests and made minor formatting and import adjustments. --- .../BaseClassTests/ExtractorBaseTests.cs | 13 ++++++++----- .../BaseClassTests/LoaderBaseTests.cs | 6 +++++- .../BaseClassTests/TransformerBaseTests.cs | 7 ++++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/ExtractorBaseTests.cs b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/ExtractorBaseTests.cs index 454406c..1a1f063 100644 --- a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/ExtractorBaseTests.cs +++ b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/ExtractorBaseTests.cs @@ -4,7 +4,6 @@ using Wolfgang.Etl.Abstractions.Tests.Unit.Models; namespace Wolfgang.Etl.Abstractions.Tests.Unit.BaseClassTests; - public class ExtractorBaseTests { @@ -54,7 +53,7 @@ public async Task ExtractWithCancellationAsync_throws_exception_when_cancellatio var cts = new CancellationTokenSource(TimeSpan.FromMilliseconds(5)); - await Assert.ThrowsAsync(async () => await sut.ExtractAsync(cts.Token).ToListAsync(CancellationToken.None)); + await Assert.ThrowsAsync(async () => await sut.ExtractAsync(cts.Token).ToListAsync(CancellationToken.None)); } @@ -121,7 +120,7 @@ public async Task ExtractWithProgressAndCancellationAsync_when_passed_null_progr await Assert.ThrowsAsync(async () => await sut.ExtractAsync(null!, cts.Token).ToListAsync(CancellationToken.None)); } - + [Fact] @@ -182,7 +181,7 @@ public void MaximumItemCount_when_assigned_a_valid_value_stores_the_value() Assert.Equal(10, sut.MaximumItemCount); } - + [Fact] public void SkipItemCount_when_assigned_a_value_less_than_0_throws_ArgumentOutOfRangeException() { @@ -321,6 +320,7 @@ public async Task ExtractWithProgressAndCancellationAsync_when_passed_null_progr + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task ExtractWithProgressAsync_invokes_progress_callback() { @@ -335,6 +335,7 @@ public async Task ExtractWithProgressAsync_invokes_progress_callback() + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task ExtractWithProgressAsync_progress_callback_receives_current_item_count() { @@ -350,6 +351,7 @@ public async Task ExtractWithProgressAsync_progress_callback_receives_current_it + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task ExtractWithProgressAndCancellationAsync_invokes_progress_callback() { @@ -364,7 +366,8 @@ public async Task ExtractWithProgressAndCancellationAsync_invokes_progress_callb - [Fact(Skip = "Not working due to timing issues")] + [ExcludeFromCodeCoverage] + [Fact (Skip = "Not working due to timing issues")] public async Task ExtractWithProgressAndCancellationAsync_progress_callback_receives_current_item_count() { var sut = new FibonacciExtractorFromExtractorBase(); diff --git a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/LoaderBaseTests.cs b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/LoaderBaseTests.cs index 2cca967..29b4cfd 100644 --- a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/LoaderBaseTests.cs +++ b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/LoaderBaseTests.cs @@ -145,6 +145,7 @@ public async Task LoadWithProgressAsync_returns_expected_results() + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task LoadWithProgressAsync_invokes_progress_callback() { @@ -159,7 +160,8 @@ public async Task LoadWithProgressAsync_invokes_progress_callback() } - + + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task LoadWithProgressAsync_progress_callback_receives_current_item_count() { @@ -246,6 +248,7 @@ public async Task LoadWithProgressAndCancellationAsync_returns_expected_results( + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task LoadWithProgressAndCancellationAsync_invokes_progress_callback() { @@ -261,6 +264,7 @@ public async Task LoadWithProgressAndCancellationAsync_invokes_progress_callback + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task LoadWithProgressAndCancellationAsync_progress_callback_receives_current_item_count() { diff --git a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/TransformerBaseTests.cs b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/TransformerBaseTests.cs index 9077682..0435fdb 100644 --- a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/TransformerBaseTests.cs +++ b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/TransformerBaseTests.cs @@ -375,8 +375,8 @@ public void CurrentSkippedItemCount_default_value_is_zero() + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] - public async Task TransformWithProgressAsync_invokes_progress_callback() { var sut = new IntToStringTransformerFromTransformerBase(); @@ -391,6 +391,7 @@ public async Task TransformWithProgressAsync_invokes_progress_callback() + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] public async Task TransformWithProgressAsync_progress_callback_receives_current_item_count() { @@ -407,8 +408,8 @@ public async Task TransformWithProgressAsync_progress_callback_receives_current_ + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] - public async Task TransformWithProgressAndCancellationAsync_invokes_progress_callback() { var sut = new IntToStringTransformerFromTransformerBase(); @@ -423,8 +424,8 @@ public async Task TransformWithProgressAndCancellationAsync_invokes_progress_cal + [ExcludeFromCodeCoverage] [Fact(Skip = "Not working due to timing issues")] - public async Task TransformWithProgressAndCancellationAsync_progress_callback_receives_current_item_count() { var sut = new IntToStringTransformerFromTransformerBase(); From 6af2e22de89687ad5eec251da8c3c4eda8df1e01 Mon Sep 17 00:00:00 2001 From: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:47:56 -0400 Subject: [PATCH 3/3] Update Bcl.AsyncInterfaces to 10.0.5; add Bcl.Memory test dep Updated Microsoft.Bcl.AsyncInterfaces to version 10.0.5 across all example and abstraction projects. Added Microsoft.Bcl.Memory 10.0.4 as a dependency to Wolfgang.Etl.Abstractions.Tests.Unit. Some project files now include a Unicode BOM. --- examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj | 4 ++-- .../Example2-WithCancellationToken.csproj | 4 ++-- .../Example3-WithGracefulCancellation.csproj | 4 ++-- .../Example4a-WithExtractorProgress.csproj | 4 ++-- .../Example4b-WithTransformerProgress.csproj | 4 ++-- .../Example4c-WithLoaderProgress.csproj | 4 ++-- .../Example5a-ExtractorWithProgressAndCancellation.csproj | 4 ++-- .../Example6-ReducingDuplicateCode.csproj | 4 ++-- .../Wolfgang.Etl.Abstractions.csproj | 2 +- .../Wolfgang.Etl.Abstractions.Tests.Unit.csproj | 3 +++ 10 files changed, 20 insertions(+), 17 deletions(-) diff --git a/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj b/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj index 681336e..e9a2257 100644 --- a/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj +++ b/examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj b/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj index 7d58d3b..ba4b311 100644 --- a/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj +++ b/examples/Net4.8/Example2-WithCancellationToken/Example2-WithCancellationToken.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj b/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj index 2a31f28..6c07a6a 100644 --- a/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj +++ b/examples/Net4.8/Example3-WithGracefulCancellation/Example3-WithGracefulCancellation.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj b/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj index b276e39..a27a96a 100644 --- a/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj +++ b/examples/Net4.8/Example4a-WithExtractorProgress/Example4a-WithExtractorProgress.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj b/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj index af20666..91a7cc2 100644 --- a/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj +++ b/examples/Net4.8/Example4b-WithTransformerProgress/Example4b-WithTransformerProgress.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj b/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj index 2212b9a..d3e8b3f 100644 --- a/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj +++ b/examples/Net4.8/Example4c-WithLoaderProgress/Example4c-WithLoaderProgress.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj b/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj index 00aaf13..158ac81 100644 --- a/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj +++ b/examples/Net4.8/Example5a-ExtractorWithProgressAndCancellation/Example5a-ExtractorWithProgressAndCancellation.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj b/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj index 860a71b..5bdda49 100644 --- a/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj +++ b/examples/Net4.8/Example6-ReducingDuplicateCode/Example6-ReducingDuplicateCode.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + diff --git a/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj b/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj index ab2d0fd..49b0b19 100644 --- a/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj +++ b/src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj @@ -52,7 +52,7 @@ - + diff --git a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj index fc963a6..a6f553f 100644 --- a/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj +++ b/tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj @@ -135,6 +135,9 @@ runtime; build; native; contentfiles; analyzers; buildtransitive + + +