/// <summary> /// Initializes a new instance of the <see cref="SumoLogicSink"/> class. /// </summary> /// <param name="log">The log service.</param> /// <param name="httpMessageHandler">HTTP message handler.</param> /// <param name="connection">Connection configuration.</param> /// <param name="source">Event source describer.</param> /// <param name="formatter">Text formatter.</param> public SumoLogicSink( ILog log, HttpMessageHandler httpMessageHandler, SumoLogicConnection connection, SumoLogicSource source, ITextFormatter formatter) { if (connection is null) { throw new ArgumentNullException(nameof(connection)); } if (source is null) { throw new ArgumentNullException(nameof(source)); } _formatter = formatter ?? throw new ArgumentNullException(nameof(formatter)); _log = log ?? new DummyLog(); _messageSender = MessageSenderFactory.CreateMessageSender(_log, httpMessageHandler, connection); _messageQueue = MessageQueueFactory.CreateMessageQueue(_log, connection); SumoLogicMessageSenderBufferFlushingTask flushBufferTask = FlushBufferTaskFactory.CreateFlushBufferTask( _log, _messageSender, _messageQueue, connection, source); _flushBufferTimer = new Timer( _ => flushBufferTask.Run(), null, TimeSpan.FromMilliseconds(0), connection.FlushingAccuracy); }
/// <summary> /// Initializes a new instance of the <see cref="SumoLogicUnbufferedSink"/> class. /// </summary> /// <param name="log">The log service.</param> /// <param name="httpMessageHandler">HTTP message handler.</param> /// <param name="connection">Connection configuration.</param> /// <param name="source">Event source describer.</param> /// <param name="formatter">Text formatter.</param> public SumoLogicUnbufferedSink( ILog log, HttpMessageHandler httpMessageHandler, SumoLogicConnection connection, SumoLogicSource source, ITextFormatter formatter) { if (connection is null) { throw new ArgumentNullException(nameof(connection)); } _source = source ?? throw new ArgumentNullException(nameof(source)); _formatter = formatter ?? throw new ArgumentNullException(nameof(formatter)); _log = log ?? new DummyLog(); _messageSender = MessageSenderFactory.CreateMessageSender(_log, httpMessageHandler, connection); }
public void Create_New_Message_Senders_Regardless_Of_Having_The_Same_Config() { var sameConfig = new MyEndpointHandlingConfig { ConnectionString = "Endpoint=sb://your-sb.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=", EntityPath = "unittests.singlemessagetype/Subscriptions/MessageReceiverFactoryShould", MaxConcurrentCalls = 2, MaxAutoRenewDurationSeconds = 60, AutoComplete = true, }; var messageSender = _messageSenderFactory.CreateMessageSender(sameConfig); var anotherMessageSender = _messageSenderFactory.CreateMessageSender(sameConfig); messageSender.Should().NotBeNull(); anotherMessageSender.Should().NotBeNull(); messageSender.Should().NotBeSameAs(anotherMessageSender); }