diff --git a/src/NetEvolve.Pulse/Dispatchers/PrioritizedEventDispatcher.cs b/src/NetEvolve.Pulse/Dispatchers/PrioritizedEventDispatcher.cs
index 36c7554e..afa31f1b 100644
--- a/src/NetEvolve.Pulse/Dispatchers/PrioritizedEventDispatcher.cs
+++ b/src/NetEvolve.Pulse/Dispatchers/PrioritizedEventDispatcher.cs
@@ -16,7 +16,7 @@
///
/// Execution Behavior:
/// Priority groups execute sequentially in ascending priority order. Within each group, handlers
-/// execute in parallel using .
+/// execute in parallel using .
/// This ensures predictable ordering between groups while maximising throughput within each group.
/// Error Handling:
/// Individual handler failures do not prevent other handlers from executing, including handlers
diff --git a/src/NetEvolve.Pulse/Interceptors/LoggingMessages.cs b/src/NetEvolve.Pulse/Interceptors/LoggingMessages.cs
index 3c0b5e5e..f39297d8 100644
--- a/src/NetEvolve.Pulse/Interceptors/LoggingMessages.cs
+++ b/src/NetEvolve.Pulse/Interceptors/LoggingMessages.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Interceptors;
+namespace NetEvolve.Pulse.Interceptors;
using Microsoft.Extensions.Logging;
@@ -58,7 +58,7 @@ internal static partial void LogErrorHandle(
/// Logs the beginning of a stream query enumeration.
///
///
- /// Emitted by LoggingStreamQueryInterceptor when enumeration of an starts.
+ /// Emitted by LoggingStreamQueryInterceptor when enumeration of an starts.
///
[LoggerMessage(Message = "Streaming '{StreamQueryName}' (CorrelationId: {CorrelationId})")]
internal static partial void LogBeginStreamQuery(
@@ -72,7 +72,7 @@ internal static partial void LogBeginStreamQuery(
/// Logs the successful completion of a stream query enumeration.
///
///
- /// Emitted by LoggingStreamQueryInterceptor when an sequence is fully consumed.
+ /// Emitted by LoggingStreamQueryInterceptor when an sequence is fully consumed.
///
[LoggerMessage(Message = "Streamed '{StreamQueryName}' in {ElapsedMs:F2}ms (CorrelationId: {CorrelationId})")]
internal static partial void LogEndStreamQuery(
@@ -87,7 +87,7 @@ internal static partial void LogEndStreamQuery(
/// Logs a warning when a stream query exceeds the configured slow-stream threshold.
///
///
- /// Emitted by LoggingStreamQueryInterceptor when an exceeds the slow threshold.
+ /// Emitted by LoggingStreamQueryInterceptor when an exceeds the slow threshold.
///
[LoggerMessage(
Level = LogLevel.Warning,
@@ -105,7 +105,7 @@ internal static partial void LogSlowStreamQuery(
/// Logs an error when a stream query fails during enumeration.
///
///
- /// Emitted by LoggingStreamQueryInterceptor when an throws an exception.
+ /// Emitted by LoggingStreamQueryInterceptor when an throws an exception.
///
[LoggerMessage(
Level = LogLevel.Error,
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/ActivityMetricsExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/ActivityMetricsExtensionsTests.cs
index f12cc2f0..f2e0040c 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/ActivityMetricsExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/ActivityMetricsExtensionsTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit;
+namespace NetEvolve.Pulse.Tests.Unit;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using NetEvolve.Pulse.Internals;
@@ -11,6 +12,7 @@ namespace NetEvolve.Pulse.Tests.Unit;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("ActivityMetrics")]
public sealed class ActivityMetricsExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/AspNetCore/EndpointRouteBuilderExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/AspNetCore/EndpointRouteBuilderExtensionsTests.cs
index bc5b32db..814776e8 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/AspNetCore/EndpointRouteBuilderExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/AspNetCore/EndpointRouteBuilderExtensionsTests.cs
@@ -1,12 +1,14 @@
-namespace NetEvolve.Pulse.Tests.Unit.AspNetCore;
+namespace NetEvolve.Pulse.Tests.Unit.AspNetCore;
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using TUnit.Core;
using PulseEndpoints = EndpointRouteBuilderExtensions;
+[TestGroup("AspNetCore")]
public sealed class EndpointRouteBuilderExtensionsTests
{
// Represents an undefined CommandHttpMethod value used to verify validation behaviour.
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/AssemblyScanningExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/AssemblyScanningExtensionsTests.cs
index 1c0a9217..f62740cd 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/AssemblyScanningExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/AssemblyScanningExtensionsTests.cs
@@ -4,9 +4,11 @@
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using TUnit.Core;
+[TestGroup("AssemblyScanning")]
public class AssemblyScanningExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusExtensionsTests.cs
index 25a3f837..1bb2ea64 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusExtensionsTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit.AzureServiceBus;
+namespace NetEvolve.Pulse.Tests.Unit.AzureServiceBus;
using Azure.Core;
using Azure.Identity;
using Azure.Messaging.ServiceBus;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
@@ -11,6 +12,7 @@ namespace NetEvolve.Pulse.Tests.Unit.AzureServiceBus;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("AzureServiceBus")]
public sealed class AzureServiceBusExtensionsTests
{
private const string FakeConnectionString =
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusMessageTransportTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusMessageTransportTests.cs
index e6607bf9..b44b5229 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusMessageTransportTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/AzureServiceBus/AzureServiceBusMessageTransportTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Tests.Unit.AzureServiceBus;
+namespace NetEvolve.Pulse.Tests.Unit.AzureServiceBus;
using System.Collections.Generic;
using System.Globalization;
@@ -6,12 +6,14 @@ namespace NetEvolve.Pulse.Tests.Unit.AzureServiceBus;
using System.Threading.Tasks;
using Azure.Messaging.ServiceBus;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("AzureServiceBus")]
public sealed class AzureServiceBusMessageTransportTests
{
private const string FakeConnectionString =
@@ -414,7 +416,7 @@ public override Task SendMessagesAsync(
CancellationToken cancellationToken = default
)
{
- BatchedMessages.Add(messages.ToList());
+ BatchedMessages.Add([.. messages]);
return Task.CompletedTask;
}
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprExtensionsTests.cs
index dfb039bb..559ee9b3 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprExtensionsTests.cs
@@ -6,6 +6,7 @@
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
@@ -13,6 +14,7 @@
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("Dapr")]
public sealed class DaprExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprMessageTransportTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprMessageTransportTests.cs
index 3c661b49..07775390 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprMessageTransportTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Dapr/DaprMessageTransportTests.cs
@@ -4,11 +4,13 @@
using System.Threading.Tasks;
using global::Dapr.Client;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("Dapr")]
public sealed class DaprMessageTransportTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/ParallelEventDispatcherTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/ParallelEventDispatcherTests.cs
index 1b6ba679..6a57ea8e 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/ParallelEventDispatcherTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/ParallelEventDispatcherTests.cs
@@ -1,9 +1,11 @@
namespace NetEvolve.Pulse.Tests.Unit.Dispatchers;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Dispatchers;
using NetEvolve.Pulse.Extensibility;
using TUnit.Core;
+[TestGroup("Dispatchers")]
public class ParallelEventDispatcherTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/PrioritizedEventDispatcherTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/PrioritizedEventDispatcherTests.cs
index e3cfc451..81cf9258 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/PrioritizedEventDispatcherTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/PrioritizedEventDispatcherTests.cs
@@ -2,6 +2,7 @@
using System.Collections.Concurrent;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Dispatchers;
using NetEvolve.Pulse.Extensibility;
using TUnit.Core;
@@ -9,6 +10,7 @@
///
/// Unit tests for .
///
+[TestGroup("Dispatchers")]
public class PrioritizedEventDispatcherTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/RateLimitedEventDispatcherTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/RateLimitedEventDispatcherTests.cs
index dc8ddf31..c500cfa4 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/RateLimitedEventDispatcherTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/RateLimitedEventDispatcherTests.cs
@@ -2,6 +2,7 @@
using System.Collections.Concurrent;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Dispatchers;
using NetEvolve.Pulse.Extensibility;
using TUnit.Core;
@@ -9,6 +10,7 @@
///
/// Unit tests for .
///
+[TestGroup("Dispatchers")]
public class RateLimitedEventDispatcherTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/SequentialEventDispatcherTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/SequentialEventDispatcherTests.cs
index 61529779..985a520a 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/SequentialEventDispatcherTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Dispatchers/SequentialEventDispatcherTests.cs
@@ -1,9 +1,11 @@
namespace NetEvolve.Pulse.Tests.Unit.Dispatchers;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Dispatchers;
using NetEvolve.Pulse.Extensibility;
using TUnit.Core;
+[TestGroup("Dispatchers")]
public class SequentialEventDispatcherTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkEventOutboxTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkEventOutboxTests.cs
index e9bbc514..ca3de877 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkEventOutboxTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkEventOutboxTests.cs
@@ -4,11 +4,13 @@
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class EntityFrameworkEventOutboxTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkExtensionsTests.cs
index dceb3651..12056704 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkExtensionsTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Tests.Unit.EntityFramework;
+namespace NetEvolve.Pulse.Tests.Unit.EntityFramework;
using System;
using System.Linq;
@@ -6,6 +6,7 @@ namespace NetEvolve.Pulse.Tests.Unit.EntityFramework;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
@@ -13,6 +14,7 @@ namespace NetEvolve.Pulse.Tests.Unit.EntityFramework;
using TUnit.Core;
using TUnit.Mocks;
+[TestGroup("EntityFramework")]
public sealed class EntityFrameworkExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxManagementTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxManagementTests.cs
index 60c6fc11..6d2a801e 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxManagementTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxManagementTests.cs
@@ -3,11 +3,13 @@
using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class EntityFrameworkOutboxManagementTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxRepositoryTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxRepositoryTests.cs
index abd87c59..acd58224 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxRepositoryTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxRepositoryTests.cs
@@ -3,9 +3,11 @@
using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class EntityFrameworkOutboxRepositoryTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxTransactionScopeTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxTransactionScopeTests.cs
index 9b140cf4..7131a197 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxTransactionScopeTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/EntityFrameworkOutboxTransactionScopeTests.cs
@@ -3,9 +3,11 @@
using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class EntityFrameworkOutboxTransactionScopeTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/ModelBuilderExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/ModelBuilderExtensionsTests.cs
index 280851db..f60b383d 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/ModelBuilderExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/ModelBuilderExtensionsTests.cs
@@ -3,10 +3,12 @@
using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class ModelBuilderExtensionsTests
{
[Test]
@@ -18,7 +20,7 @@ public async Task ApplyPulseConfiguration_When_modelBuilder_is_null_throws_Argum
await using var context = new TestDbContext(options);
_ = await Assert
- .That(() => ModelBuilderExtensions.ApplyPulseConfiguration(null!, context))
+ .That(() => ModelBuilderExtensions.ApplyPulseConfiguration(null!, context))
.Throws();
}
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationFactoryTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationFactoryTests.cs
index a702188b..43c8365b 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationFactoryTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationFactoryTests.cs
@@ -4,10 +4,12 @@
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Configurations;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class OutboxMessageConfigurationFactoryTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationMetadataTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationMetadataTests.cs
index a95c3261..6afbfecd 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationMetadataTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/OutboxMessageConfigurationMetadataTests.cs
@@ -5,10 +5,12 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class OutboxMessageConfigurationMetadataTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/TypeValueConverterTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/TypeValueConverterTests.cs
index 54dc1cc9..0768b4f8 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/TypeValueConverterTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EntityFramework/TypeValueConverterTests.cs
@@ -2,10 +2,12 @@
using System;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Configurations;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("EntityFramework")]
public sealed class TypeValueConverterTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/EventDispatcherExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/EventDispatcherExtensionsTests.cs
index 58bf9753..575466e4 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/EventDispatcherExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/EventDispatcherExtensionsTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit;
+namespace NetEvolve.Pulse.Tests.Unit;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Dispatchers;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Internals;
@@ -11,6 +12,7 @@ namespace NetEvolve.Pulse.Tests.Unit;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("Dispatchers")]
public sealed class EventDispatcherExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/FluentValidationExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/FluentValidationExtensionsTests.cs
index a1d83298..bf8fc192 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/FluentValidationExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/FluentValidationExtensionsTests.cs
@@ -1,15 +1,17 @@
-namespace NetEvolve.Pulse.Tests.Unit.FluentValidation;
+namespace NetEvolve.Pulse.Tests.Unit.FluentValidation;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("FluentValidation")]
public sealed class FluentValidationExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/Interceptors/FluentValidationRequestInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/Interceptors/FluentValidationRequestInterceptorTests.cs
index 5a9c2b87..126b3762 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/Interceptors/FluentValidationRequestInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/FluentValidation/Interceptors/FluentValidationRequestInterceptorTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Tests.Unit.FluentValidation.Interceptors;
+namespace NetEvolve.Pulse.Tests.Unit.FluentValidation.Interceptors;
using System;
using System.Diagnostics.CodeAnalysis;
@@ -6,12 +6,14 @@ namespace NetEvolve.Pulse.Tests.Unit.FluentValidation.Interceptors;
using System.Threading.Tasks;
using global::FluentValidation;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("FluentValidation")]
public sealed class FluentValidationRequestInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/HandlerRegistrationExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/HandlerRegistrationExtensionsTests.cs
index b5bfd161..d831261c 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/HandlerRegistrationExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/HandlerRegistrationExtensionsTests.cs
@@ -3,9 +3,11 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using TUnit.Core;
+[TestGroup("HandlerRegistration")]
public class HandlerRegistrationExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/HttpCorrelationExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/HttpCorrelationExtensionsTests.cs
index 75dbc8fa..8ad16746 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/HttpCorrelationExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/HttpCorrelationExtensionsTests.cs
@@ -1,14 +1,16 @@
-namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation;
+namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("HttpCorrelation")]
public sealed class HttpCorrelationExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationEventInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationEventInterceptorTests.cs
index c83ceaa1..f5aff385 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationEventInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationEventInterceptorTests.cs
@@ -1,10 +1,11 @@
-namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
+namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Http.Correlation.AspNetCore;
using NetEvolve.Http.Correlation.TestGenerator;
using NetEvolve.Pulse.Extensibility;
@@ -18,6 +19,7 @@ namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
"CA2000:Dispose objects before losing scope",
Justification = "ServiceProvider instances are short-lived within test methods"
)]
+[TestGroup("HttpCorrelation")]
public sealed class HttpCorrelationEventInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationRequestInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationRequestInterceptorTests.cs
index 2ea2f898..10dd212c 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationRequestInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationRequestInterceptorTests.cs
@@ -1,10 +1,11 @@
-namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
+namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Http.Correlation.AspNetCore;
using NetEvolve.Http.Correlation.TestGenerator;
using NetEvolve.Pulse.Extensibility;
@@ -18,6 +19,7 @@ namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
"CA2000:Dispose objects before losing scope",
Justification = "ServiceProvider instances are short-lived within test methods"
)]
+[TestGroup("HttpCorrelation")]
public sealed class HttpCorrelationRequestInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationStreamQueryInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationStreamQueryInterceptorTests.cs
index 584582a7..badfe5ce 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationStreamQueryInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/HttpCorrelation/Interceptors/HttpCorrelationStreamQueryInterceptorTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
+namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
using System;
using System.Collections.Generic;
@@ -9,6 +9,7 @@ namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Http.Correlation.Abstractions;
using NetEvolve.Http.Correlation.AspNetCore;
using NetEvolve.Http.Correlation.TestGenerator;
@@ -23,6 +24,7 @@ namespace NetEvolve.Pulse.Tests.Unit.HttpCorrelation.Interceptors;
"CA2000:Dispose objects before losing scope",
Justification = "ServiceProvider instances are short-lived within test methods"
)]
+[TestGroup("HttpCorrelation")]
public sealed class HttpCorrelationStreamQueryInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/IdempotencyExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/IdempotencyExtensionsTests.cs
index 31c77274..627782eb 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/IdempotencyExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/IdempotencyExtensionsTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit;
+namespace NetEvolve.Pulse.Tests.Unit;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Idempotency;
using NetEvolve.Pulse.Interceptors;
@@ -12,6 +13,7 @@ namespace NetEvolve.Pulse.Tests.Unit;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("Idempotency")]
public sealed class IdempotencyExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsEventInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsEventInterceptorTests.cs
index fc1de821..99f07a22 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsEventInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsEventInterceptorTests.cs
@@ -1,10 +1,12 @@
namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
using System.Diagnostics;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
+[TestGroup("Interceptors")]
public class ActivityAndMetricsEventInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsRequestInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsRequestInterceptorTests.cs
index 1dd92ecb..405da4fe 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsRequestInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsRequestInterceptorTests.cs
@@ -1,10 +1,12 @@
namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
using System.Diagnostics;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
+[TestGroup("Interceptors")]
public class ActivityAndMetricsRequestInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsStreamQueryInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsStreamQueryInterceptorTests.cs
index b84bb72f..13f80e38 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsStreamQueryInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/ActivityAndMetricsStreamQueryInterceptorTests.cs
@@ -1,11 +1,13 @@
-namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
+namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
using System.Diagnostics;
using System.Runtime.CompilerServices;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
+[TestGroup("Interceptors")]
public class ActivityAndMetricsStreamQueryInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/DistributedCacheQueryInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/DistributedCacheQueryInterceptorTests.cs
index 2be5d867..a38d0357 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/DistributedCacheQueryInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/DistributedCacheQueryInterceptorTests.cs
@@ -4,11 +4,13 @@
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Caching;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
+[TestGroup("Interceptors")]
public class DistributedCacheQueryInterceptorTests
{
private static IOptions DefaultOptions => Options.Create(new QueryCachingOptions());
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/IdempotencyCommandInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/IdempotencyCommandInterceptorTests.cs
index d0033a8d..51793f76 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/IdempotencyCommandInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/IdempotencyCommandInterceptorTests.cs
@@ -4,6 +4,7 @@ namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Idempotency;
using NetEvolve.Pulse.Idempotency;
@@ -17,6 +18,7 @@ namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
"CA2000:Dispose objects before losing scope",
Justification = "ServiceProvider instances are short-lived within test methods"
)]
+[TestGroup("Interceptors")]
public sealed class IdempotencyCommandInterceptorTests
{
[Test]
@@ -213,8 +215,6 @@ await interceptor
_ = await Assert.That(store.StoreCallCount).IsEqualTo(0);
}
- #region Test Types
-
private sealed record TestCommand : IIdempotentCommand
{
public string? CorrelationId { get; set; }
@@ -249,6 +249,4 @@ public Task StoreAsync(string idempotencyKey, CancellationToken cancellationToke
return Task.CompletedTask;
}
}
-
- #endregion
}
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingEventInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingEventInterceptorTests.cs
index 9364dbbc..06c7ce92 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingEventInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingEventInterceptorTests.cs
@@ -3,11 +3,13 @@
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
using TUnit.Mocks;
+[TestGroup("Interceptors")]
public class LoggingEventInterceptorTests
{
private static LoggingEventInterceptor CreateInterceptor(
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingInterceptorOptionsValidatorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingInterceptorOptionsValidatorTests.cs
index afbbc1b3..10e88d59 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingInterceptorOptionsValidatorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingInterceptorOptionsValidatorTests.cs
@@ -1,9 +1,11 @@
-namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
+namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
+[TestGroup("Interceptors")]
public class LoggingInterceptorOptionsValidatorTests
{
private static readonly LoggingInterceptorOptionsValidator _validator = new();
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingRequestInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingRequestInterceptorTests.cs
index 7b61661c..66f6d23a 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingRequestInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/LoggingRequestInterceptorTests.cs
@@ -3,11 +3,13 @@
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
using TUnit.Mocks;
+[TestGroup("Interceptors")]
public class LoggingRequestInterceptorTests
{
private static LoggingRequestInterceptor CreateInterceptor(
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/TimeoutRequestInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/TimeoutRequestInterceptorTests.cs
index 04b21dad..88bfa937 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/TimeoutRequestInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Interceptors/TimeoutRequestInterceptorTests.cs
@@ -1,13 +1,15 @@
-namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
+namespace NetEvolve.Pulse.Tests.Unit.Interceptors;
using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Core;
+[TestGroup("Interceptors")]
public sealed class TimeoutRequestInterceptorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Internals/MediatorBuilderTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Internals/MediatorBuilderTests.cs
index 94ff4cb9..b1fddbfe 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Internals/MediatorBuilderTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Internals/MediatorBuilderTests.cs
@@ -1,10 +1,12 @@
-namespace NetEvolve.Pulse.Tests.Unit.Internals;
+namespace NetEvolve.Pulse.Tests.Unit.Internals;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Internals;
using TUnit.Core;
+[TestGroup("Internals")]
public class MediatorBuilderTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Internals/PulseMediatorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Internals/PulseMediatorTests.cs
index ab6eb558..48c058c5 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Internals/PulseMediatorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Internals/PulseMediatorTests.cs
@@ -4,10 +4,12 @@
using System.Runtime.CompilerServices;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Internals;
using TUnit.Core;
+[TestGroup("Internals")]
public class PulseMediatorTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaExtensionsTests.cs
index 6c0316ea..c4143ed6 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaExtensionsTests.cs
@@ -1,6 +1,7 @@
-namespace NetEvolve.Pulse.Tests.Unit.Kafka;
+namespace NetEvolve.Pulse.Tests.Unit.Kafka;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
@@ -8,6 +9,7 @@ namespace NetEvolve.Pulse.Tests.Unit.Kafka;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("Kafka")]
public sealed class KafkaExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaMessageTransportTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaMessageTransportTests.cs
index 3400ec69..8da5b922 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaMessageTransportTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Kafka/KafkaMessageTransportTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Tests.Unit.Kafka;
+namespace NetEvolve.Pulse.Tests.Unit.Kafka;
using System;
using System.Collections.Generic;
@@ -8,12 +8,14 @@ namespace NetEvolve.Pulse.Tests.Unit.Kafka;
using System.Threading.Tasks;
using Confluent.Kafka;
using Confluent.Kafka.Admin;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("Kafka")]
public sealed class KafkaMessageTransportTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/LoggingExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/LoggingExtensionsTests.cs
index 6ecbaaeb..5d09e6b4 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/LoggingExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/LoggingExtensionsTests.cs
@@ -1,13 +1,15 @@
-namespace NetEvolve.Pulse.Tests.Unit;
+namespace NetEvolve.Pulse.Tests.Unit;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using NetEvolve.Pulse.Internals;
using TUnit.Core;
+[TestGroup("Logging")]
public class LoggingExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/ExponentialBackoffTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/ExponentialBackoffTests.cs
index c783a450..608fc66e 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/ExponentialBackoffTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/ExponentialBackoffTests.cs
@@ -1,5 +1,6 @@
namespace NetEvolve.Pulse.Tests.Unit.Outbox;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
@@ -7,10 +8,9 @@ namespace NetEvolve.Pulse.Tests.Unit.Outbox;
/// Unit tests for exponential backoff calculation in .
/// Tests backoff formula, jitter application, and delay clamping.
///
+[TestGroup("Outbox")]
public sealed class ExponentialBackoffTests
{
- #region Backoff Calculation Tests
-
[Test]
[Arguments(0, 5)]
[Arguments(1, 10)]
@@ -127,10 +127,6 @@ public async Task ComputeNextRetryAt_WithZeroRetryCount_UsesBaseDelay()
_ = await Assert.That((nextRetryAt - expectedTime).TotalMilliseconds).IsGreaterThanOrEqualTo(-100);
}
- #endregion
-
- #region Configuration Validation Tests
-
[Test]
public async Task OutboxProcessorOptions_HasCorrectDefaults()
{
@@ -162,10 +158,6 @@ public async Task OutboxProcessorOptions_CanConfigureCustomValues()
_ = await Assert.That(options.AddJitter).IsFalse();
}
- #endregion
-
- #region Edge Cases
-
[Test]
public async Task ComputeNextRetryAt_WithLargeRetryCount_DoesNotOverflow()
{
@@ -210,6 +202,4 @@ public async Task ComputeNextRetryAt_WithBaseDelayGreaterThanMax_ClampsCorrectly
_ = await Assert.That((nextRetryAt - expectedTime).TotalMilliseconds).IsLessThanOrEqualTo(100);
_ = await Assert.That((nextRetryAt - expectedTime).TotalMilliseconds).IsGreaterThanOrEqualTo(-100);
}
-
- #endregion
}
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/InMemoryMessageTransportTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/InMemoryMessageTransportTests.cs
index 69ca8e08..abb7526a 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/InMemoryMessageTransportTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/InMemoryMessageTransportTests.cs
@@ -1,8 +1,9 @@
-namespace NetEvolve.Pulse.Tests.Unit.Outbox;
+namespace NetEvolve.Pulse.Tests.Unit.Outbox;
using System.Collections.Generic;
using System.Text.Json;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
@@ -12,10 +13,9 @@
/// Unit tests for .
/// Tests constructor validation, event deserialization, and mediator dispatch.
///
+[TestGroup("Outbox")]
public sealed class InMemoryMessageTransportTests
{
- #region Constructor Tests
-
[Test]
public async Task Constructor_WithNullMediator_ThrowsArgumentNullException()
{
@@ -48,10 +48,6 @@ public async Task Constructor_WithValidParameters_CreatesInstance()
_ = await Assert.That(transport).IsNotNull();
}
- #endregion
-
- #region SendAsync Tests
-
[Test]
public async Task SendAsync_WithNullMessage_ThrowsArgumentNullException()
{
@@ -197,10 +193,6 @@ public async Task SendAsync_WhenMediatorThrows_PropagatesException()
}
}
- #endregion
-
- #region Helper Methods
-
private static OutboxMessage CreateOutboxMessage(TestTransportEvent @event)
{
var payload = JsonSerializer.Serialize(@event, @event.GetType());
@@ -217,10 +209,6 @@ private static OutboxMessage CreateOutboxMessage(TestTransportEvent @event)
};
}
- #endregion
-
- #region Test Doubles
-
#pragma warning disable CS8767 // Nullability of reference types in type of parameter doesn't match
private sealed class TestMediator : IMediator
{
@@ -309,6 +297,4 @@ private sealed class NonEventClass
{
public string Value { get; set; } = string.Empty;
}
-
- #endregion
}
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxEventHandlerTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxEventHandlerTests.cs
index bb5c47ee..6cc46066 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxEventHandlerTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxEventHandlerTests.cs
@@ -1,6 +1,7 @@
namespace NetEvolve.Pulse.Tests.Unit.Outbox;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
@@ -10,10 +11,9 @@ namespace NetEvolve.Pulse.Tests.Unit.Outbox;
/// Unit tests for .
/// Tests outbox delegation and in-process event exclusion semantics.
///
+[TestGroup("Outbox")]
public sealed class OutboxEventHandlerTests
{
- #region HandleAsync Tests
-
[Test]
public async Task HandleAsync_WithRegularEvent_StoresEventInOutbox()
{
@@ -83,10 +83,6 @@ public async Task HandleAsync_WithCancelledToken_PropagatesCancellation()
_ = await Assert.That(() => handler.HandleAsync(@event, cts.Token)).Throws();
}
- #endregion
-
- #region Test Doubles
-
private sealed class TrackingEventOutbox : IEventOutbox
{
public List StoredEvents { get; } = [];
@@ -123,6 +119,4 @@ private sealed class TestOptOutInProcessEvent : IEventInProcess
public DateTimeOffset? PublishedAt { get; set; }
public bool HandleInProcess => false;
}
-
- #endregion
}
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxExtensionsTests.cs
index 3cc31ca5..e713c62f 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxExtensionsTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit.Outbox;
+namespace NetEvolve.Pulse.Tests.Unit.Outbox;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Internals;
@@ -16,6 +17,7 @@ namespace NetEvolve.Pulse.Tests.Unit.Outbox;
/// Unit tests for .
/// Tests service registration including the open-generic .
///
+[TestGroup("Outbox")]
public sealed class OutboxExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxProcessorHostedServiceTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxProcessorHostedServiceTests.cs
index 6bde5a1f..19539579 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxProcessorHostedServiceTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxProcessorHostedServiceTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit.Outbox;
+namespace NetEvolve.Pulse.Tests.Unit.Outbox;
using System.Diagnostics.Metrics;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
@@ -13,10 +14,9 @@
/// Unit tests for .
/// Tests constructor validation, message processing logic, and error handling.
///
+[TestGroup("Outbox")]
public sealed class OutboxProcessorHostedServiceTests
{
- #region Constructor Tests
-
[Test]
public async Task Constructor_WithNullRepository_ThrowsArgumentNullException()
{
@@ -86,10 +86,6 @@ public async Task Constructor_WithValidParameters_CreatesInstance()
_ = await Assert.That(service).IsNotNull();
}
- #endregion
-
- #region StartAsync/StopAsync Tests
-
[Test]
public async Task StartAsync_WithCancellationToken_StartsProcessing()
{
@@ -134,10 +130,6 @@ public async Task StopAsync_WhenRunning_StopsGracefully()
_ = await Assert.That(repository.GetPendingCallCount).IsGreaterThanOrEqualTo(1);
}
- #endregion
-
- #region Message Processing Tests
-
[Test]
public async Task ExecuteAsync_WithPendingMessages_ProcessesAndCompletesMessages()
{
@@ -222,10 +214,6 @@ public async Task ExecuteAsync_WithNoMessages_WaitsForPollingInterval()
_ = await Assert.That(repository.GetPendingCallCount).IsGreaterThanOrEqualTo(2);
}
- #endregion
-
- #region Error Handling Tests
-
[Test]
public async Task ExecuteAsync_WithTransportFailure_MarksMessageAsFailed()
{
@@ -304,10 +292,6 @@ public async Task ExecuteAsync_WithTransientFailure_RetriesAndSucceeds()
_ = await Assert.That(repository.CompletedMessageIds).Contains(message.Id);
}
- #endregion
-
- #region Batch Processing Tests
-
[Test]
public async Task ExecuteAsync_WithBatchSendingEnabled_SendsInBatch()
{
@@ -406,10 +390,6 @@ public async Task ExecuteAsync_WithBatchSize_RespectsLimit()
_ = await Assert.That(repository.LastBatchSizeRequested).IsEqualTo(2);
}
- #endregion
-
- #region Per-Event-Type Override Tests
-
[Test]
public async Task ExecuteAsync_WithPerEventTypeMaxRetryCount_UsesOverrideForMatchingEventType()
{
@@ -620,10 +600,6 @@ public async Task OutboxEventTypeOptions_WithNullOverrideProperties_FallsBackToG
}
}
- #endregion
-
- #region Metrics Tests
-
[Test]
[NotInParallel("OutboxMetrics")]
public async Task ExecuteAsync_WithPendingMessages_RecordsProcessedMetric()
@@ -862,10 +838,6 @@ public async Task ExecuteAsync_WithPendingMessages_ObservableGaugeReflectsPendin
}
}
- #endregion
-
- #region Exponential Backoff Tests
-
[Test]
public async Task ExecuteAsync_WithExponentialBackoffEnabled_SetsNextRetryAt()
{
@@ -1028,10 +1000,6 @@ public async Task GetFailedForRetryAsync_WithPastNextRetryAt_IncludesMessage()
_ = await Assert.That(failedForRetry.Count).IsEqualTo(1);
}
- #endregion
-
- #region Helper Methods
-
private static ILogger CreateLogger() =>
new ServiceCollection()
.AddLogging()
@@ -1049,10 +1017,6 @@ private static OutboxMessage CreateMessage(Type? eventType = null) =>
Status = OutboxMessageStatus.Pending,
};
- #endregion
-
- #region Test Doubles
-
private sealed class InMemoryOutboxRepository : IOutboxRepository
{
internal readonly List _messages = [];
@@ -1349,6 +1313,4 @@ private sealed record OtherEvent : IEvent
public string Id { get; init; } = Guid.NewGuid().ToString();
public DateTimeOffset? PublishedAt { get; set; }
}
-
- #endregion
}
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxStatisticsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxStatisticsTests.cs
index 57fd02c7..1f64f114 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxStatisticsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Outbox/OutboxStatisticsTests.cs
@@ -1,8 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit.Outbox;
+namespace NetEvolve.Pulse.Tests.Unit.Outbox;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility.Outbox;
using TUnit.Core;
+[TestGroup("Outbox")]
public sealed class OutboxStatisticsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyEventInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyEventInterceptorTests.cs
index 56b21b5d..395b98cc 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyEventInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyEventInterceptorTests.cs
@@ -7,6 +7,7 @@
using global::Polly.CircuitBreaker;
using global::Polly.Retry;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Assertions;
@@ -18,6 +19,7 @@
"CA2000:Dispose objects before losing scope",
Justification = "ServiceProvider instances are short-lived within test methods"
)]
+[TestGroup("Polly")]
public sealed class PollyEventInterceptorTests
{
private static ServiceProvider CreateServiceProvider(
@@ -113,7 +115,7 @@ public async Task HandleAsync_WithSuccessfulHandler_CompletesSuccessfully()
await interceptor
.HandleAsync(
message,
- (evt, _) =>
+ (_, _) =>
{
handlerCalled = true;
return Task.CompletedTask;
@@ -149,7 +151,7 @@ public async Task HandleAsync_WithRetryPolicy_RetriesOnFailure()
await interceptor
.HandleAsync(
message,
- (evt, _) =>
+ (_, _) =>
{
attemptCount++;
if (attemptCount < 3)
@@ -191,7 +193,7 @@ public async Task HandleAsync_WithRetryPolicyExhausted_ThrowsException()
await interceptor
.HandleAsync(
message,
- (evt, _) =>
+ (_, _) =>
{
attemptCount++;
throw new InvalidOperationException("Persistent failure");
@@ -231,7 +233,7 @@ public async Task HandleAsync_WithCombinedPolicies_ExecutesInOrder()
await interceptor
.HandleAsync(
message,
- (evt, _) =>
+ (_, _) =>
{
attemptCount++;
if (attemptCount < 2)
@@ -274,7 +276,7 @@ public async Task HandleAsync_WithCircuitBreaker_BlocksAfterFailureThreshold()
await interceptor
.HandleAsync(
message,
- (evt, _) =>
+ (_, _) =>
{
attemptCount++;
throw new InvalidOperationException("Failure");
@@ -289,7 +291,7 @@ await interceptor
await interceptor
.HandleAsync(
message,
- (evt, _) =>
+ (_, _) =>
{
attemptCount++;
throw new InvalidOperationException("Failure");
@@ -302,7 +304,7 @@ await interceptor
// Circuit should be open now, next request should be rejected immediately
_ = await Assert
.That(async () =>
- await interceptor.HandleAsync(message, (evt, _) => Task.CompletedTask).ConfigureAwait(false)
+ await interceptor.HandleAsync(message, (_, _) => Task.CompletedTask).ConfigureAwait(false)
)
.Throws();
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyRequestInterceptorTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyRequestInterceptorTests.cs
index 4f03d2fd..c0cb6f36 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyRequestInterceptorTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Polly/Interceptors/PollyRequestInterceptorTests.cs
@@ -7,6 +7,7 @@
using global::Polly.CircuitBreaker;
using global::Polly.Retry;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using TUnit.Assertions;
@@ -18,6 +19,7 @@
"CA2000:Dispose objects before losing scope",
Justification = "ServiceProvider instances are short-lived within test methods"
)]
+[TestGroup("Polly")]
public sealed class PollyRequestInterceptorTests
{
private static ServiceProvider CreateServiceProvider(
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/Polly/PollyExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/Polly/PollyExtensionsTests.cs
index 71274a06..70d7e0c1 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/Polly/PollyExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/Polly/PollyExtensionsTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Tests.Unit.Polly;
+namespace NetEvolve.Pulse.Tests.Unit.Polly;
using System;
using System.Linq;
@@ -6,6 +6,7 @@ namespace NetEvolve.Pulse.Tests.Unit.Polly;
using global::Polly;
using global::Polly.Retry;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using TUnit.Assertions;
@@ -13,6 +14,7 @@ namespace NetEvolve.Pulse.Tests.Unit.Polly;
using TUnit.Core;
using TUnit.Mocks;
+[TestGroup("Polly")]
public sealed class PollyExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlEventOutboxTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlEventOutboxTests.cs
index 3713de54..da7d3792 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlEventOutboxTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlEventOutboxTests.cs
@@ -3,12 +3,14 @@
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using Npgsql;
using TUnit.Core;
+[TestGroup("PostgreSql")]
public sealed class PostgreSqlEventOutboxTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlExtensionsTests.cs
index 57562592..929bf307 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlExtensionsTests.cs
@@ -1,10 +1,11 @@
-namespace NetEvolve.Pulse.Tests.Unit.PostgreSql;
+namespace NetEvolve.Pulse.Tests.Unit.PostgreSql;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
@@ -12,6 +13,7 @@ namespace NetEvolve.Pulse.Tests.Unit.PostgreSql;
using TUnit.Core;
using TUnit.Mocks;
+[TestGroup("PostgreSql")]
public sealed class PostgreSqlExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxManagementTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxManagementTests.cs
index e5f822aa..8e00fbd6 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxManagementTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxManagementTests.cs
@@ -3,9 +3,11 @@
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("PostgreSql")]
public sealed class PostgreSqlOutboxManagementTests
{
private const string ValidConnectionString = "Host=localhost;Database=Test;Username=postgres;Password=secret;";
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxOptionsExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxOptionsExtensionsTests.cs
index 706bc8fb..958e96f9 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxOptionsExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxOptionsExtensionsTests.cs
@@ -1,11 +1,13 @@
namespace NetEvolve.Pulse.Tests.Unit.PostgreSql;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using TUnit.Assertions.Extensions;
using TUnit.Core;
-using static global::NetEvolve.Pulse.Outbox.PostgreSqlOutboxOptionsExtensions;
-using OutboxOptions = global::NetEvolve.Pulse.Outbox.OutboxOptions;
+using static NetEvolve.Pulse.Outbox.PostgreSqlOutboxOptionsExtensions;
+using OutboxOptions = Pulse.Outbox.OutboxOptions;
+[TestGroup("PostgreSql")]
public sealed class PostgreSqlOutboxOptionsExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxRepositoryTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxRepositoryTests.cs
index 9a00ee57..f908e730 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxRepositoryTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxRepositoryTests.cs
@@ -3,9 +3,11 @@
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("PostgreSql")]
public sealed class PostgreSqlOutboxRepositoryTests
{
private const string ValidConnectionString = "Host=localhost;Database=Test;Username=postgres;Password=secret;";
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxTransactionScopeTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxTransactionScopeTests.cs
index 6b469550..39d0ad1c 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxTransactionScopeTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/PostgreSql/PostgreSqlOutboxTransactionScopeTests.cs
@@ -1,9 +1,11 @@
namespace NetEvolve.Pulse.Tests.Unit.PostgreSql;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("PostgreSql")]
public sealed class PostgreSqlOutboxTransactionScopeTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/QueryCachingExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/QueryCachingExtensionsTests.cs
index a30177f6..4531aa94 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/QueryCachingExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/QueryCachingExtensionsTests.cs
@@ -5,6 +5,7 @@
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Caching;
using NetEvolve.Pulse.Interceptors;
@@ -13,6 +14,7 @@
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("QueryCaching")]
public sealed class QueryCachingExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqExtensionsTests.cs
index c1b513bb..50ed0d60 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqExtensionsTests.cs
@@ -1,12 +1,14 @@
-namespace NetEvolve.Pulse.Tests.Unit.RabbitMQ;
+namespace NetEvolve.Pulse.Tests.Unit.RabbitMQ;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("RabbitMQ")]
public sealed class RabbitMqExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqMessageTransportTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqMessageTransportTests.cs
index 36f0cf3a..181931e0 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqMessageTransportTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/RabbitMQ/RabbitMqMessageTransportTests.cs
@@ -1,8 +1,9 @@
-namespace NetEvolve.Pulse.Tests.Unit.RabbitMQ;
+namespace NetEvolve.Pulse.Tests.Unit.RabbitMQ;
using System.Text;
using global::RabbitMQ.Client;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Internals;
@@ -10,6 +11,7 @@ namespace NetEvolve.Pulse.Tests.Unit.RabbitMQ;
using TUnit.Assertions.Extensions;
using TUnit.Core;
+[TestGroup("RabbitMQ")]
public sealed class RabbitMqMessageTransportTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteEventOutboxTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteEventOutboxTests.cs
index 9bf480e3..a18fb5f7 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteEventOutboxTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteEventOutboxTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.Pulse.Tests.Unit.SQLite;
+namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System;
using System.Reflection;
@@ -6,11 +6,13 @@ namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System.Threading.Tasks;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SQLite")]
public sealed class SQLiteEventOutboxTests
{
[Test]
@@ -216,7 +218,7 @@ private static IEvent CreateLongTypeEvent()
typeName,
TypeAttributes.Public | TypeAttributes.Class | TypeAttributes.Sealed,
typeof(object),
- new[] { typeof(IEvent) }
+ [typeof(IEvent)]
);
var idField = typeBuilder.DefineField("_id", typeof(string), FieldAttributes.Private);
@@ -276,7 +278,7 @@ Type propertyType
| MethodAttributes.SpecialName
| MethodAttributes.HideBySig,
null,
- new[] { propertyType }
+ [propertyType]
);
var setIl = setMethod.GetILGenerator();
setIl.Emit(OpCodes.Ldarg_0);
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteExtensionsTests.cs
index c2944a10..9f29d44b 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteExtensionsTests.cs
@@ -1,10 +1,11 @@
-namespace NetEvolve.Pulse.Tests.Unit.SQLite;
+namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
@@ -12,6 +13,7 @@ namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using TUnit.Core;
using TUnit.Mocks;
+[TestGroup("SQLite")]
public sealed class SQLiteExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementDatabaseTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementDatabaseTests.cs
index 1cf7d236..de6d06cf 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementDatabaseTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementDatabaseTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit.SQLite;
+namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System;
using System.Threading.Tasks;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
@@ -12,6 +13,7 @@ namespace NetEvolve.Pulse.Tests.Unit.SQLite;
///
/// Database-focused tests for using an in-memory SQLite database.
///
+[TestGroup("SQLite")]
public sealed class SQLiteOutboxManagementDatabaseTests : IAsyncDisposable
{
private readonly string _dbIdentifier = $"mgmt_{Guid.NewGuid():N}";
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementTests.cs
index 179f603f..26757952 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxManagementTests.cs
@@ -1,11 +1,13 @@
-namespace NetEvolve.Pulse.Tests.Unit.SQLite;
+namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SQLite")]
public sealed class SQLiteOutboxManagementTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxOptionsExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxOptionsExtensionsTests.cs
index 1c0d739a..9ea899c9 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxOptionsExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxOptionsExtensionsTests.cs
@@ -1,11 +1,13 @@
namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using TUnit.Assertions.Extensions;
using TUnit.Core;
-using static global::NetEvolve.Pulse.Outbox.OutboxOptionsExtensions;
-using OutboxOptions = global::NetEvolve.Pulse.Outbox.OutboxOptions;
+using static NetEvolve.Pulse.Outbox.OutboxOptionsExtensions;
+using OutboxOptions = Pulse.Outbox.OutboxOptions;
+[TestGroup("SQLite")]
public sealed class OutboxOptionsExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryDatabaseTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryDatabaseTests.cs
index aa8a8bf1..91bf8000 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryDatabaseTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryDatabaseTests.cs
@@ -1,9 +1,10 @@
-namespace NetEvolve.Pulse.Tests.Unit.SQLite;
+namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System;
using System.Threading.Tasks;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
@@ -12,6 +13,7 @@ namespace NetEvolve.Pulse.Tests.Unit.SQLite;
///
/// Database-level unit tests for using an in-memory SQLite database.
///
+[TestGroup("SQLite")]
public sealed class SQLiteOutboxRepositoryDatabaseTests : IAsyncDisposable
{
// Named shared in-memory database - unique per test instance
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryTests.cs
index c26418a2..188586c7 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxRepositoryTests.cs
@@ -1,11 +1,13 @@
-namespace NetEvolve.Pulse.Tests.Unit.SQLite;
+namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SQLite")]
public sealed class SQLiteOutboxRepositoryTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxTransactionScopeTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxTransactionScopeTests.cs
index a1c9f28c..4ca77221 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxTransactionScopeTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SQLite/SQLiteOutboxTransactionScopeTests.cs
@@ -1,9 +1,11 @@
-namespace NetEvolve.Pulse.Tests.Unit.SQLite;
+namespace NetEvolve.Pulse.Tests.Unit.SQLite;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SQLite")]
public sealed class SQLiteOutboxTransactionScopeTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/ServiceCollectionExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/ServiceCollectionExtensionsTests.cs
index b9070f43..68d68cac 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/ServiceCollectionExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/ServiceCollectionExtensionsTests.cs
@@ -2,11 +2,13 @@
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Interceptors;
using NetEvolve.Pulse.Internals;
using TUnit.Core;
+[TestGroup("ServiceCollection")]
public class ServiceCollectionExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerEventOutboxTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerEventOutboxTests.cs
index 55b804d7..79cb4727 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerEventOutboxTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerEventOutboxTests.cs
@@ -4,11 +4,13 @@
using System.Threading.Tasks;
using Microsoft.Data.SqlClient;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SqlServer")]
public sealed class SqlServerEventOutboxTests
{
[Test]
@@ -20,7 +22,7 @@ public async Task Constructor_WithNullConnection_ThrowsArgumentNullException() =
[Test]
public async Task Constructor_WithNullOptions_ThrowsArgumentNullException()
{
- using var connection = new SqlConnection("Server=.;Encrypt=true;");
+ await using var connection = new SqlConnection("Server=.;Encrypt=true;");
_ = await Assert
.That(() => new SqlServerEventOutbox(connection, null!, TimeProvider.System))
@@ -30,7 +32,7 @@ public async Task Constructor_WithNullOptions_ThrowsArgumentNullException()
[Test]
public async Task Constructor_WithNullTimeProvider_ThrowsArgumentNullException()
{
- using var connection = new SqlConnection("Server=.;Encrypt=true;");
+ await using var connection = new SqlConnection("Server=.;Encrypt=true;");
_ = await Assert
.That(() => new SqlServerEventOutbox(connection, Options.Create(new OutboxOptions()), null!))
@@ -40,7 +42,7 @@ public async Task Constructor_WithNullTimeProvider_ThrowsArgumentNullException()
[Test]
public async Task Constructor_WithValidArguments_CreatesInstance()
{
- using var connection = new SqlConnection("Server=.;Encrypt=true;");
+ await using var connection = new SqlConnection("Server=.;Encrypt=true;");
var outbox = new SqlServerEventOutbox(connection, Options.Create(new OutboxOptions()), TimeProvider.System);
@@ -50,7 +52,7 @@ public async Task Constructor_WithValidArguments_CreatesInstance()
[Test]
public async Task Constructor_WithTransaction_CreatesInstance()
{
- using var connection = new SqlConnection("Server=.;Encrypt=true;");
+ await using var connection = new SqlConnection("Server=.;Encrypt=true;");
var outbox = new SqlServerEventOutbox(
connection,
@@ -65,7 +67,7 @@ public async Task Constructor_WithTransaction_CreatesInstance()
[Test]
public async Task StoreAsync_WithNullMessage_ThrowsArgumentNullException()
{
- using var connection = new SqlConnection("Server=.;Encrypt=true;");
+ await using var connection = new SqlConnection("Server=.;Encrypt=true;");
var outbox = new SqlServerEventOutbox(connection, Options.Create(new OutboxOptions()), TimeProvider.System);
_ = await Assert
@@ -76,7 +78,7 @@ public async Task StoreAsync_WithNullMessage_ThrowsArgumentNullException()
[Test]
public async Task StoreAsync_WithLongCorrelationId_ThrowsInvalidOperationException()
{
- using var connection = new SqlConnection("Server=.;Encrypt=true;");
+ await using var connection = new SqlConnection("Server=.;Encrypt=true;");
var outbox = new SqlServerEventOutbox(connection, Options.Create(new OutboxOptions()), TimeProvider.System);
var message = new TestEvent
{
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerExtensionsTests.cs
index a0d402ee..b8618d39 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerExtensionsTests.cs
@@ -1,10 +1,11 @@
-namespace NetEvolve.Pulse.Tests.Unit.SqlServer;
+namespace NetEvolve.Pulse.Tests.Unit.SqlServer;
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse;
using NetEvolve.Pulse.Extensibility;
using NetEvolve.Pulse.Extensibility.Outbox;
@@ -12,6 +13,7 @@ namespace NetEvolve.Pulse.Tests.Unit.SqlServer;
using TUnit.Core;
using TUnit.Mocks;
+[TestGroup("SqlServer")]
public sealed class SqlServerExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxManagementTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxManagementTests.cs
index f5cea8be..76360914 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxManagementTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxManagementTests.cs
@@ -3,9 +3,11 @@
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SqlServer")]
public sealed class SqlServerOutboxManagementTests
{
private const string ValidConnectionString = "Server=.;Database=Test;Integrated Security=true;";
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxOptionsExtensionsTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxOptionsExtensionsTests.cs
index 0cf0e8cf..e15da219 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxOptionsExtensionsTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxOptionsExtensionsTests.cs
@@ -1,11 +1,13 @@
namespace NetEvolve.Pulse.Tests.Unit.SqlServer;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using TUnit.Assertions.Extensions;
using TUnit.Core;
-using static global::NetEvolve.Pulse.Outbox.SqlServerOutboxOptionsExtensions;
-using OutboxOptions = global::NetEvolve.Pulse.Outbox.OutboxOptions;
+using static NetEvolve.Pulse.Outbox.SqlServerOutboxOptionsExtensions;
+using OutboxOptions = Pulse.Outbox.OutboxOptions;
+[TestGroup("SqlServer")]
public sealed class SqlServerOutboxOptionsExtensionsTests
{
[Test]
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxRepositoryTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxRepositoryTests.cs
index 8324c9e7..d40049bb 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxRepositoryTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxRepositoryTests.cs
@@ -3,9 +3,11 @@
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SqlServer")]
public sealed class SqlServerOutboxRepositoryTests
{
private const string ValidConnectionString = "Server=.;Database=Test;Integrated Security=true;";
diff --git a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxTransactionScopeTests.cs b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxTransactionScopeTests.cs
index 3c4610ae..4ad47817 100644
--- a/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxTransactionScopeTests.cs
+++ b/tests/NetEvolve.Pulse.Tests.Unit/SqlServer/SqlServerOutboxTransactionScopeTests.cs
@@ -1,9 +1,11 @@
namespace NetEvolve.Pulse.Tests.Unit.SqlServer;
using System.Threading.Tasks;
+using NetEvolve.Extensions.TUnit;
using NetEvolve.Pulse.Outbox;
using TUnit.Core;
+[TestGroup("SqlServer")]
public sealed class SqlServerOutboxTransactionScopeTests
{
[Test]