Skip to content

Dispatch mediator endpoints through Solid processors - #870

Merged
AndreaCuneo merged 9 commits into
masterfrom
copilot/update-generators-and-tests
Aug 14, 2026
Merged

AndreaCuneo merged 9 commits into
masterfrom
copilot/update-generators-and-tests

Merge remote-tracking branch 'origin/master' into copilot/update-gene…

ae30e8b
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / DotNET Tests succeeded Aug 14, 2026 in 0s

537 passed, 0 failed and 0 skipped

Tests passed successfully

Expand for details
Report Passed Failed Skipped Time
TestResults/Ark.MediatorFramework.Sample.Tests_net10.0_x64.trx 51 ✅ 58s
TestResults/Ark.Reference.Core.Tests_net10.0_x64.trx 46 ✅ 36s
TestResults/Ark.ResourceWatcher.Sample.Tests_net10.0_x64.trx 11 ✅ 2s
TestResults/Ark.Tools.AspNetCore.MinimalApi.Tests_net10.0_x64.trx 14 ✅ 3s
TestResults/Ark.Tools.AspNetCore.ProblemDetails.Tests_net10.0_x64.trx 11 ✅ 2s
TestResults/Ark.Tools.Core.Analyzers.Tests_net10.0_x64.trx 3 ✅ 3s
TestResults/Ark.Tools.Core.Interceptors.Tests_net10.0_x64.trx 11 ✅ 656ms
TestResults/Ark.Tools.Core.Tests_net10.0_x64.trx 68 ✅ 2s
TestResults/Ark.Tools.Dapper.Tests_net10.0_x64.trx 13 ✅ 596ms
TestResults/Ark.Tools.MediatorFramework.AzureFunctions.Boundary.Tests_net10.0_x64.trx 9 ✅ 12s
TestResults/Ark.Tools.MediatorFramework.Hosting.Tests_net10.0_x64.trx 57 ✅ 22s
TestResults/Ark.Tools.MediatorFramework.Tests_net10.0_x64.trx 106 ✅ 25s
TestResults/Ark.Tools.MessagePack.Tests_net10.0_x64.trx 5 ✅ 634ms
TestResults/Ark.Tools.Nodatime.Protobuf.Tests_net10.0_x64.trx 5 ✅ 855ms
TestResults/Ark.Tools.Nodatime.Protobuf.Tests_net8.0_x64.trx 5 ✅ 1s
TestResults/Ark.Tools.Nodatime.Tests_net10.0_x64.trx 10 ✅ 633ms
TestResults/Ark.Tools.Protobuf.Tests_net10.0_x64.trx 4 ✅ 840ms
TestResults/Ark.Tools.ResourceWatcher.Tests_net10.0_x64.trx 33 ✅ 3s
TestResults/Ark.Tools.ResourceWatcher.Tests_net8.0_x64.trx 33 ✅ 6s
TestResults/Ark.Tools.Solid.Analyzers.Tests_net10.0_x64.trx 7 ✅ 5s
TestResults/Ark.Tools.Solid.SimpleInjector.Tests_net10.0_x64.trx 3 ✅ 726ms
TestResults/Ark.Tools.Sql.Oracle.Tests_net10.0_x64.trx 4 ✅ 471ms
TestResults/WebApplicationDemo.Tests_net10.0_x64.trx 28 ✅ 6s

✅ TestResults/Ark.MediatorFramework.Sample.Tests_net10.0_x64.trx

51 tests were completed in 58s with 51 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.MediatorFramework.Sample.Tests.ApplicationInsightsTests 3 ✅ 81ms
Ark.MediatorFramework.Sample.Tests.ApplicationTestContextTests 8 ✅ 2s
Ark.MediatorFramework.Sample.Tests.AsyncEnumerableStreamingTests 2 ✅ 226ms
Ark.MediatorFramework.Sample.Tests.AzureFunctionsRebusTests 2 ✅ 225ms
Ark.MediatorFramework.Sample.Tests.BookStreamingAndEditionTests 2 ✅ 201ms
Ark.MediatorFramework.Sample.Tests.BookTransportBoundaryTests 2 ✅ 2s
Ark.MediatorFramework.Sample.Tests.CompositionRootTests 1 ✅ 569ms
Ark.MediatorFramework.Sample.Tests.ConcurrencyRoundtripTests 2 ✅ 186ms
Ark.MediatorFramework.Sample.Tests.Features.BooksFeature 28 ✅ 12s
Ark.MediatorFramework.Sample.Tests.RebusRetryTests 1 ✅ 435ms

✅ Ark.MediatorFramework.Sample.Tests.ApplicationInsightsTests

✅ ClassifiesClientAndServerResponses
✅ PropagatesAuthenticatedIdentity
✅ RegistersClassicDefaultsWithoutSnapshotDebugger

✅ Ark.MediatorFramework.Sample.Tests.ApplicationTestContextTests

✅ BulkCreateDispatchesApplicationRequest
✅ DirectDispatchRunsApplicationDecorators
✅ ExternalServiceProxyFailsOutsideScenario
✅ FailedDispatchDisposesItsScope
✅ InvalidRequestThrowsValidationException
✅ NestedDispatchUsesCurrentScope
✅ OptimisticConcurrencyDecoratorRetriesTransientFailures
✅ SequentialDispatchesUseDistinctScopes

✅ Ark.MediatorFramework.Sample.Tests.AsyncEnumerableStreamingTests

✅ DirectEmptyStreamIsEmpty
✅ DirectStreamDeliversItemsAndSupportsCancellation

✅ Ark.MediatorFramework.Sample.Tests.AzureFunctionsRebusTests

✅ MissingOutboundBusConfigurationFailsClearly
✅ OutboundCompositionRoutesToOwnerQueue

✅ Ark.MediatorFramework.Sample.Tests.BookStreamingAndEditionTests

✅ DescribeEditionDispatchesConcreteVariant
✅ StreamRejectsCountAboveBound

✅ Ark.MediatorFramework.Sample.Tests.BookTransportBoundaryTests

✅ GeneratedGrpcBooksServiceDispatchesEditionAndStream
✅ GeneratedHttpBooksEndpointsExposeExpectedRoutes

✅ Ark.MediatorFramework.Sample.Tests.CompositionRootTests

✅ ProductionCompositionStartsAndExposesHealth

✅ Ark.MediatorFramework.Sample.Tests.ConcurrencyRoundtripTests

✅ DirectRoundtripRetriesTransientFailures
✅ DirectRoundtripUsesAndRejectsStaleETags

✅ Ark.MediatorFramework.Sample.Tests.Features.BooksFeature

✅ Cancel a running book print process
✅ Complete a book print process
✅ Create a book audit
✅ Create and list book reviews
✅ Describe a digital Book edition
✅ Describe a printed Book edition
✅ Filter books by author
✅ Manage a book
✅ Page books in a stable sort order
✅ Prevent concurrent book print processes
✅ Record and retrieve reading activity
✅ Reject a book cover without its scope
✅ Reject a book mutation without its write scope
✅ Reject a book review without its write scope
✅ Reject a Book stream above its bound
✅ Reject a stale book ETag
✅ Reject an invalid book cover
✅ Reject an invalid book review
✅ Reject an invalid book update
✅ Reject cancellation of a completed book print process
✅ Reject invalid reading activity
✅ Reject reading activity without its write scope
✅ Report a failed book print process
✅ Report a missing book cover
✅ Resume an interrupted book print process
✅ Stream bounded Book items with cancellation
✅ Surface a failed external print-completion notification
✅ Upload and download a book cover

✅ Ark.MediatorFramework.Sample.Tests.RebusRetryTests

✅ ExhaustedRequestMovesToErrorQueue

✅ TestResults/Ark.Reference.Core.Tests_net10.0_x64.trx

46 tests were completed in 36s with 46 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Reference.Core.Tests.Auth.PolicyAuthorizeOrLogicDecoratorTests 5 ✅ 75ms
Ark.Reference.Core.Tests.Features.BookFeature 16 ✅ 2s
Ark.Reference.Core.Tests.Features.BookPrintProcessFeature 4 ✅ 3s
Ark.Reference.Core.Tests.Features.PingFeature 20 ✅ 2s
Ark.Reference.Core.Tests.Features.SwaggerFeature 1 ✅ 257ms

✅ Ark.Reference.Core.Tests.Auth.PolicyAuthorizeOrLogicDecoratorTests

✅ AllPoliciesFailurePreservesPolicyMessages
✅ ConcurrentFirstUseSharesMetadata
✅ FirstPolicySuccessStopsEvaluation
✅ InheritedAttributesAreCachedOncePerClosedContract
✅ NoPolicyPassesThrough

✅ Ark.Reference.Core.Tests.Features.BookFeature

✅ Endpoint Book Bulk Create
✅ Endpoint Book Create and Get
✅ Endpoint Book Delete
✅ Endpoint Book Get by filters - <FilterName>(Author,Martin,1,2)
✅ Endpoint Book Get by filters - <FilterName>(Author,Tolkien,1,3)
✅ Endpoint Book Get by filters - <FilterName>(Genre,Fiction,1,5)
✅ Endpoint Book Get by filters - <FilterName>(Genre,Technology,2,4)
✅ Endpoint Book Get by filters - <FilterName>(Title,Clean Code,1,6)
✅ Endpoint Book Get by filters - <FilterName>(Title,The Hobbit,1,7)
✅ Endpoint Book Update
✅ Endpoint Book Update 404
✅ Validator Book Create fails for author too long
✅ Validator Book Create fails for no author provided
✅ Validator Book Create fails for no genre provided
✅ Validator Book Create fails for no title provided
✅ Validator Book Create fails for title too long

✅ Ark.Reference.Core.Tests.Features.BookPrintProcessFeature

✅ Cannot create print process when one is already running
✅ Create a book print process successfully
✅ IFailed handler sets error status correctly
✅ Print process completes successfully in background

✅ Ark.Reference.Core.Tests.Features.PingFeature

✅ Audit Check Ping Create
✅ Audit Check Ping UpdatePatch
✅ Audit Check Ping UpdatePut
✅ Endpoint Ping Create and Get
✅ Endpoint Ping Create and SendMsg
✅ Endpoint Ping Create and SendMsg Fails
✅ Endpoint Ping Create and SendMsg FastFails
✅ Endpoint Ping Delete
✅ Endpoint Ping Get by filters
✅ Endpoint Ping Patch
✅ Endpoint Ping Patch 404
✅ Endpoint Ping Put
✅ Endpoint Ping Put 404
✅ Endpoint Ping Test
✅ Endpoint Ping Test by Name
✅ Validator Ping by Name fails
✅ Validator Ping by Name fails because the min length
✅ Validator Ping Create fails for name too long
✅ Validator Ping Create fails for no name provided
✅ Validator Ping Create fails for no type provided

✅ Ark.Reference.Core.Tests.Features.SwaggerFeature

✅ Swagger Spec <version>(v1.0,0)

✅ TestResults/Ark.ResourceWatcher.Sample.Tests_net10.0_x64.trx

11 tests were completed in 2s with 11 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.ResourceWatcher.Sample.Tests.Features.BlobWorkerHostIntegrationFeature 1 ✅ 1s
Ark.ResourceWatcher.Sample.Tests.Transform.MyTransformServiceTests 10 ✅ 1s

✅ Ark.ResourceWatcher.Sample.Tests.Features.BlobWorkerHostIntegrationFeature

✅ New blob is fetched and processed

✅ Ark.ResourceWatcher.Sample.Tests.Transform.MyTransformServiceTests

✅ Transform_DifferentSourceId_PreservedInOutput
✅ Transform_Error_malformed_csv_invalid_decimal
✅ Transform_Error_malformed_csv_missing_columns
✅ Transform_NullInput_ThrowsArgumentNullException
✅ Transform_Success_decimal_precision
✅ Transform_Success_empty_file
✅ Transform_Success_header_only
✅ Transform_Success_valid_multiple_records
✅ Transform_Success_valid_single_record
✅ Transform_Success_whitespace_handling

✅ TestResults/Ark.Tools.AspNetCore.MinimalApi.Tests_net10.0_x64.trx

14 tests were completed in 3s with 14 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.AspNetCore.MinimalApi.Tests.ArkMinimalApiHostVerificationTests 6 ✅ 2s
Ark.Tools.AspNetCore.MinimalApi.Tests.ArkMinimalApiSecurityTests 8 ✅ 323ms

✅ Ark.Tools.AspNetCore.MinimalApi.Tests.ArkMinimalApiHostVerificationTests

✅ DefaultHealthChecksDoNotRegisterUiOrHistoryServices
✅ HealthCheckReportsDependencyFailureWithoutExceptionDetails
✅ HealthChecksAreAnonymousWhenAuthenticationIsRequired
✅ StartFailsWhenContainerVerificationFails
✅ StartupDiagnosticsAreEnabledByTheOptionalHelper
✅ VerificationAndStartupCallbackCompleteBeforeFirstRequest

✅ Ark.Tools.AspNetCore.MinimalApi.Tests.ArkMinimalApiSecurityTests

✅ AddsSecurityHeadersAndHsts
✅ ApiPolicy_HasSameOriginCrossOriginOpenerPolicy
✅ DocumentationPolicy_HasUnsafeNoneCrossOriginOpenerPolicy ("/openapi")
✅ DocumentationPolicy_HasUnsafeNoneCrossOriginOpenerPolicy ("/scalar")
✅ DocumentationPolicy_HasUnsafeNoneCrossOriginOpenerPolicy ("/scalar/v1")
✅ DocumentationPolicy_HasUnsafeNoneCrossOriginOpenerPolicy ("/swagger")
✅ SecurityHeaders_ArePresentOnErrorAndNotFound ("/error",500)
✅ SecurityHeaders_ArePresentOnErrorAndNotFound ("/not-found",404)

✅ TestResults/Ark.Tools.AspNetCore.ProblemDetails.Tests_net10.0_x64.trx

11 tests were completed in 2s with 11 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.AspNetCore.ProblemDetails.Tests.ModelStateValidationFilterTests 5 ✅ 116ms
Ark.Tools.AspNetCore.ProblemDetails.Tests.ProblemDetailsShapeTests 6 ✅ 376ms

✅ Ark.Tools.AspNetCore.ProblemDetails.Tests.ModelStateValidationFilterTests

✅ DoesNotReturnBadRequestForValidUnmarkedAction
✅ ReturnsBadRequestForInvalidUnmarkedAction
✅ SkipsInvalidModelStateForMarkedAction
✅ SkipsValidModelStateForMarkedAction
✅ SupportsDistinctActionMethodsConcurrently

✅ Ark.Tools.AspNetCore.ProblemDetails.Tests.ProblemDetailsShapeTests

✅ IncludesExceptionDetailsInDevelopment
✅ IncludesExceptionDetailsWhenExplicitlyEnabled
✅ MapsBusinessRuleViolationsConcurrentlyForNewTypes
✅ MapsBusinessRuleViolationWithTheSamePayloadAsReflection
✅ MapsExceptionWithTheSameUriTypeAsTheExistingImplementation
✅ SerializesProblemDetailsWithExpectedProperties

✅ TestResults/Ark.Tools.Core.Analyzers.Tests_net10.0_x64.trx

3 tests were completed in 3s with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Core.Analyzers.Tests.EvolvableEnumAnalyzerTests 3 ✅ 2s

✅ Ark.Tools.Core.Analyzers.Tests.EvolvableEnumAnalyzerTests

✅ AliasesAndLookalikes_ShouldNotProduceFalsePositives
✅ InvalidEnums_ShouldReportActionableErrors
✅ ValidEnums_ShouldNotReportDiagnostics

✅ TestResults/Ark.Tools.Core.Interceptors.Tests_net10.0_x64.trx

11 tests were completed in 656ms with 11 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Core.Interceptors.Tests.InterceptorRuntimeTests 11 ✅ 197ms

✅ Ark.Tools.Core.Interceptors.Tests.InterceptorRuntimeTests

✅ GeneratedSource_ContainsDedupedInterceptorForInterceptedEntity
✅ GeneratedSource_DoesNotContainInterceptorsForIneligibleCallSites
✅ ToDataTableArk_ThroughGenericMethod_FallsBackSafelyAndProducesCorrectResult
✅ ToDataTableArk_WithAnonymousType_UsesFallback
✅ ToDataTableArk_WithEligibleType_ProducesCorrectDataTable
✅ ToDataTableArk_WithEligibleTypeSecondCallSite_ProducesCorrectDataTable
✅ ToDataTableArk_WithEvolvableEnumProperties_ConvertsValues
✅ ToDataTableArk_WithMixedMembers_OrdersFieldsBeforeProperties
✅ ToDataTableArk_WithNonFlatDerivedType_FallsBackSafelyAndProducesCorrectResult
✅ ToDataTableArk_WithStaticMember_UsesFallback
✅ ToDataTableArk_WithStructType_ProducesCorrectDataTable

✅ TestResults/Ark.Tools.Core.Tests_net10.0_x64.trx

68 tests were completed in 2s with 68 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Core.Tests.DataTableExtensionsTests 22 ✅ 789ms
Ark.Tools.Core.Tests.EvolvableEnumJsonConverterTests 10 ✅ 1s
Ark.Tools.Core.Tests.EvolvableEnumParsingTests 4 ✅ 54ms
Ark.Tools.Core.Tests.EvolvableEnumTests 20 ✅ 162ms
Ark.Tools.Core.Tests.ParallellExtensionsTests 12 ✅ 1s

✅ Ark.Tools.Core.Tests.DataTableExtensionsTests

✅ ToDataTable_WhenEnumerationThrows_RestoresNotifications
✅ ToDataTable_WithExistingTable_UsesOrdinalMapAndProducesSameValues
✅ ToDataTableArk_CalledTwiceForSameType_ProducesIndependentTablesWithConsistentSchema
✅ ToDataTableArk_InvokedViaReflection_ExercisesFallbackAndProducesCorrectResult
✅ ToDataTableArk_InvokedViaReflectionWithNullElement_ThrowsTargetException
✅ ToDataTableArk_WithEmptySource_ProducesEmptySchemaOnlyTable
✅ ToDataTableArk_WithEnumProperty_ConvertsToMemberNameString
✅ ToDataTableArk_WithEvolvableEnumProperties_ConvertsValues
✅ ToDataTableArk_WithMixedTypeProperties_CreatesExpectedColumnSchema
✅ ToDataTableArk_WithNodaTimeProperties_ConvertsToDocumentedDotNetTypes
✅ ToDataTableArk_WithNoPublicMembers_ProducesZeroColumnTableWithOneRowPerElement
✅ ToDataTableArk_WithNullableEnum_ConvertsValueOrNull
✅ ToDataTableArk_WithNullElementForReferenceType_ThrowsTargetException
✅ ToDataTableArk_WithNullNodaTimeNullableProperties_StoresDbNull
✅ ToDataTableArk_WithNullNullableProperty_StoresDbNull
✅ ToDataTableArk_WithPlainNullableValueTypes_RoundTripsNullAndValue
✅ ToDataTableArk_WithPopulatedRow_MapsAllValuesCorrectly
✅ ToDataTableArk_WithPrimitiveElementType_CreatesSingleValueColumn
✅ ToDataTableArk_WithPublicField_ShredsFieldsAndPropertiesTogether
✅ ToDataTableArk_WithRuntimeTypedValues_ConvertsValues
✅ ToDataTableArk_WithStaticMembers_ExcludesThem
✅ ToDataTableArk_WithUnreadableProperties_ExcludesThem

✅ Ark.Tools.Core.Tests.EvolvableEnumJsonConverterTests

✅ DefaultFormat_SerializingUnknownNumber_ShouldThrowExplicitly
✅ DefaultFormat_ShouldAcceptNumericToken
✅ DefaultFormat_ShouldRoundtripDefinedValue
✅ DefaultFormat_ShouldRoundtripUnknownName
✅ DefaultFormat_ShouldSerializeDefinedValueAsName
✅ DefaultFormat_ShouldSerializeNotSetAsName
✅ IntegerFormat_SerializingUnknownName_ShouldThrowExplicitly
✅ IntegerFormat_ShouldRoundtripDefinedValue
✅ IntegerFormat_ShouldRoundtripUnknownNumber
✅ IntegerFormat_ShouldSerializeDefinedValueAsNumber

✅ Ark.Tools.Core.Tests.EvolvableEnumParsingTests

✅ Parse_ShouldPreserveKnownAndUnknownStates
✅ Parse_WithExplicitBacking_ShouldEnforceItsRange
✅ TypeConverter_ShouldUseStringAndExactBackingType
✅ Value_ShouldSupportExhaustiveEnumSwitchingWithUnknownFallback

✅ Ark.Tools.Core.Tests.EvolvableEnumTests

✅ ByteBackedEnum_ShouldPreserveWidthAndMagnitude
✅ Default_ShouldBeNotSet
✅ DefinedValue_ShouldRoundtripThroughConversions
✅ EnumWithNonZeroNotSetMember_ShouldBeRejected
✅ EnumWithoutNotSetMember_ShouldBeRejected
✅ Equality_ShouldCompareByRepresentedState
✅ ExplicitBackingType_ShouldBeRequired
✅ FlagsEnum_ShouldBeRejected
✅ FromName_WithDeclaredMemberName_ShouldResolveToDefinedValue
✅ LongBackedEnum_ShouldRoundtripMinAndMaxValue
✅ SByteBackedEnum_ShouldPreserveSign
✅ ToEvolvable_ShouldWrapValue
✅ ToEvolvable_WithBackingType_ShouldWrapValue
✅ ToString_ForDefinedValue_ShouldRenderName
✅ ULongBackedEnum_ShouldRoundtripMaxValueWithoutSignCorruption
✅ UndefinedValue_ExplicitCast_ShouldThrowExplicitly
✅ UnknownName_ShouldBeRetainedWithoutNumericValue
✅ UnknownName_ToNumber_ShouldThrowExplicitly
✅ UnknownName_ToNumberAgain_ShouldThrowExplicitly
✅ UnknownNumber_ShouldBeRetainedWithoutName

✅ Ark.Tools.Core.Tests.ParallellExtensionsTests

✅ Parallel_ShouldProcessInParallel
✅ Parallel_ShouldPropagateExceptions
✅ Parallel_ShouldRespectDegreeOfParallelism
✅ Parallel_WithCancellationToken_ShouldProcessAllItemsWhenNotCancelled
✅ Parallel_WithCancellationToken_ShouldThrowWhenCancelled
✅ Parallel_WithEmptyList_ShouldCompleteSuccessfully
✅ Parallel_WithEmptyListAndResult_ShouldReturnEmptyList
✅ Parallel_WithIndexAndTaskAction_ShouldProcessWithCorrectIndices
✅ Parallel_WithIndexAndTaskResultAction_ShouldReturnAllResults
✅ Parallel_WithTaskAction_ShouldProcessAllItems
✅ Parallel_WithTaskResultAction_ShouldReturnAllResults
✅ Parallel_WithTaskResultAndCancellationToken_ShouldReturnAllResults

✅ TestResults/Ark.Tools.Dapper.Tests_net10.0_x64.trx

13 tests were completed in 596ms with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Dapper.Tests.EvolvableEnumTypeHandlerTests 13 ✅ 109ms

✅ Ark.Tools.Dapper.Tests.EvolvableEnumTypeHandlerTests

✅ Parse_HugeDecimal_ShouldRoundtripULongMaxValue
✅ Parse_KnownInteger_ShouldReturnDefinedValue
✅ Parse_KnownString_ShouldReturnDefinedValue
✅ Parse_Null_ShouldReturnNotSet
✅ Parse_UnknownInteger_ShouldBeRetained
✅ Parse_UnknownString_ShouldBeRetained
✅ Parse_UnsupportedType_ShouldThrowDataException
✅ Register_ShouldNotThrow
✅ SetValue_NameFormat_ShouldWriteSymbolicName
✅ SetValue_NameFormat_UnknownNumber_ShouldThrowExplicitly
✅ SetValue_NumberFormat_HugeULong_ShouldUseExactBackingType
✅ SetValue_NumberFormat_ShouldWriteNumericValue
✅ SetValue_NumberFormat_UnknownName_ShouldThrowExplicitly

✅ TestResults/Ark.Tools.MediatorFramework.AzureFunctions.Boundary.Tests_net10.0_x64.trx

9 tests were completed in 12s with 9 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.MediatorFramework.AzureFunctions.Boundary.Tests.AzureFunctionsBoundaryTests 9 ✅ 2s

✅ Ark.Tools.MediatorFramework.AzureFunctions.Boundary.Tests.AzureFunctionsBoundaryTests

✅ AnonymousEndpointIsReachableWithoutCredentials
✅ BindingFailureProducesProblemDetails
✅ HealthEndpointIsDiscoveredByCoreTools
✅ InvalidJsonBodyProducesProblemDetails
✅ JsonBodyIsBoundIntoTheRecordContract
✅ RouteAndQueryValuesAreBoundIntoTheContract
✅ TestHostEndpointsMatchTheParityMatrix
✅ UnauthenticatedRequestIsChallenged
✅ ValidationFailureProducesProblemDetails

✅ TestResults/Ark.Tools.MediatorFramework.Hosting.Tests_net10.0_x64.trx

57 tests were completed in 22s with 57 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.MediatorFramework.Hosting.Tests.GrpcAuthorizationTests 4 ✅ 3s
Ark.Tools.MediatorFramework.Hosting.Tests.GrpcErrorsTests 5 ✅ 1s
Ark.Tools.MediatorFramework.Hosting.Tests.GrpcProtoExportTests 2 ✅ 44ms
Ark.Tools.MediatorFramework.Hosting.Tests.GrpcReflectionTests 1 ✅ 2s
Ark.Tools.MediatorFramework.Hosting.Tests.GrpcStreamingTests 3 ✅ 460ms
Ark.Tools.MediatorFramework.Hosting.Tests.GrpcUnaryTests 4 ✅ 762ms
Ark.Tools.MediatorFramework.Hosting.Tests.GrpcUploadTests 2 ✅ 331ms
Ark.Tools.MediatorFramework.Hosting.Tests.HostingFixtureTests 2 ✅ 818ms
Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiAttachmentsTests 7 ✅ 2s
Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiAuthorizationTests 3 ✅ 1s
Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiBindingTests 5 ✅ 1s
Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiErrorsTests 5 ✅ 1s
Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiOpenApiTests 2 ✅ 995ms
Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiSerializationTests 2 ✅ 582ms
Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiStreamingTests 4 ✅ 2s
Ark.Tools.MediatorFramework.Hosting.Tests.RebusDispatchTests 3 ✅ 836ms
Ark.Tools.MediatorFramework.Hosting.Tests.RebusRetryTests 3 ✅ 1s

✅ Ark.Tools.MediatorFramework.Hosting.Tests.GrpcAuthorizationTests

✅ AllowsCallerWithRequiredScope
✅ PropagatesUserContext
✅ RejectsAnonymousCaller
✅ RejectsCallerWithoutRequiredScope

✅ Ark.Tools.MediatorFramework.Hosting.Tests.GrpcErrorsTests

✅ MapsBusinessViolationToRichStatus
✅ MapsConcurrencyFailureToAborted
✅ MapsETagMismatchToFailedPrecondition
✅ MapsNotFoundResultToGrpcFailure
✅ MapsValidationFailureToRichStatus

✅ Ark.Tools.MediatorFramework.Hosting.Tests.GrpcProtoExportTests

✅ ExportsDeterministicProtoServices
✅ GeneratesVersionedClientShape

✅ Ark.Tools.MediatorFramework.Hosting.Tests.GrpcReflectionTests

✅ DiscoversVersionedServicesThroughReflection

✅ Ark.Tools.MediatorFramework.Hosting.Tests.GrpcStreamingTests

✅ PropagatesCancellationToProducer
✅ StreamsEmptySequence
✅ StreamsItemsIncrementally

✅ Ark.Tools.MediatorFramework.Hosting.Tests.GrpcUnaryTests

✅ BindsGeneratedUnaryRequestAndQuery
✅ DispatchesActiveVersionedService
✅ DispatchesGeneratedCommand
✅ PreservesWireTypes

✅ Ark.Tools.MediatorFramework.Hosting.Tests.GrpcUploadTests

✅ RejectsDataBeforeMetadata
✅ UploadsMetadataAndDataChunks

✅ Ark.Tools.MediatorFramework.Hosting.Tests.HostingFixtureTests

✅ FixtureBuildsHostsAndDisposesResources
✅ RebusCommandIsDeliveredAndProcessed

✅ Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiAttachmentsTests

✅ BindsAttachmentCollection
✅ BindsSingleAttachment
✅ DownloadsAttachment
✅ RejectsOversizedAttachment
✅ RejectsTooManyFilesForAttachmentCollection
✅ RejectsTooManyFilesForSingleAttachment
✅ RejectsUnsupportedAttachmentContentType

✅ Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiAuthorizationTests

✅ AllowsPrincipalWithRequiredPolicy
✅ RejectsAnonymousPrincipal
✅ RejectsAuthenticatedPrincipalWithoutPolicy

✅ Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiBindingTests

✅ BindsOnlyActiveVersionedRoutes
✅ BindsOptionalQueryAndCancellationToken
✅ BindsRouteQueryBodyAndServerSetValues
✅ RejectsInvalidBodyBinding
✅ RejectsInvalidRouteAndQueryBinding

✅ Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiErrorsTests

✅ MapsBusinessViolationToProblemDetails
✅ MapsNullResultToNotFound
✅ MapsUnexpectedExceptionToProblemDetails
✅ MapsValidationFailureToProblemDetails
✅ ReturnsConfiguredSuccessStatusCode

✅ Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiOpenApiTests

✅ V1DocumentContainsFilteredSchemasAndDocumentation
✅ V2DocumentContainsOnlyV2Operations

✅ Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiSerializationTests

✅ NegotiatesJsonRequestAndResponse
✅ NegotiatesMessagePackRequestAndResponse

✅ Ark.Tools.MediatorFramework.Hosting.Tests.MinimalApiStreamingTests

✅ ObservesRequestCancellationInProducer
✅ StreamsEmptySequence
✅ StreamsFirstItemBeforeProducerCompletes
✅ StreamsPlainJsonArray

✅ Ark.Tools.MediatorFramework.Hosting.Tests.RebusDispatchTests

✅ DeferredMessageIsTrackedAndCanBeIgnoredExplicitly
✅ GeneratedWrapperDispatchesWithScopeAndUserContext
✅ GeneratedWrapperSuppliesCancellationToken

✅ Ark.Tools.MediatorFramework.Hosting.Tests.RebusRetryTests

✅ FailedMessageIsRetriedAndMovedToErrorQueue
✅ FailedSecondLevelRetryIsMovedToErrorQueue
✅ SecondLevelRetryDispatchesFailedMessageToHandler

✅ TestResults/Ark.Tools.MediatorFramework.Tests_net10.0_x64.trx

106 tests were completed in 25s with 106 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.MediatorFramework.Tests.AzureFunctionsHttpTests 4 ✅ 365ms
Ark.Tools.MediatorFramework.Tests.AzureFunctionsResultsTests 3 ✅ 18ms
Ark.Tools.MediatorFramework.Tests.BusinessRuleViolationWireTests 1 ✅ 36ms
Ark.Tools.MediatorFramework.Tests.GeneratorSnapshotTests 80 ✅ 22s
Ark.Tools.MediatorFramework.Tests.GrpcErrorInterceptorTests 7 ✅ 484ms
Ark.Tools.MediatorFramework.Tests.MinimalApiHostingExtensionsTests 7 ✅ 894ms
Ark.Tools.MediatorFramework.Tests.ProblemDetailsMapperTests 1 ✅ 26ms
Ark.Tools.MediatorFramework.Tests.StreamingArkAttachmentTests 3 ✅ 45ms

✅ Ark.Tools.MediatorFramework.Tests.AzureFunctionsHttpTests

✅ HealthCheckUsesRegisteredService
✅ HealthCheckWritesFailedCheckDetails
✅ ReadsAndSanitizesMultipartAttachment
✅ StreamsJsonArrayWithoutBuffering

✅ Ark.Tools.MediatorFramework.Tests.AzureFunctionsResultsTests

✅ AppliesStrongETagAndConditionalGet
✅ ReadsFirstIfMatchPrecondition
✅ RejectsUnsafeETag

✅ Ark.Tools.MediatorFramework.Tests.BusinessRuleViolationWireTests

✅ ArkBusinessRuleViolationRoundTripsThroughProtoBuf

✅ Ark.Tools.MediatorFramework.Tests.GeneratorSnapshotTests

✅ ApiSurfaceGeneratorCachesUnchangedInputs
✅ ApiSurfaceGeneratorEmitsExplicitEntriesForEvolvableEnumMembers
✅ ApiSurfaceGeneratorEmitsExplicitEntriesForStrictEnumMembers
✅ ApiSurfaceGeneratorEmitsMissingSnapshotDiagnosticWhenEnabled
✅ ApiSurfaceGeneratorEmitsNoDiagnosticsWhenSnapshotMatches
✅ ApiSurfaceGeneratorEmitsPerContractDiagnosticsWhenSnapshotDiffers
✅ ApiSurfaceGeneratorIsDeterministicAndIncludesNestedFields
✅ ApiSurfaceGeneratorSkipsComparisonWhenDisabled
✅ ApplyResponseETagSetsHeaderAndHandlesConditionalRequests
✅ ArkETagReadsAndValidatesPreconditions
✅ AttachmentSanitizesClientFileNames
✅ AzureFunctionsAuthenticationUsesConfiguredPrincipalAndChallengesFailures
✅ AzureFunctionsEasyAuthRejectsHeaderWhenPlatformAuthenticationIsDisabled
✅ AzureFunctionsEasyAuthRequiresTrustedPlatformAndRejectsMalformedHeaders
✅ AzureFunctionsGeneratorBindsETagPreconditionAndEmitsResponseETag
✅ AzureFunctionsGeneratorEmitsAnonymousHealthCheck
✅ AzureFunctionsGeneratorEmitsExceptionMappingWithCancellationRethrow
✅ AzureFunctionsGeneratorEmitsRouteBindingWithTryConvertSafe
✅ AzureFunctionsGeneratorEmitsStatusOverridesForQueryAndRequest
✅ AzureFunctionsGeneratorEmitsVersionedHttpTrigger
✅ AzureFunctionsGeneratorHonorsAnonymousEndpointMetadata
✅ AzureFunctionsGeneratorReportsDuplicateNames
✅ AzureFunctionsGeneratorReportsDuplicateRoutes
✅ AzureFunctionsGeneratorReportsMessagePackEndpoints
✅ AzureFunctionsGeneratorSkipsConverterForStringBinding
✅ GeneratorsComposeBodyAndRouteIntoPositionalRecords
✅ GeneratorsDiscoverInheritedBindingProperties
✅ GeneratorsNormalizeMultilineAndEntityEncodedXmlDocumentation
✅ GeneratorsRecognizeAsyncEnumerableResponses
✅ GrpcGeneratorCachesUnchangedInputs
✅ GrpcGeneratorDoesNotCrashForInvalidEvolvableEnumBackingType
✅ GrpcGeneratorEmitsCommandReturningEmpty
✅ GrpcGeneratorEmitsImportedProtoAsset
✅ GrpcGeneratorEmitsStreamingAttachmentCollectionUpload
✅ GrpcGeneratorEmitsVersionedServiceMethodSets
✅ GrpcGeneratorExcludesServerSetRequestMembers
✅ GrpcGeneratorMapsEvolvableEnumsToBackingTypeProtoScalars
✅ GrpcGeneratorReportsUnsupportedHandler
✅ GrpcGeneratorUsesApiGroupWhenGrpcServiceIsAbsent
✅ MessagePackDeserializationUsesUntrustedSecurity
✅ MessagePackFormatterValidationNamesUnformattableContracts
✅ MessagePackResponseRequiresARegisteredResolver
✅ MessagePackStreamingResponseBuffersAndEnforcesLimit
✅ MinimalApiGeneratorAdvertisesStandardProblemResponsesWithoutDuplicates
✅ MinimalApiGeneratorBindsEnumsAsStringsWithoutWrappers
✅ MinimalApiGeneratorBindsETagPreconditions
✅ MinimalApiGeneratorBindsStringCollectionTypes
✅ MinimalApiGeneratorCachesUnchangedInputs
✅ MinimalApiGeneratorCombinesRouteQueryAndBody
✅ MinimalApiGeneratorConfiguresVersionPrefixAtMappingTime
✅ MinimalApiGeneratorDoesNotWrapBasicTypes
✅ MinimalApiGeneratorEmitsCollectionMultipartSchemaMetadata
✅ MinimalApiGeneratorEmitsCommandStatusSemantics
✅ MinimalApiGeneratorEmitsMultipartBinding
✅ MinimalApiGeneratorEmitsNegotiationOnlyForOptedInEndpoints
✅ MinimalApiGeneratorEmitsNullAndCustomSuccessStatusSemantics
✅ MinimalApiGeneratorExpandsVersionedRoutes
✅ MinimalApiGeneratorPropagatesXmlDocumentation
✅ MinimalApiGeneratorProtectsServerSetProperties
✅ MinimalApiGeneratorRejectsVersionPrefixWithoutToken
✅ MinimalApiGeneratorReportsInvalidBodyContract
✅ MinimalApiGeneratorReportsInvalidETagDeclarations
✅ MinimalApiGeneratorReportsMissingRouteProperty
✅ MinimalApiGeneratorReportsMultipleAttachments
✅ MinimalApiGeneratorReportsUnknownVerb
✅ MinimalApiGeneratorReportsUnsupportedAttachmentCollection
✅ MinimalApiGeneratorReportsUnsupportedHandler
✅ MinimalApiGeneratorSecuresEndpointsAndSupportsAnonymousOptOut
✅ MinimalApiGeneratorUsesApiGroupAndReportsDuplicateOperationNames
✅ MinimalApiGeneratorWarnsOnSuspiciousProperties
✅ MinimalApiGeneratorWrapsTypeConverterRouteAndQueryValues
✅ RebusGeneratorCachesUnchangedInputs
✅ RebusGeneratorEmitsCommandHandlerWrapper
✅ RebusGeneratorEmitsOwnerQueueRouting
✅ RebusGeneratorRejectsStreamingResponses
✅ RebusGeneratorReportsInvalidOwnerQueue
✅ RebusGeneratorReportsUnsupportedHandler
✅ RebusMessageAllowsOnlyOneDeclaration
✅ ResponseETagIsEmittedOnlyForMarkedResponses
✅ VersioningDefaultsToTheInitialUnretiredVersion

✅ Ark.Tools.MediatorFramework.Tests.GrpcErrorInterceptorTests

✅ HidesUnexpectedExceptionDetailsOutsideDevelopment
✅ IncludesUnexpectedExceptionDetailsInDevelopment
✅ MapsConcurrencyExceptions
✅ MapsInternalTimeoutOperationCanceledExceptionToInternalError
✅ MapsPublicBusinessRuleExtensions
✅ RethrowsOperationCanceledExceptionWhenClientCancelled
✅ RethrowsRpcExceptionWithoutChangingStackTrace

✅ Ark.Tools.MediatorFramework.Tests.MinimalApiHostingExtensionsTests

✅ AttachmentMappingRegistersAnEndpoint
✅ EnumsBindAsStringsFromRouteAndQuery
✅ OpenApiConventionsReturnTheConfiguredOptions
✅ OpenApiNodaTimeSchemasCoverNativeAndNullableTypes
✅ OpenApiSecurityContainsPkceAndOpenIdConnectSchemes
✅ TypeConverterMetadataUsesWrappedClrType
✅ TypeConverterWrapperBindsNodaTimeRouteAndNullableQueryValues

✅ Ark.Tools.MediatorFramework.Tests.ProblemDetailsMapperTests

✅ MapsKnownExceptionsToExpectedStatusCodes

✅ Ark.Tools.MediatorFramework.Tests.StreamingArkAttachmentTests

✅ OpenReadAsyncReadsMetadataAndAllChunks
✅ OpenReadAsyncRejectsMissingMetadata
✅ ReadAllAsyncReadsMetadataDelimitedFilesInOrder

✅ TestResults/Ark.Tools.MessagePack.Tests_net10.0_x64.trx

5 tests were completed in 634ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.MessagePack.Tests.EvolvableEnumFormatterResolverTests 5 ✅ 408ms

✅ Ark.Tools.MessagePack.Tests.EvolvableEnumFormatterResolverTests

✅ Resolver_SupportsMultipleClosedGenericTypes_WithoutPerTypeRegistration
✅ Roundtrips_DefinedValue
✅ Roundtrips_ULongMaxValue_WithoutSignCorruption
✅ Roundtrips_UnknownNumber
✅ Serializing_UnknownName_ShouldThrowExplicitly

✅ TestResults/Ark.Tools.Nodatime.Protobuf.Tests_net10.0_x64.trx

5 tests were completed in 855ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Nodatime.Protobuf.Tests.NodaTimeSurrogateTests 5 ✅ 1s

✅ Ark.Tools.Nodatime.Protobuf.Tests.NodaTimeSurrogateTests

✅ LocalDate_carries_no_time_component
✅ Native_types_use_common_proto_shapes
✅ OffsetDateTime_preserves_negative_offset_and_instant
✅ Period_is_encoded_as_iso_string
✅ Roundtrips_all_supported_types

✅ TestResults/Ark.Tools.Nodatime.Protobuf.Tests_net8.0_x64.trx

5 tests were completed in 1s with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Nodatime.Protobuf.Tests.NodaTimeSurrogateTests 5 ✅ 2s

✅ Ark.Tools.Nodatime.Protobuf.Tests.NodaTimeSurrogateTests

✅ LocalDate_carries_no_time_component
✅ Native_types_use_common_proto_shapes
✅ OffsetDateTime_preserves_negative_offset_and_instant
✅ Period_is_encoded_as_iso_string
✅ Roundtrips_all_supported_types

✅ TestResults/Ark.Tools.Nodatime.Tests_net10.0_x64.trx

10 tests were completed in 633ms with 10 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Nodatime.Tests.NullableConverterTests 10 ✅ 693ms

✅ Ark.Tools.Nodatime.Tests.NullableConverterTests

✅ NullableInstantConverter_ShouldHandleNullValue
✅ NullableInstantConverter_ShouldRoundtripConversion
✅ NullableLocalDateConverter_ShouldHandleNullValue
✅ NullableLocalDateConverter_ShouldRoundtripConversion
✅ NullableLocalDateTimeConverter_ShouldHandleNullValue
✅ NullableLocalDateTimeConverter_ShouldRoundtripConversion
✅ NullableLocalTimeConverter_ShouldHandleNullValue
✅ NullableLocalTimeConverter_ShouldRoundtripConversion
✅ NullableOffsetDateTimeConverter_ShouldHandleNullValue
✅ NullableOffsetDateTimeConverter_ShouldRoundtripConversion

✅ TestResults/Ark.Tools.Protobuf.Tests_net10.0_x64.trx

4 tests were completed in 840ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Protobuf.Tests.EvolvableEnumSurrogateTests 4 ✅ 1s

✅ Ark.Tools.Protobuf.Tests.EvolvableEnumSurrogateTests

✅ Roundtrips_DefinedValue
✅ Roundtrips_ULongMaxValue_WithoutSignCorruption
✅ Roundtrips_UnknownNumber
✅ Serializing_UnknownName_ShouldThrowExplicitly

✅ TestResults/Ark.Tools.ResourceWatcher.Tests_net10.0_x64.trx

33 tests were completed in 3s with 33 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.ResourceWatcher.Tests.Features.ResourceWatcherStateTransitionsFeature 10 ✅ 693ms
Ark.Tools.ResourceWatcher.Tests.Features.SqlStateProviderIntegrationTestsFeature 13 ✅ 1s
Ark.Tools.ResourceWatcher.Tests.Features.Type_SafeExtensionsSupportFeature 9 ✅ 819ms
Ark.Tools.ResourceWatcher.Tests.Features.WorkerHostSQLProxyIntegrationFeature 1 ✅ 554ms

✅ Ark.Tools.ResourceWatcher.Tests.Features.ResourceWatcherStateTransitionsFeature

✅ Banned resource is skipped during ban period
✅ Failed resource processing triggers retry
✅ Multiple new resources are processed in parallel
✅ New resource is processed and stored
✅ New resource with ModifiedSources triggers processing
✅ Resource checksum is stored in state after processing
✅ Resource exceeding max retries is banned
✅ Resource with newer Modified timestamp is processed as Updated
✅ Resource with same Modified timestamp is skipped
✅ Successful retry resets RetryCount to zero

✅ Ark.Tools.ResourceWatcher.Tests.Features.SqlStateProviderIntegrationTestsFeature

✅ EnsureTableAreCreated creates required database objects
✅ Load specific resources by ID
✅ Load state for non-existent tenant returns empty
✅ Load state with empty resource IDs returns empty
✅ Load state with invalid Extensions JSON returns null Extensions
✅ Load state with more than 2000 resource IDs
✅ Save and load a single resource state
✅ Save and load multiple resource states
✅ Save and load retry state with exception
✅ Save and load state with Extensions
✅ Save and load state with ModifiedSources
✅ States are isolated by tenant
✅ Update existing resource state

✅ Ark.Tools.ResourceWatcher.Tests.Features.Type_SafeExtensionsSupportFeature

✅ Multiple VoidExtensions states can be saved and loaded
✅ SqlStateProvider with different extension types are type-safe
✅ Typed extensions can be null
✅ Typed extensions serialize and deserialize correctly
✅ Typed extensions survive serialization round-trip
✅ Typed extensions with complex nested data
✅ Update typed extensions preserves type information
✅ VoidExtensions is always treated as null
✅ VoidExtensions serializes as null in database

✅ Ark.Tools.ResourceWatcher.Tests.Features.WorkerHostSQLProxyIntegrationFeature

✅ WorkerHost proxy runs with SqlStateProvider

✅ TestResults/Ark.Tools.ResourceWatcher.Tests_net8.0_x64.trx

33 tests were completed in 6s with 33 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.ResourceWatcher.Tests.Features.ResourceWatcherStateTransitionsFeature 10 ✅ 1s
Ark.Tools.ResourceWatcher.Tests.Features.SqlStateProviderIntegrationTestsFeature 13 ✅ 2s
Ark.Tools.ResourceWatcher.Tests.Features.Type_SafeExtensionsSupportFeature 9 ✅ 2s
Ark.Tools.ResourceWatcher.Tests.Features.WorkerHostSQLProxyIntegrationFeature 1 ✅ 2s

✅ Ark.Tools.ResourceWatcher.Tests.Features.ResourceWatcherStateTransitionsFeature

✅ Banned resource is skipped during ban period
✅ Failed resource processing triggers retry
✅ Multiple new resources are processed in parallel
✅ New resource is processed and stored
✅ New resource with ModifiedSources triggers processing
✅ Resource checksum is stored in state after processing
✅ Resource exceeding max retries is banned
✅ Resource with newer Modified timestamp is processed as Updated
✅ Resource with same Modified timestamp is skipped
✅ Successful retry resets RetryCount to zero

✅ Ark.Tools.ResourceWatcher.Tests.Features.SqlStateProviderIntegrationTestsFeature

✅ EnsureTableAreCreated creates required database objects
✅ Load specific resources by ID
✅ Load state for non-existent tenant returns empty
✅ Load state with empty resource IDs returns empty
✅ Load state with invalid Extensions JSON returns null Extensions
✅ Load state with more than 2000 resource IDs
✅ Save and load a single resource state
✅ Save and load multiple resource states
✅ Save and load retry state with exception
✅ Save and load state with Extensions
✅ Save and load state with ModifiedSources
✅ States are isolated by tenant
✅ Update existing resource state

✅ Ark.Tools.ResourceWatcher.Tests.Features.Type_SafeExtensionsSupportFeature

✅ Multiple VoidExtensions states can be saved and loaded
✅ SqlStateProvider with different extension types are type-safe
✅ Typed extensions can be null
✅ Typed extensions serialize and deserialize correctly
✅ Typed extensions survive serialization round-trip
✅ Typed extensions with complex nested data
✅ Update typed extensions preserves type information
✅ VoidExtensions is always treated as null
✅ VoidExtensions serializes as null in database

✅ Ark.Tools.ResourceWatcher.Tests.Features.WorkerHostSQLProxyIntegrationFeature

✅ WorkerHost proxy runs with SqlStateProvider

✅ TestResults/Ark.Tools.Solid.Analyzers.Tests_net10.0_x64.trx

7 tests were completed in 5s with 7 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Solid.Analyzers.Tests.SelfGenericInterfaceAnalyzerTests 7 ✅ 4s

✅ Ark.Tools.Solid.Analyzers.Tests.SelfGenericInterfaceAnalyzerTests

✅ CodeFix_IsIdempotent
✅ CodeFix_ShouldRewriteBaseTypes
✅ GenericRecord_ShouldReportAndFixWithQualification
✅ InheritedLegacyInterface_ShouldReportWarning
✅ LegacyInterfaces_ShouldReportWarnings
✅ MultipleLegacyInterfaces_ShouldReportOneWarningPerInterface
✅ SelfGenericInterfaces_ShouldNotReportWarnings

✅ TestResults/Ark.Tools.Solid.SimpleInjector.Tests_net10.0_x64.trx

3 tests were completed in 726ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Solid.SimpleInjector.Tests.SimpleInjectorProcessorTests 3 ✅ 299ms

✅ Ark.Tools.Solid.SimpleInjector.Tests.SimpleInjectorProcessorTests

✅ Processors_execute_decorated_handlers
✅ Processors_execute_self_generic_types_without_reflection
✅ Processors_propagate_cancellation_and_exceptions

✅ TestResults/Ark.Tools.Sql.Oracle.Tests_net10.0_x64.trx

4 tests were completed in 471ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Ark.Tools.Sql.Oracle.Tests.OracleDbConnectionManagerTests 4 ✅ 112ms

✅ Ark.Tools.Sql.Oracle.Tests.OracleDbConnectionManagerTests

✅ Build_ShouldSetConnectionCommandTimeoutTo30Seconds
✅ CommandTimeout_CanBeOverriddenPerCommand
✅ ConnectionCommandTimeout_CanBeOverriddenAfterBuild
✅ CreatedCommand_ShouldInheritCommandTimeoutFromConnection

✅ TestResults/WebApplicationDemo.Tests_net10.0_x64.trx

28 tests were completed in 6s with 28 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
WebApplicationDemo.Tests.Tests.MsgPackFeature 1 ✅ 749ms
WebApplicationDemo.Tests.Tests.ODataFeature 10 ✅ 524ms
WebApplicationDemo.Tests.Tests.ReqnrollTestFeature 6 ✅ 646ms
WebApplicationDemo.Tests.Tests.SwaggerSpecFeature 11 ✅ 1s

✅ WebApplicationDemo.Tests.Tests.MsgPackFeature

✅ MsgPack Roundtrip

✅ WebApplicationDemo.Tests.Tests.ODataFeature

✅ OData MarketRecord v0 - $select returns only selected field
✅ OData MarketRecord v0 - list returns data
✅ OData MarketRecord v1 - list returns data
✅ OData People v1 - $filter by FirstName returns one result
✅ OData People v1 - $select returns only selected fields
✅ OData People v1 - key lookup returns entity with id 1
✅ OData People v1 - list returns Person V1 schema (no phone field)
✅ OData People v2 - $orderby by FirstName returns ordered results
✅ OData People v2 - key lookup returns entity with id 2
✅ OData People v2 - list returns Person V2 schema (with phone field)

✅ WebApplicationDemo.Tests.Tests.ReqnrollTestFeature

✅ Reqnroll stil working
✅ Swagger Page
✅ Swagger Spec V0.0
✅ Swagger Spec V1.0
✅ Swagger Spec V2.0
✅ Swagger Spec V3.0

✅ WebApplicationDemo.Tests.Tests.SwaggerSpecFeature

✅ Default error responses (400, 401, 403, 500) are present on entity endpoint
✅ Entity V1 Output allOf has date property with LocalDate format
✅ FlaggedEnum parameter renders as array in swagger
✅ NodaTime LocalDate mapped as date format via LocalDateRange schema
✅ Non-OData endpoint has no odata media type in responses
✅ Person V1 schema does not have phone property directly
✅ Person V2 schema has phone property in allOf extension
✅ Swagger spec v0.0 - contains OData MarketRecord endpoint
✅ Swagger spec v0.0 - does not contain People endpoint (no People controller for v0)
✅ Swagger spec v1.0 - contains OData People and MarketRecordV1 endpoints
✅ Swagger spec v2.0 - contains OData People v2 endpoint