public void TestAdmit(IMessage message, long offset, bool expected) { using (var checkpointer = new NullCheckpointer()) { bool result = checkpointer.Admit(message); Assert.Equal(expected, result); } }
public async Task InvokeTest() { // Arrange const int MessagesCount = 10; const string EndpointId = "endpoint1"; var endpoint = new NullEndpoint(EndpointId); var priorities = new List <uint>() { 0, 1, 2, 100, 101, 102 }; var checkpointer = new NullCheckpointer(); var endpointExecutorConfig = new EndpointExecutorConfig(TimeSpan.FromHours(1), RetryStrategy.NoRetry, TimeSpan.FromHours(1)); var asyncEndpointExecutorOptions = new AsyncEndpointExecutorOptions(10); var messageStore = new TestMessageStore(); var storingAsyncEndpointExecutor = new StoringAsyncEndpointExecutor(endpoint, priorities, checkpointer, endpointExecutorConfig, asyncEndpointExecutorOptions, messageStore); IEnumerable <IMessage> messages = GetNewMessages(MessagesCount, 0); // Act - Send messages to invoke foreach (IMessage message in messages) { await storingAsyncEndpointExecutor.Invoke(message, 0, 3600); } // Assert - Check that the message store received the messages sent to invoke. List <IMessage> storeMessages = messageStore.GetReceivedMessagesForEndpoint(EndpointId); Assert.NotNull(storeMessages); Assert.Equal(MessagesCount, storeMessages.Count); for (int i = 0; i < MessagesCount; i++) { IMessage message = storeMessages[i]; Assert.True(message.Properties.ContainsKey($"key{i}")); Assert.Equal($"value{i}", message.Properties[$"key{i}"]); } // Assert - Make sure no additional / duplicate messages were sent. storeMessages = messageStore.GetReceivedMessagesForEndpoint(EndpointId); Assert.NotNull(storeMessages); Assert.Equal(10, storeMessages.Count); // Act - Send messages again to Invoke. messages = GetNewMessages(MessagesCount, MessagesCount); foreach (IMessage message in messages) { await storingAsyncEndpointExecutor.Invoke(message, 0, 3600); } // Assert - Make sure the store now has the old and the new messages. storeMessages = messageStore.GetReceivedMessagesForEndpoint(EndpointId); Assert.NotNull(storeMessages); Assert.Equal(MessagesCount * 2, storeMessages.Count); for (int i = 0; i < MessagesCount * 2; i++) { IMessage message = storeMessages[i]; Assert.True(message.Properties.ContainsKey($"key{i}")); Assert.Equal($"value{i}", message.Properties[$"key{i}"]); } }
public async Task TestCommit(IMessage message) { using (var checkpointer1 = new NullCheckpointer()) { await checkpointer1.CommitAsync(new[] { message }, new IMessage[] { }, Option.None <DateTime>(), Option.None <DateTime>(), CancellationToken.None); Assert.Equal(Checkpointer.InvalidOffset, checkpointer1.Offset); await checkpointer1.CloseAsync(CancellationToken.None); } }