public async Task OwnershipClaimDoesNotInterfereWithOtherNamespaces() { var storageManager = new InMemoryCheckpointStore(); var ownershipList = new List <EventProcessorPartitionOwnership>(); var firstOwnership = new EventProcessorPartitionOwnership { FullyQualifiedNamespace = "namespace1", EventHubName = "eventHubName", ConsumerGroup = "consumerGroup", OwnerIdentifier = "ownerIdentifier", PartitionId = "partitionId" }; ownershipList.Add(firstOwnership); await storageManager.ClaimOwnershipAsync(ownershipList); // Version must have been set by the storage manager. var version = firstOwnership.Version; ownershipList.Clear(); var secondOwnership = new EventProcessorPartitionOwnership { FullyQualifiedNamespace = "namespace2", EventHubName = "eventHubName", ConsumerGroup = "consumerGroup", OwnerIdentifier = "ownerIdentifier", PartitionId = "partitionId", Version = version }; ownershipList.Add(secondOwnership); await storageManager.ClaimOwnershipAsync(ownershipList); IEnumerable <EventProcessorPartitionOwnership> storedOwnership1 = await storageManager.ListOwnershipAsync("namespace1", "eventHubName", "consumerGroup"); IEnumerable <EventProcessorPartitionOwnership> storedOwnership2 = await storageManager.ListOwnershipAsync("namespace2", "eventHubName", "consumerGroup"); Assert.That(storedOwnership1, Is.Not.Null); Assert.That(storedOwnership1.Count, Is.EqualTo(1)); Assert.That(storedOwnership1.Single(), Is.EqualTo(firstOwnership)); Assert.That(storedOwnership2, Is.Not.Null); Assert.That(storedOwnership2.Count, Is.EqualTo(1)); Assert.That(storedOwnership2.Single(), Is.EqualTo(secondOwnership)); }
public async Task ListOwnershipAsyncReturnsEmptyIEnumerableWhenThereAreNoOwnership() { var storageManager = new InMemoryCheckpointStore(); IEnumerable <EventProcessorPartitionOwnership> ownership = await storageManager.ListOwnershipAsync("namespace", "eventHubName", "consumerGroup"); Assert.That(ownership, Is.Not.Null.And.Empty); }
public async Task ClaimOwnershipAsyncCanClaimMultipleOwnership() { var storageManager = new InMemoryCheckpointStore(); var ownershipList = new List <EventProcessorPartitionOwnership>(); var ownershipCount = 5; for (int i = 0; i < ownershipCount; i++) { ownershipList.Add( new EventProcessorPartitionOwnership { FullyQualifiedNamespace = "namespace", EventHubName = "eventHubName", ConsumerGroup = "consumerGroup", OwnerIdentifier = "ownerIdentifier", PartitionId = $"partitionId { i }" }); } await storageManager.ClaimOwnershipAsync(ownershipList); IEnumerable <EventProcessorPartitionOwnership> storedOwnership = await storageManager.ListOwnershipAsync("namespace", "eventHubName", "consumerGroup"); Assert.That(storedOwnership, Is.Not.Null); Assert.That(storedOwnership.Count, Is.EqualTo(ownershipCount)); Assert.That(storedOwnership.OrderBy(ownership => ownership.PartitionId).SequenceEqual(ownershipList), Is.True); }
public async Task OwnershipClaimFailsWhenVersionIsInvalid(string version) { var storageManager = new InMemoryCheckpointStore(); var ownershipList = new List <EventProcessorPartitionOwnership>(); var firstOwnership = new EventProcessorPartitionOwnership { FullyQualifiedNamespace = "namespace", EventHubName = "eventHubName", ConsumerGroup = "consumerGroup", OwnerIdentifier = "ownerIdentifier", PartitionId = "partitionId" }; ownershipList.Add(firstOwnership); await storageManager.ClaimOwnershipAsync(ownershipList); ownershipList.Clear(); var secondOwnership = new EventProcessorPartitionOwnership { FullyQualifiedNamespace = "namespace", EventHubName = "eventHubName", ConsumerGroup = "consumerGroup", OwnerIdentifier = "ownerIdentifier", PartitionId = "partitionId", Version = version }; ownershipList.Add(secondOwnership); await storageManager.ClaimOwnershipAsync(ownershipList); IEnumerable <EventProcessorPartitionOwnership> storedOwnership = await storageManager.ListOwnershipAsync("namespace", "eventHubName", "consumerGroup"); Assert.That(storedOwnership, Is.Not.Null); Assert.That(storedOwnership.Count, Is.EqualTo(1)); Assert.That(storedOwnership.Single(), Is.EqualTo(firstOwnership)); }