public TypedConsumerService( ILogger <TypedConsumerService <TInput> > logger, IMetricsFactory <TypedConsumerService <TInput> >?metrics, IBackgroundTaskQueue <MotorCloudEvent <TInput> > queue, IMessageDeserializer <TInput> deserializer, IOptions <ContentEncodingOptions> encodingOptions, IEnumerable <IMessageDecoder> decoders, IMessageConsumer <TInput> consumer) { _logger = logger; _queue = queue; _deserializer = deserializer; _consumer = consumer; _consumer.ConsumeCallbackAsync = SingleMessageConsumeAsync; _encodingOptions = encodingOptions.Value; _messageDeserialization = metrics?.CreateSummary("message_deserialization", "Message deserialization duration in ms"); _messageDecoding = metrics?.CreateSummary("message_decoding", "Message decoding duration in ms"); _decoderByEncoding = new Dictionary <string, IMessageDecoder>(); foreach (var decoder in decoders) { _decoderByEncoding[decoder.Encoding] = decoder; } }
public TypedMessagePublisher(IMetricsFactory <TypedMessagePublisher <TOutput, TPublisher> >?metrics, TPublisher bytesMessagePublisher, IMessageSerializer <TOutput> messageSerializer, IOptions <ContentEncodingOptions> encodingOptions, IMessageEncoder messageEncoder) { _bytesMessagePublisher = bytesMessagePublisher; _messageSerializer = messageSerializer; _encodingOptions = encodingOptions.Value; _messageEncoder = messageEncoder; _messageSerialization = metrics?.CreateSummary("message_serialization", "Message serialization duration in ms"); _messageEncoding = metrics?.CreateSummary("message_encoding", "Message encoding duration in ms"); }
private static void CreateConsumerService(IBackgroundTaskQueue <MotorCloudEvent <string> >?queue = null, IMessageDeserializer <string>?deserializer = null, IEnumerable <IMessageDecoder>?decoders = null, IMessageConsumer <string>?consumer = null, bool ignoreEncoding = false) { queue ??= Mock.Of <IBackgroundTaskQueue <MotorCloudEvent <string> > >(); deserializer ??= Mock.Of <IMessageDeserializer <string> >(); decoders ??= new List <IMessageDecoder> { Mock.Of <IMessageDecoder>() }; consumer ??= Mock.Of <IMessageConsumer <string> >(); var encodingOptions = new ContentEncodingOptions { IgnoreEncoding = ignoreEncoding }; var _ = new TypedConsumerService <string>(Mock.Of <ILogger <TypedConsumerService <string> > >(), null, queue, deserializer, Options.Create(encodingOptions), decoders, consumer); }
private static TypedMessagePublisher <string, IRawMessagePublisher <string> > CreateTypedMessagePublisher( IRawMessagePublisher <string>?publisher = null, IMessageSerializer <string>?serializer = null, IMessageEncoder?encoder = null, bool ignoreEncoding = false) { publisher ??= Mock.Of <IRawMessagePublisher <string> >(); serializer ??= Mock.Of <IMessageSerializer <string> >(); if (encoder is null) { var fakeEncoder = new Mock <IMessageEncoder>(); fakeEncoder.SetupGet(c => c.Encoding).Returns("someEncoder"); encoder = fakeEncoder.Object; } var encodingOptions = new ContentEncodingOptions { IgnoreEncoding = ignoreEncoding }; return(new TypedMessagePublisher <string, IRawMessagePublisher <string> >(null, publisher, serializer, Options.Create(encodingOptions), encoder)); }