Bump Azure.Storage.Blobs from 12.19.1 to 12.26.0 - #12
Closed
dependabot[bot] wants to merge 31 commits into
Closed
GitHub Actions / Test Results
succeeded
Nov 9, 2025 in 1s
283 passed, 0 failed and 0 skipped
| Report | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| tests/MultiLock.IntegrationTests/TestResults/test-results.trx | 54✅ | 38s | ||
| tests/MultiLock.Tests/TestResults/test-results.trx | 229✅ | 6s |
✅ tests/MultiLock.IntegrationTests/TestResults/test-results.trx
54 tests were completed in 38s with 54 passed, 0 failed and 0 skipped.
| Test suite | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| MultiLock.IntegrationTests.AzureBlobStorageIntegrationTests | 8✅ | 3s | ||
| MultiLock.IntegrationTests.ConsulIntegrationTests | 8✅ | 34s | ||
| MultiLock.IntegrationTests.PostgreSqlIntegrationTests | 9✅ | 1s | ||
| MultiLock.IntegrationTests.RedisIntegrationTests | 9✅ | 2s | ||
| MultiLock.IntegrationTests.SqlServerIntegrationTests | 9✅ | 2s | ||
| MultiLock.IntegrationTests.ZooKeeperIntegrationTests | 11✅ | 4s |
✅ MultiLock.IntegrationTests.AzureBlobStorageIntegrationTests
✅ AzureBlobStorage_LeaderElection_ShouldWork
✅ HealthCheck_WithAzurite_ShouldReturnTrue
✅ IsLeader_WhenLeader_ShouldReturnTrue
✅ ReleaseLeadership_ShouldAllowNewLeader
✅ TryAcquireLeadership_WhenAlreadyAcquired_ShouldReturnFalse
✅ TryAcquireLeadership_WithAzurite_ShouldSucceed
✅ UpdateHeartbeat_AsLeader_ShouldSucceed
✅ UpdateHeartbeat_AsNonLeader_ShouldReturnFalse
✅ MultiLock.IntegrationTests.ConsulIntegrationTests
✅ Consul_LeaderElection_ShouldWork
✅ HealthCheck_WithConsul_ShouldReturnTrue
✅ IsLeader_WhenLeader_ShouldReturnTrue
✅ ReleaseLeadership_ShouldAllowNewLeader
✅ TryAcquireLeadership_WhenAlreadyAcquired_ShouldReturnFalse
✅ TryAcquireLeadership_WithConsul_ShouldSucceed
✅ UpdateHeartbeat_AsLeader_ShouldSucceed
✅ UpdateHeartbeat_AsNonLeader_ShouldReturnFalse
✅ MultiLock.IntegrationTests.PostgreSqlIntegrationTests
✅ GetCurrentLeader_ShouldReturnLeaderInfo
✅ HealthCheck_WithPostgreSQL_ShouldReturnTrue
✅ IsLeader_ShouldReturnCorrectStatus
✅ PostgreSQL_LeaderElection_ShouldWork
✅ ReleaseLeadership_ShouldAllowNewLeader
✅ TryAcquireLeadership_WhenAlreadyAcquired_ShouldReturnFalse
✅ TryAcquireLeadership_WithPostgreSQL_ShouldSucceed
✅ UpdateHeartbeat_AsLeader_ShouldSucceed
✅ UpdateHeartbeat_AsNonLeader_ShouldReturnFalse
✅ MultiLock.IntegrationTests.RedisIntegrationTests
✅ GetCurrentLeader_ShouldReturnLeaderInfo
✅ HealthCheck_WithRedis_ShouldReturnTrue
✅ IsLeader_ShouldReturnCorrectStatus
✅ Redis_LeaderElection_ShouldWork
✅ ReleaseLeadership_ShouldAllowNewLeader
✅ TryAcquireLeadership_WhenAlreadyAcquired_ShouldReturnFalse
✅ TryAcquireLeadership_WithRedis_ShouldSucceed
✅ UpdateHeartbeat_AsLeader_ShouldSucceed
✅ UpdateHeartbeat_AsNonLeader_ShouldReturnFalse
✅ MultiLock.IntegrationTests.SqlServerIntegrationTests
✅ GetCurrentLeader_ShouldReturnLeaderInfo
✅ HealthCheck_WithSqlServer_ShouldReturnTrue
✅ IsLeader_ShouldReturnCorrectStatus
✅ ReleaseLeadership_ShouldAllowNewLeader
✅ SqlServer_LeaderElection_ShouldWork
✅ TryAcquireLeadership_WhenAlreadyAcquired_ShouldReturnFalse
✅ TryAcquireLeadership_WithSqlServer_ShouldSucceed
✅ UpdateHeartbeat_AsLeader_ShouldSucceed
✅ UpdateHeartbeat_AsNonLeader_ShouldReturnFalse
✅ MultiLock.IntegrationTests.ZooKeeperIntegrationTests
✅ GetCurrentLeader_ShouldReturnLeaderInfo
✅ HealthCheck_WithZooKeeper_ShouldReturnTrue
✅ IsLeader_ShouldReturnCorrectStatus
✅ ReleaseLeadership_ShouldAllowNewLeader
✅ TryAcquireLeadership_WhenAlreadyAcquired_ShouldReturnFalse
✅ TryAcquireLeadership_WithZooKeeper_ShouldSucceed
✅ UpdateHeartbeat_AsLeader_ShouldSucceed
✅ UpdateHeartbeat_AsNonLeader_ShouldReturnFalse
✅ ZooKeeper_HealthCheck_ShouldWork
✅ ZooKeeper_LeaderElection_ShouldWork
✅ ZooKeeper_SingleParticipant_ShouldBecomeLeader
✅ tests/MultiLock.Tests/TestResults/test-results.trx
229 tests were completed in 6s with 229 passed, 0 failed and 0 skipped.
| Test suite | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| MultiLock.Tests.AsyncEnumerableApiTests | 8✅ | 716ms | ||
| MultiLock.Tests.AzureBlobStorageProviderTests | 9✅ | 203ms | ||
| MultiLock.Tests.ConcurrentScenarioTests | 12✅ | 1s | ||
| MultiLock.Tests.ConsulProviderTests | 11✅ | 202ms | ||
| MultiLock.Tests.DisposalRaceConditionTests | 8✅ | 2s | ||
| MultiLock.Tests.InMemoryProviderTests | 14✅ | 252ms | ||
| MultiLock.Tests.LeadershipExtensionMethodsTests | 16✅ | 2s | ||
| MultiLock.Tests.MultiInstanceLeaderElectionTests | 3✅ | 732ms | ||
| MultiLock.Tests.ParameterValidationTests | 70✅ | 32ms | ||
| MultiLock.Tests.PostgreSqlProviderTests | 9✅ | 64ms | ||
| MultiLock.Tests.ProviderInputValidationTests | 26✅ | 433ms | ||
| MultiLock.Tests.RedisProviderTests | 8✅ | 20ms | ||
| MultiLock.Tests.ServiceExtensionsValidationTests | 12✅ | 30ms | ||
| MultiLock.Tests.SqlServerProviderTests | 9✅ | 46ms | ||
| MultiLock.Tests.ZooKeeperProviderTests | 14✅ | 55ms |
✅ MultiLock.Tests.AsyncEnumerableApiTests
✅ GetLeadershipChangesAsync_CancellationToken_ShouldStopEnumeration
✅ GetLeadershipChangesAsync_EventOrder_ShouldBeCorrect
✅ GetLeadershipChangesAsync_MultipleSubscribers_ShouldAllReceiveEvents
✅ GetLeadershipChangesAsync_ShouldEmitAcquiredEvent_WhenBecomingLeader
✅ GetLeadershipChangesAsync_ShouldEmitLostEvent_WhenLosingLeadership
✅ GetLeadershipChangesAsync_WithChangedFilter_ShouldEmitAllStatusChanges
✅ GetLeadershipChangesAsync_WithFilter_ShouldOnlyEmitAcquiredEvents
✅ GetLeadershipChangesAsync_WithFilter_ShouldOnlyEmitLostEvents
✅ MultiLock.Tests.AzureBlobStorageProviderTests
✅ Constructor_WithValidOptions_ShouldSucceed
✅ Dispose_MultipleTimes_ShouldNotThrow
✅ Dispose_ShouldNotThrow
✅ MethodsAfterDispose_ShouldThrow
✅ Options_WithEmptyConnectionString_ShouldThrow
✅ Options_WithEmptyContainerName_ShouldThrow
✅ Options_WithInfiniteLeaseDuration_ShouldSucceed
✅ Options_WithInvalidLeaseDuration_ShouldThrow
✅ Options_WithValidLeaseDuration_ShouldSucceed
✅ MultiLock.Tests.ConcurrentScenarioTests
✅ ConcurrentAcquireAndRelease_ShouldMaintainConsistency
✅ ConcurrentAcquireAttempts_20Participants_OnlyOneSucceeds
✅ ConcurrentGetCurrentLeader_ShouldReturnConsistentResults
✅ ConcurrentHeartbeatUpdates_ShouldBeThreadSafe
✅ ConcurrentIsLeaderChecks_ShouldBeThreadSafe
✅ ConcurrentMetadataUpdates_ShouldNotCorruptData
✅ HighConcurrency_10Participants_ShouldElectExactlyOneLeader
✅ LeaderFailover_ConcurrentFailoverAttempts_ShouldBeThreadSafe
✅ LeaderFailover_MultipleWaitingParticipants_ShouldElectExactlyOneNewLeader
✅ LeaderFailover_RapidLeaderChanges_ShouldMaintainConsistency
✅ LeaderFailover_SimultaneousFailureAndAcquire_ShouldNotCauseSplitBrain
✅ RapidAcquireReleaseCycles_100Iterations_ShouldNotCauseRaceConditions
✅ MultiLock.Tests.ConsulProviderTests
✅ Constructor_WithValidOptions_ShouldSucceed
✅ Dispose_MultipleTimes_ShouldNotThrow
✅ Dispose_ShouldNotThrow
✅ DisposeAsync_MultipleTimes_ShouldNotThrow
✅ DisposeAsync_ShouldNotThrow
✅ MethodsAfterDispose_ShouldThrow
✅ Options_WithEmptyAddress_ShouldThrow
✅ Options_WithEmptyKeyPrefix_ShouldThrow
✅ Options_WithInvalidSessionLockDelay_ShouldThrow
✅ Options_WithInvalidSessionTtl_ShouldThrow
✅ Options_WithValidConfiguration_ShouldSucceed
✅ MultiLock.Tests.DisposalRaceConditionTests
✅ ConcurrentDispose_ShouldBeIdempotent
✅ Dispose_ShouldStopTimerCallbacksFromExecuting
✅ Dispose_ShouldWaitForActiveCallbacksToComplete
✅ Dispose_WhileElectionCallbackRunning_ShouldNotThrowObjectDisposedException
✅ Dispose_WhileHeartbeatCallbackRunning_ShouldNotThrowObjectDisposedException
✅ DisposeAsync_ThenDispose_ShouldBeIdempotent
✅ MultipleServices_DisposedConcurrently_ShouldNotInterfere
✅ RapidStartStopCycles_ShouldNotCauseRaceConditions
✅ MultiLock.Tests.InMemoryProviderTests
✅ Dispose_MultipleTimes_ShouldNotThrow
✅ Dispose_ShouldNotThrow
✅ GetCurrentLeaderAsync_WhenLeaderExists_ShouldReturnLeaderInfo
✅ GetCurrentLeaderAsync_WhenNoLeader_ShouldReturnNull
✅ HealthCheckAsync_ShouldReturnTrue
✅ IsLeaderAsync_WhenIsLeader_ShouldReturnTrue
✅ IsLeaderAsync_WhenNotLeader_ShouldReturnFalse
✅ MethodsAfterDispose_ShouldThrow
✅ ReleaseLeadershipAsync_WhenIsLeader_ShouldReleaseLeadership
✅ TryAcquireLeadershipAsync_WhenLeaderExists_ShouldFail
✅ TryAcquireLeadershipAsync_WhenLeaderExpired_ShouldSucceed
✅ TryAcquireLeadershipAsync_WhenNoExistingLeader_ShouldSucceed
✅ UpdateHeartbeatAsync_WhenIsLeader_ShouldSucceed
✅ UpdateHeartbeatAsync_WhenNotLeader_ShouldFail
✅ MultiLock.Tests.LeadershipExtensionMethodsTests
✅ BufferByCount_ShouldGroupEventsByCount
✅ BufferByTime_ShouldGroupEventsByTimeWindow
✅ CombinedExtensions_ShouldWorkTogether
✅ Debounce_ShouldDelayEvents
✅ DistinctUntilChanged_ShouldFilterConsecutiveDuplicates
✅ ForEachAsync_ShouldExecuteActionForEachEvent
✅ ForEachAsync_WithAsyncAction_ShouldExecuteAsyncActionForEachEvent
✅ OnLeadershipTransition_ShouldExecuteCallbacks
✅ OnLeadershipTransition_WithAsyncCallbacks_ShouldExecuteAsyncCallbacks
✅ Select_ShouldTransformEvents
✅ Skip_ShouldSkipEvents
✅ Take_ShouldLimitNumberOfEvents
✅ TakeUntilLeader_ShouldStopWhenBecomingLeader
✅ Throttle_ShouldLimitEventRate
✅ Where_ShouldFilterEvents
✅ WhileLeader_ShouldContinueWhileLeader
✅ MultiLock.Tests.MultiInstanceLeaderElectionTests
✅ ConcurrentElectionAttempts_ShouldResultInSingleLeader
✅ LeaderFailover_ShouldElectNewLeader
✅ MultipleInstances_WithInMemoryProvider_ShouldElectOneLeader
✅ MultiLock.Tests.ParameterValidationTests
✅ ValidateElectionGroup_WithCustomParamName_ShouldUseCustomName
✅ ValidateElectionGroup_WithEmptyString_ShouldThrowArgumentException
✅ ValidateElectionGroup_WithExactlyMaxLength_ShouldNotThrow
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group with spaces")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group,invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group;invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group:invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group!invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group?invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group'invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group(invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group)invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group[invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group]invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group{invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group}invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group@invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group*invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group/invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group\"invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group\\invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group&invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group#invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group%invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group`invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group+invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group<invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group=invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group>invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group|invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group~invalid")
✅ ValidateElectionGroup_WithInvalidCharacters_ShouldThrowArgumentException(invalidGroup: "group$invalid")
✅ ValidateElectionGroup_WithNull_ShouldThrowArgumentException
✅ ValidateElectionGroup_WithTooLongValue_ShouldThrowArgumentException
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "1")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "123valid")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "a")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "group-name_with.multiple-separators123")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "lowercase")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "MixedCase")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "UPPERCASE")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "valid_group")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "valid-group")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "valid.group")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "valid")
✅ ValidateElectionGroup_WithValidCharacters_ShouldNotThrow(validGroup: "valid123")
✅ ValidateElectionGroup_WithValidValue_ShouldNotThrow
✅ ValidateElectionGroup_WithWhitespace_ShouldThrowArgumentException
✅ ValidateLockTimeout_WithExactlyOneDay_ShouldNotThrow
✅ ValidateLockTimeout_WithMoreThanOneDay_ShouldThrowArgumentException
✅ ValidateLockTimeout_WithNegative_ShouldThrowArgumentException
✅ ValidateLockTimeout_WithOneMillisecond_ShouldNotThrow
✅ ValidateLockTimeout_WithValidTimeout_ShouldNotThrow
✅ ValidateLockTimeout_WithZero_ShouldThrowArgumentException
✅ ValidateMetadata_WithEmptyKey_ShouldThrowArgumentException
✅ ValidateMetadata_WithEmptyMetadata_ShouldNotThrow
✅ ValidateMetadata_WithExactlyMaxEntries_ShouldNotThrow
✅ ValidateMetadata_WithMaxLengthValue_ShouldNotThrow
✅ ValidateMetadata_WithNull_ShouldThrowArgumentNullException
✅ ValidateMetadata_WithNullValue_ShouldNotThrow
✅ ValidateMetadata_WithTooLongKey_ShouldThrowArgumentException
✅ ValidateMetadata_WithTooLongValue_ShouldThrowArgumentException
✅ ValidateMetadata_WithTooManyEntries_ShouldThrowArgumentException
✅ ValidateMetadata_WithValidMetadata_ShouldNotThrow
✅ ValidateMetadata_WithWhitespaceKey_ShouldThrowArgumentException
✅ ValidateParticipantId_WithEmptyString_ShouldThrowArgumentException
✅ ValidateParticipantId_WithInvalidCharacters_ShouldThrowArgumentException
✅ ValidateParticipantId_WithNull_ShouldThrowArgumentException
✅ ValidateParticipantId_WithTooLongValue_ShouldThrowArgumentException
✅ ValidateParticipantId_WithValidValue_ShouldNotThrow
✅ MultiLock.Tests.PostgreSqlProviderTests
✅ Constructor_WithValidOptions_ShouldSucceed
✅ Dispose_CalledMultipleTimes_ShouldNotThrow
✅ Dispose_ShouldNotThrow
✅ MethodsAfterDispose_ShouldThrow
✅ Options_WithEmptyConnectionString_ShouldThrow
✅ Options_WithEmptySchemaName_ShouldThrow
✅ Options_WithEmptyTableName_ShouldThrow
✅ Options_WithInvalidCommandTimeout_ShouldThrow
✅ Options_WithValidConfiguration_ShouldSucceed
✅ MultiLock.Tests.ProviderInputValidationTests
✅ GetCurrentLeaderAsync_WithEmptyElectionGroup_ShouldThrowArgumentException
✅ GetCurrentLeaderAsync_WithInvalidElectionGroup_ShouldThrowArgumentException
✅ GetCurrentLeaderAsync_WithNullElectionGroup_ShouldThrowArgumentException
✅ IsLeaderAsync_WithNullElectionGroup_ShouldThrowArgumentException
✅ IsLeaderAsync_WithNullParticipantId_ShouldThrowArgumentException
✅ IsLeaderAsync_WithValidParameters_ShouldSucceed
✅ ReleaseLeadershipAsync_WithEmptyElectionGroup_ShouldThrowArgumentException
✅ ReleaseLeadershipAsync_WithEmptyParticipantId_ShouldThrowArgumentException
✅ ReleaseLeadershipAsync_WithNullElectionGroup_ShouldThrowArgumentException
✅ ReleaseLeadershipAsync_WithNullParticipantId_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithEmptyElectionGroup_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithEmptyParticipantId_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithInvalidElectionGroup_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithInvalidParticipantId_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithNegativeLockTimeout_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithNullElectionGroup_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithNullMetadata_ShouldThrowArgumentNullException
✅ TryAcquireLeadershipAsync_WithNullParticipantId_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithTooLongElectionGroup_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithTooLongLockTimeout_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithTooManyMetadataEntries_ShouldThrowArgumentException
✅ TryAcquireLeadershipAsync_WithValidParameters_ShouldSucceed
✅ TryAcquireLeadershipAsync_WithZeroLockTimeout_ShouldThrowArgumentException
✅ UpdateHeartbeatAsync_WithNullElectionGroup_ShouldThrowArgumentException
✅ UpdateHeartbeatAsync_WithNullMetadata_ShouldThrowArgumentNullException
✅ UpdateHeartbeatAsync_WithNullParticipantId_ShouldThrowArgumentException
✅ MultiLock.Tests.RedisProviderTests
✅ Constructor_WithValidOptions_ShouldSucceed
✅ Dispose_MultipleTimes_ShouldNotThrow
✅ Dispose_ShouldNotThrow
✅ MethodsAfterDispose_ShouldThrow
✅ Options_WithEmptyConnectionString_ShouldThrow
✅ Options_WithEmptyKeyPrefix_ShouldThrow
✅ Options_WithNegativeDatabase_ShouldThrow
✅ Options_WithValidConfiguration_ShouldSucceed
✅ MultiLock.Tests.ServiceExtensionsValidationTests
✅ AddLeaderElection_WithConfigureOptions_ShouldSucceed
✅ AddLeaderElection_WithNullConfigureOptions_ShouldSucceed
✅ AddLeaderElection_WithNullServices_ShouldThrowArgumentNullException
✅ AddLeaderElection_WithValidServices_ShouldSucceed
✅ AddLeaderElectionGeneric_WithConfigureOptions_ShouldSucceed
✅ AddLeaderElectionGeneric_WithNullServices_ShouldThrowArgumentNullException
✅ AddLeaderElectionGeneric_WithValidServices_ShouldSucceed
✅ AddLeaderElectionWithFactory_WithConfigureOptions_ShouldSucceed
✅ AddLeaderElectionWithFactory_WithNullConfigureOptions_ShouldSucceed
✅ AddLeaderElectionWithFactory_WithNullFactory_ShouldThrowArgumentNullException
✅ AddLeaderElectionWithFactory_WithNullServices_ShouldThrowArgumentNullException
✅ AddLeaderElectionWithFactory_WithValidParameters_ShouldSucceed
✅ MultiLock.Tests.SqlServerProviderTests
✅ Constructor_WithValidOptions_ShouldSucceed
✅ Dispose_CalledMultipleTimes_ShouldNotThrow
✅ Dispose_ShouldNotThrow
✅ MethodsAfterDispose_ShouldThrow
✅ Options_WithEmptyConnectionString_ShouldThrow
✅ Options_WithEmptySchemaName_ShouldThrow
✅ Options_WithEmptyTableName_ShouldThrow
✅ Options_WithInvalidCommandTimeout_ShouldThrow
✅ Options_WithValidConfiguration_ShouldSucceed
✅ MultiLock.Tests.ZooKeeperProviderTests
✅ Constructor_WithValidOptions_ShouldSucceed
✅ Dispose_CalledMultipleTimes_ShouldNotThrow
✅ Dispose_ShouldNotThrow
✅ DisposeAsync_MultipleTimes_ShouldNotThrow
✅ DisposeAsync_ShouldNotThrow
✅ MethodsAfterDispose_ShouldThrow
✅ Options_WithEmptyConnectionString_ShouldThrow
✅ Options_WithEmptyRootPath_ShouldThrow
✅ Options_WithInvalidConnectionTimeout_ShouldThrow
✅ Options_WithInvalidMaxRetries_ShouldThrow
✅ Options_WithInvalidRetryDelay_ShouldThrow
✅ Options_WithInvalidRootPath_ShouldThrow
✅ Options_WithInvalidSessionTimeout_ShouldThrow
✅ Options_WithValidConfiguration_ShouldSucceed
Loading