public when_calling_publish() { this.partitionKey = Guid.NewGuid().ToString(); this.version = "0001"; string rowKey = "Unpublished_" + version; this.testEvent = Mock.Of<IEventRecord>(x => x.PartitionKey == partitionKey && x.RowKey == rowKey && x.TypeName == "TestEventType" && x.SourceId == "TestId" && x.SourceType == "TestSourceType" && x.Payload == "serialized event" && x.CorrelationId == "correlation" && x.AssemblyName == "Assembly" && x.Namespace == "Namespace" && x.FullName == "Namespace.TestEventType"); this.queue = new Mock<IPendingEventsQueue>(); queue.Setup(x => x.GetPendingAsync(partitionKey, It.IsAny<Action<IEnumerable<IEventRecord>, bool>>(), It.IsAny<Action<Exception>>())) .Callback<string, Action<IEnumerable<IEventRecord>, bool>, Action<Exception>>((key, success, error) => success(new[] { testEvent }, false)); this.sender = new MessageSenderMock(); var sut = new EventStoreBusPublisher(sender, queue.Object, new MockEventStoreBusPublisherInstrumentation()); var cancellationTokenSource = new CancellationTokenSource(); sut.Start(cancellationTokenSource.Token); sut.SendAsync(partitionKey, 0); Assert.True(sender.SendSignal.WaitOne(3000)); cancellationTokenSource.Cancel(); }
public when_calling_publish() { this.partitionKey = Guid.NewGuid().ToString(); this.version = "0001"; string rowKey = "Unpublished_" + version; this.testEvent = Mock.Of<IEventRecord>(x => x.PartitionKey == partitionKey && x.RowKey == rowKey && x.TypeName == "TestEventType" && x.SourceId == "TestId" && x.SourceType == "TestSourceType" && x.Payload == "serialized event" && x.AssemblyName == "Assembly" && x.Namespace == "Namespace" && x.FullName == "Namespace.TestEventType"); this.queue = new Mock<IPendingEventsQueue>(); queue.Setup(x => x.GetPending(partitionKey)).Returns(new[] { testEvent }); this.sender = new MessageSenderMock(); var sut = new EventStoreBusPublisher(sender, queue.Object); var cancellationTokenSource = new CancellationTokenSource(); sut.Start(cancellationTokenSource.Token); sut.SendAsync(partitionKey); Assert.True(sender.ResetEvent.WaitOne(3000)); cancellationTokenSource.Cancel(); }
public when_starting_with_pending_events() { this.version = "0001"; this.rowKey = "Unpublished_" + version; this.pendingKeys = new[] { "Key1", "Key2", "Key3" }; this.queue = new Mock<IPendingEventsQueue>(); queue.Setup(x => x.GetPendingAsync(It.IsAny<string>(), It.IsAny<Action<IEnumerable<IEventRecord>, bool>>(), It.IsAny<Action<Exception>>())) .Callback<string, Action<IEnumerable<IEventRecord>, bool>, Action<Exception>>( (key, success, error) => success(new[] { Mock.Of<IEventRecord>( x => x.PartitionKey == key && x.RowKey == rowKey && x.TypeName == "TestEventType" && x.SourceId == "TestId" && x.SourceType == "TestSourceType" && x.Payload == "serialized event") }, false)); queue.Setup(x => x.GetPartitionsWithPendingEvents()).Returns(pendingKeys); this.sender = new MessageSenderMock(); var sut = new EventStoreBusPublisher(sender, queue.Object, new MockEventStoreBusPublisherInstrumentation()); var cancellationTokenSource = new CancellationTokenSource(); sut.Start(cancellationTokenSource.Token); for (int i = 0; i < pendingKeys.Length; i++) { Assert.True(sender.SendSignal.WaitOne(5000)); } cancellationTokenSource.Cancel(); }
public given_event_store_with_events_after_it_is_started() { this.version = "0001"; this.rowKey = "Unpublished_" + version; this.partitionKeys = Enumerable.Range(0, 200).Select(i => "Key" + i).ToArray(); this.queue = new Mock<IPendingEventsQueue>(); queue.Setup(x => x.GetPendingAsync(It.IsAny<string>(), It.IsAny<Action<IEnumerable<IEventRecord>, bool>>(), It.IsAny<Action<Exception>>())) .Callback<string, Action<IEnumerable<IEventRecord>, bool>, Action<Exception>>( (key, success, error) => success(new[] { Mock.Of<IEventRecord>( x => x.PartitionKey == key && x.RowKey == rowKey && x.TypeName == "TestEventType" && x.SourceId == "TestId" && x.SourceType == "TestSourceType" && x.Payload == "serialized event") }, false)); queue.Setup(x => x.GetPartitionsWithPendingEvents()).Returns(Enumerable.Empty<string>()); queue .Setup(x => x.DeletePendingAsync( It.IsAny<string>(), It.IsAny<string>(), It.IsAny<Action<bool>>(), It.IsAny<Action<Exception>>())) .Callback<string, string, Action<bool>, Action<Exception>>((p, r, s, e) => s(true)); this.sender = new MessageSenderMock(); this.sut = new EventStoreBusPublisher(sender, queue.Object, new MockEventStoreBusPublisherInstrumentation()); this.cancellationTokenSource = new CancellationTokenSource(); sut.Start(cancellationTokenSource.Token); }
public when_starting_with_pending_events() { this.version = "0001"; this.rowKey = "Unpublished_" + version; this.pendingKeys = new[] { "Key1", "Key2", "Key3" }; this.queue = new Mock<IPendingEventsQueue>(); queue.Setup(x => x.GetPending(It.IsAny<string>())).Returns<string>( key => new[] { Mock.Of<IEventRecord>( x => x.PartitionKey == key && x.RowKey == rowKey && x.TypeName == "TestEventType" && x.SourceId == "TestId" && x.SourceType == "TestSourceType" && x.Payload == "serialized event") }); queue.Setup(x => x.GetPartitionsWithPendingEvents()).Returns(pendingKeys); this.sender = new MessageSenderMock(); var sut = new EventStoreBusPublisher(sender, queue.Object); var cancellationTokenSource = new CancellationTokenSource(); sut.Start(cancellationTokenSource.Token); for (int i = 0; i < pendingKeys.Length; i++) { Assert.True(sender.ResetEvent.WaitOne(5000)); } cancellationTokenSource.Cancel(); }