Bump Npgsql from 8.0.3 to 9.0.4 #45
Merged
GitHub Actions / Test Results
succeeded
Nov 20, 2025 in 0s
328 passed, 0 failed and 0 skipped
| Report | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| tests/MultiLock.IntegrationTests/TestResults/test-results.trx | 76✅ | 36s | ||
| tests/MultiLock.Tests/TestResults/test-results.trx | 252✅ | 9s |
✅ tests/MultiLock.IntegrationTests/TestResults/test-results.trx
76 tests were completed in 36s with 76 passed, 0 failed and 0 skipped.
| Test suite | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| MultiLock.IntegrationTests.AzureBlobStorageIntegrationTests | 8✅ | 2s | ||
| MultiLock.IntegrationTests.ConsulIntegrationTests | 8✅ | 34s | ||
| MultiLock.IntegrationTests.FileSystemIntegrationTests | 13✅ | 728ms | ||
| MultiLock.IntegrationTests.PostgreSqlIntegrationTests | 9✅ | 1s | ||
| MultiLock.IntegrationTests.RedisIntegrationTests | 9✅ | 2s | ||
| MultiLock.IntegrationTests.SqlServerIntegrationTests | 9✅ | 1s | ||
| MultiLock.IntegrationTests.ZooKeeperIntegrationTests | 20✅ | 6s |
✅ 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.FileSystemIntegrationTests
✅ AutoCreateDirectory_WhenEnabled_ShouldCreateDirectory
✅ GetCurrentLeader_WhenLeaderExists_ShouldReturnLeaderInfo
✅ GetCurrentLeader_WhenNoLeader_ShouldReturnNull
✅ HealthCheck_WithFileSystem_ShouldReturnTrue
✅ IsLeader_WhenLeader_ShouldReturnTrue
✅ IsLeader_WhenNotLeader_ShouldReturnFalse
✅ ReleaseLeadership_WhenLeader_ShouldReleaseLeadership
✅ ReleaseLeadership_WhenNotLeader_ShouldNotThrow
✅ TryAcquireLeadership_SameParticipantTwice_ShouldSucceed
✅ TryAcquireLeadership_WhenAlreadyHeld_ShouldFail
✅ TryAcquireLeadership_WithFileSystem_ShouldSucceed
✅ UpdateHeartbeat_WhenLeader_ShouldSucceed
✅ UpdateHeartbeat_WhenNotLeader_ShouldFail
✅ 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
✅ DisposeAsync_CalledTwice_ShouldBeIdempotent
✅ DisposeAsync_ShouldPreventFurtherOperations
✅ GetCurrentLeader_ShouldReturnLeaderInfo
✅ GetCurrentLeader_WhenNoLeader_ShouldReturnNull
✅ HealthCheck_AfterDisposal_ShouldReturnFalse
✅ HealthCheck_WithZooKeeper_ShouldReturnTrue
✅ IsLeader_ShouldReturnCorrectStatus
✅ MultipleElectionGroups_ShouldWorkIndependently
✅ ReleaseLeadership_ShouldAllowNewLeader
✅ ReleaseLeadership_WhenNotHoldingLeadership_ShouldNotThrow
✅ TryAcquireLeadership_SameParticipantTwice_ShouldReuseNode
✅ TryAcquireLeadership_WhenAlreadyAcquired_ShouldReturnFalse
✅ TryAcquireLeadership_WithZooKeeper_ShouldSucceed
✅ UpdateHeartbeat_AsLeader_ShouldSucceed
✅ UpdateHeartbeat_AsNonLeader_ShouldReturnFalse
✅ UpdateHeartbeat_WhenNodeDeleted_ShouldReturnFalse
✅ UpdateHeartbeat_WithMetadataChanges_ShouldUpdateMetadata
✅ ZooKeeper_HealthCheck_ShouldWork
✅ ZooKeeper_LeaderElection_ShouldWork
✅ ZooKeeper_SingleParticipant_ShouldBecomeLeader
✅ tests/MultiLock.Tests/TestResults/test-results.trx
252 tests were completed in 9s with 252 passed, 0 failed and 0 skipped.
| Test suite | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| MultiLock.Tests.AsyncEnumerableApiTests | 8✅ | 1s | ||
| MultiLock.Tests.AzureBlobStorageProviderTests | 9✅ | 364ms | ||
| MultiLock.Tests.ConcurrentScenarioTests | 12✅ | 2s | ||
| MultiLock.Tests.ConsulProviderTests | 11✅ | 142ms | ||
| MultiLock.Tests.DisposalRaceConditionTests | 8✅ | 2s | ||
| MultiLock.Tests.FileSystemServiceCollectionExtensionsTests | 7✅ | 29ms | ||
| MultiLock.Tests.InMemoryProviderTests | 14✅ | 247ms | ||
| MultiLock.Tests.InMemoryServiceCollectionExtensionsTests | 5✅ | 79ms | ||
| MultiLock.Tests.LeadershipExtensionMethodsTests | 16✅ | 2s | ||
| MultiLock.Tests.MultiInstanceLeaderElectionTests | 3✅ | 587ms | ||
| MultiLock.Tests.ParameterValidationTests | 70✅ | 59ms | ||
| MultiLock.Tests.PostgreSqlProviderTests | 9✅ | 74ms | ||
| MultiLock.Tests.ProviderInputValidationTests | 26✅ | 661ms | ||
| MultiLock.Tests.RedisProviderTests | 8✅ | 52ms | ||
| MultiLock.Tests.ServiceExtensionsValidationTests | 12✅ | 9ms | ||
| MultiLock.Tests.SqlServerProviderTests | 9✅ | 168ms | ||
| MultiLock.Tests.ZooKeeperProviderTests | 14✅ | 144ms | ||
| MultiLock.Tests.ZooKeeperServiceCollectionExtensionsTests | 11✅ | 90ms |
✅ 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.FileSystemServiceCollectionExtensionsTests
✅ AddFileSystemLeaderElection_ShouldAllowMultipleCalls
✅ AddFileSystemLeaderElection_WithConfigureOptions_ShouldRegisterProvider
✅ AddFileSystemLeaderElection_WithConfigureOptionsAndLeaderElectionOptions_ShouldRegisterProvider
✅ AddFileSystemLeaderElection_WithDirectoryPath_ShouldRegisterProvider
✅ AddFileSystemLeaderElection_WithDirectoryPathAndLeaderElectionOptions_ShouldRegisterProvider
✅ AddFileSystemLeaderElection_WithNullLeaderElectionOptions_ShouldRegisterProvider
✅ AddFileSystemLeaderElection_WithNullServices_ShouldThrowArgumentNullException
✅ 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.InMemoryServiceCollectionExtensionsTests
✅ AddInMemoryLeaderElection_ShouldAllowMultipleCalls
✅ AddInMemoryLeaderElection_WithConfigureOptions_ShouldRegisterProviderAndConfigureOptions
✅ AddInMemoryLeaderElection_WithNullConfigureOptions_ShouldRegisterProvider
✅ AddInMemoryLeaderElection_WithNullServices_ShouldThrowArgumentNullException
✅ AddInMemoryLeaderElection_WithValidServices_ShouldRegisterProvider
✅ 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
✅ MultiLock.Tests.ZooKeeperServiceCollectionExtensionsTests
✅ AddZooKeeperLeaderElection_ShouldAllowMultipleCalls
✅ AddZooKeeperLeaderElection_WithConfigureOptions_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithConfigureOptionsAndLeaderElectionOptions_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithConnectionString_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithConnectionStringAndLeaderElectionOptions_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithConnectionStringAndRootPath_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithConnectionStringRootPathAndLeaderElectionOptions_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithFullConfiguration_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithFullConfigurationAndLeaderElectionOptions_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithNullLeaderElectionOptions_ShouldRegisterProvider
✅ AddZooKeeperLeaderElection_WithNullServices_ShouldThrowArgumentNullException
Loading