Example #1
0
    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;
        }
    }
Example #2
0
 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));
    }