public async Task SmokeTest() { var endpoint = new RevivableEndpoint("id1"); IProcessor processor = endpoint.CreateProcessor(); Assert.True(processor.ErrorDetectionStrategy.IsTransient(new Exception())); Assert.Equal(endpoint, processor.Endpoint); Assert.Equal(new List <IMessage>(), endpoint.Processed); Assert.Equal(string.Empty, endpoint.IotHubName); ISinkResult <IMessage> result = await processor.ProcessAsync(new IMessage[0], CancellationToken.None); Assert.Equal(new IMessage[0], result.Succeeded); Assert.Equal(new List <IMessage>(), endpoint.Processed); IMessage[] messages = new[] { Message1, Message2, Message3 }; ISinkResult <IMessage> result2 = await processor.ProcessAsync(messages, CancellationToken.None); Assert.Equal(new[] { Message1, Message2, Message3 }, result2.Succeeded); Assert.Equal(new List <IMessage> { Message1, Message2, Message3 }, endpoint.Processed); // set to failing endpoint.Failing = true; ISinkResult <IMessage> result3 = await processor.ProcessAsync(messages, CancellationToken.None); Assert.True(result3.SendFailureDetails.HasValue); Assert.Equal(new List <IMessage> { Message1, Message2, Message3 }, endpoint.Processed); // revive endpoint.Failing = false; ISinkResult <IMessage> result4 = await processor.ProcessAsync(messages, CancellationToken.None); Assert.Equal(new[] { Message1, Message2, Message3 }, result4.Succeeded); Assert.Equal(new List <IMessage> { Message1, Message2, Message3, Message1, Message2, Message3 }, endpoint.Processed); await processor.CloseAsync(CancellationToken.None); }
public Processor(RevivableEndpoint endpoint) { this.endpoint = endpoint; }