public static bool HasValue(this ExtendableOptions options)
    {
        var messageId = options.GetMessageId();

        if (messageId is not null)
        {
            return(true);
        }

        if (options is SendOptions sendOptions)
        {
            if (sendOptions.GetDeliveryDate().HasValue || sendOptions.GetDeliveryDelay().HasValue)
            {
                return(true);
            }
        }

        var headers = options.GetHeaders();

        if (headers.Any())
        {
            return(true);
        }

        var extensions = options.GetExtensions();

        if (extensions is not null)
        {
            return(ContextBagHelper.HasContent(extensions));
        }

        return(false);
    }
コード例 #2
0
 public static void Enable(bool captureLogs = true)
 {
     if (captureLogs)
     {
         LogCapture.Initialize();
     }
     SharedVerifySettings.ModifySerialization(settings =>
     {
         settings.IgnoreMember <TestableInvokeHandlerContext>(x => x.MessageHeaders);
         settings.IgnoreMember <TestableInvokeHandlerContext>(x => x.Headers);
         settings.IgnoreMember <TestableInvokeHandlerContext>(x => x.Extensions);
         settings.IgnoreMember <TestableInvokeHandlerContext>(x => x.MessageId);
         settings.IgnoreMember <TestableInvokeHandlerContext>(x => x.MessageHandler);
         settings.IgnoreMember <TestableInvokeHandlerContext>(x => x.MessageBeingHandled);
         settings.IgnoreMember <TestableInvokeHandlerContext>(x => x.MessageMetadata);
         settings.IgnoreMember <IMessageProcessingContext>(x => x.ReplyToAddress);
         settings.IgnoreMember <TestableEndpointInstance>(x => x.EndpointStopped);
         settings.IgnoreMember <TestableOutgoingLogicalMessageContext>(x => x.RoutingStrategies);
         settings.IgnoreMember <TestableOutgoingPhysicalMessageContext>(x => x.RoutingStrategies);
         settings.IgnoreMember <TestableRoutingContext>(x => x.RoutingStrategies);
         settings.IgnoreInstance <ContextBag>(x => !ContextBagHelper.HasContent(x));
         settings.IgnoreMembersWithType <IBuilder>();
         settings.AddExtraSettings(serializerSettings =>
         {
             var converters = serializerSettings.Converters;
             converters.Add(new ContextBagConverter());
             converters.Add(new SendOptionsConverter());
             converters.Add(new ExtendableOptionsConverter());
             converters.Add(new UnsubscriptionConverter());
             converters.Add(new TimeoutMessageConverter());
             converters.Add(new SubscriptionConverter());
             converters.Add(new OutgoingMessageConverter());
         });
     });
 }
コード例 #3
0
    public static void WriteBaseMembers(JsonWriter writer, JsonSerializer serializer, ExtendableOptions options)
    {
        var messageId = options.GetMessageId();

        if (messageId != null)
        {
            writer.WritePropertyName("MessageId");
            serializer.Serialize(writer, messageId);
        }

        var headers = options.GetCleanedHeaders();

        if (headers.Any())
        {
            writer.WritePropertyName("Headers");
            serializer.Serialize(writer, headers);
        }

        var extensions = options.GetExtensions();

        if (extensions != null)
        {
            if (ContextBagHelper.HasContent(extensions))
            {
                writer.WritePropertyName("Extensions");
                serializer.Serialize(writer, extensions);
            }
        }
    }
コード例 #4
0
    public static void WriteBaseMembers(VerifyJsonWriter writer, ExtendableOptions options)
    {
        var messageId = options.GetMessageId();

        writer.WriteMember(options, messageId, "MessageId");

        var headers = options.GetCleanedHeaders();

        writer.WriteMember(options, headers, "Headers");

        var extensions = options.GetExtensions();

        if (extensions is not null)
        {
            if (ContextBagHelper.HasContent(extensions))
            {
                writer.WriteMember(options, extensions, "Extensions");
            }
        }
    }