diff --git a/dotnet/src/ZB.MOM.NatsNet.Server/JetStream/JetStreamErrors.GeneratedConstructors.cs b/dotnet/src/ZB.MOM.NatsNet.Server/JetStream/JetStreamErrors.GeneratedConstructors.cs index 703b09d..888d750 100644 --- a/dotnet/src/ZB.MOM.NatsNet.Server/JetStream/JetStreamErrors.GeneratedConstructors.cs +++ b/dotnet/src/ZB.MOM.NatsNet.Server/JetStream/JetStreamErrors.GeneratedConstructors.cs @@ -656,6 +656,142 @@ public static partial class JsApiErrors return Clone(MemoryResourcesExceeded); } + public static JsApiError NewJSMessageCounterBrokenError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageCounterBroken); + } + + public static JsApiError NewJSMessageIncrDisabledError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageIncrDisabled); + } + + public static JsApiError NewJSMessageIncrInvalidError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageIncrInvalid); + } + + public static JsApiError NewJSMessageIncrMissingError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageIncrMissing); + } + + public static JsApiError NewJSMessageIncrPayloadError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageIncrPayload); + } + + public static JsApiError NewJSMessageSchedulesDisabledError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageSchedulesDisabled); + } + + public static JsApiError NewJSMessageSchedulesPatternInvalidError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageSchedulesPatternInvalid); + } + + public static JsApiError NewJSMessageSchedulesRollupInvalidError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageSchedulesRollupInvalid); + } + + public static JsApiError NewJSMessageSchedulesSourceInvalidError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageSchedulesSourceInvalid); + } + + public static JsApiError NewJSMessageSchedulesTTLInvalidError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageSchedulesTTLInvalid); + } + + public static JsApiError NewJSMessageSchedulesTargetInvalidError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageSchedulesTargetInvalid); + } + + public static JsApiError NewJSMessageTTLDisabledError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageTTLDisabled); + } + + public static JsApiError NewJSMessageTTLInvalidError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MessageTTLInvalid); + } + + public static JsApiError NewJSMirrorInvalidStreamNameError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MirrorInvalidStreamName); + } + + public static JsApiError NewJSMirrorMaxMessageSizeTooBigError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MirrorMaxMessageSizeTooBig); + } + + public static JsApiError NewJSMirrorMultipleFiltersNotAllowedError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MirrorMultipleFiltersNotAllowed); + } + + public static JsApiError NewJSMirrorOverlappingSubjectFiltersError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(MirrorOverlappingSubjectFilters); + } + public static JsApiError NewJSAtomicPublishTooLargeBatchError(object? size, params ErrorOption[] opts) { if (ParseOpts(opts) is JsApiError overridden) @@ -784,4 +920,28 @@ public static partial class JsApiErrors return NewWithTags(InvalidJSON, "{err}", err); } + public static JsApiError NewJSMirrorConsumerSetupFailedError(Exception err, params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return NewWithTags(MirrorConsumerSetupFailed, "{err}", err); + } + + public static JsApiError NewJSMirrorInvalidSubjectFilterError(Exception err, params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return NewWithTags(MirrorInvalidSubjectFilter, "{err}", err); + } + + public static JsApiError NewJSMirrorInvalidTransformDestinationError(Exception err, params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return NewWithTags(MirrorInvalidTransformDestination, "{err}", err); + } + } diff --git a/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/JetStreamErrorsGeneratedConstructorsTests.cs b/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/JetStreamErrorsGeneratedConstructorsTests.cs index 2b2fc95..221311e 100644 --- a/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/JetStreamErrorsGeneratedConstructorsTests.cs +++ b/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/JetStreamErrorsGeneratedConstructorsTests.cs @@ -168,4 +168,37 @@ public sealed class JetStreamErrorsGeneratedConstructorsTests fromOverride.Description.ShouldBe(expected.Description); ReferenceEquals(fromOverride, expected).ShouldBeFalse(); } + + [Fact] + public void ConstructorSurface_Group06() + { + JsApiErrors.NewJSMessageCounterBrokenError().ErrCode.ShouldBe(JsApiErrors.MessageCounterBroken.ErrCode); + JsApiErrors.NewJSMessageIncrDisabledError().ErrCode.ShouldBe(JsApiErrors.MessageIncrDisabled.ErrCode); + JsApiErrors.NewJSMessageIncrInvalidError().ErrCode.ShouldBe(JsApiErrors.MessageIncrInvalid.ErrCode); + JsApiErrors.NewJSMessageIncrMissingError().ErrCode.ShouldBe(JsApiErrors.MessageIncrMissing.ErrCode); + JsApiErrors.NewJSMessageIncrPayloadError().ErrCode.ShouldBe(JsApiErrors.MessageIncrPayload.ErrCode); + JsApiErrors.NewJSMessageSchedulesDisabledError().ErrCode.ShouldBe(JsApiErrors.MessageSchedulesDisabled.ErrCode); + JsApiErrors.NewJSMessageSchedulesPatternInvalidError().ErrCode.ShouldBe(JsApiErrors.MessageSchedulesPatternInvalid.ErrCode); + JsApiErrors.NewJSMessageSchedulesRollupInvalidError().ErrCode.ShouldBe(JsApiErrors.MessageSchedulesRollupInvalid.ErrCode); + JsApiErrors.NewJSMessageSchedulesSourceInvalidError().ErrCode.ShouldBe(JsApiErrors.MessageSchedulesSourceInvalid.ErrCode); + JsApiErrors.NewJSMessageSchedulesTTLInvalidError().ErrCode.ShouldBe(JsApiErrors.MessageSchedulesTTLInvalid.ErrCode); + JsApiErrors.NewJSMessageSchedulesTargetInvalidError().ErrCode.ShouldBe(JsApiErrors.MessageSchedulesTargetInvalid.ErrCode); + JsApiErrors.NewJSMessageTTLDisabledError().ErrCode.ShouldBe(JsApiErrors.MessageTTLDisabled.ErrCode); + JsApiErrors.NewJSMessageTTLInvalidError().ErrCode.ShouldBe(JsApiErrors.MessageTTLInvalid.ErrCode); + JsApiErrors.NewJSMirrorInvalidStreamNameError().ErrCode.ShouldBe(JsApiErrors.MirrorInvalidStreamName.ErrCode); + JsApiErrors.NewJSMirrorMaxMessageSizeTooBigError().ErrCode.ShouldBe(JsApiErrors.MirrorMaxMessageSizeTooBig.ErrCode); + JsApiErrors.NewJSMirrorMultipleFiltersNotAllowedError().ErrCode.ShouldBe(JsApiErrors.MirrorMultipleFiltersNotAllowed.ErrCode); + JsApiErrors.NewJSMirrorOverlappingSubjectFiltersError().ErrCode.ShouldBe(JsApiErrors.MirrorOverlappingSubjectFilters.ErrCode); + + JsApiErrors.NewJSMirrorConsumerSetupFailedError(new InvalidOperationException("setup failed")).Description.ShouldBe("setup failed"); + JsApiErrors.NewJSMirrorInvalidSubjectFilterError(new InvalidOperationException("invalid source")).Description.ShouldBe("mirror transform source: invalid source"); + JsApiErrors.NewJSMirrorInvalidTransformDestinationError(new InvalidOperationException("invalid destination")).Description.ShouldBe("mirror transform: invalid destination"); + + var expected = new JsApiError { Code = 494, ErrCode = 9095, Description = "override-6" }; + var fromOverride = JsApiErrors.NewJSMessageCounterBrokenError(JsApiErrors.Unless(expected)); + fromOverride.Code.ShouldBe(expected.Code); + fromOverride.ErrCode.ShouldBe(expected.ErrCode); + fromOverride.Description.ShouldBe(expected.Description); + ReferenceEquals(fromOverride, expected).ShouldBeFalse(); + } } diff --git a/porting.db b/porting.db index cb49630..86b1fe5 100644 Binary files a/porting.db and b/porting.db differ diff --git a/tools/generate-jetstream-errors.sh b/tools/generate-jetstream-errors.sh index 149aa4d..62c9480 100755 --- a/tools/generate-jetstream-errors.sh +++ b/tools/generate-jetstream-errors.sh @@ -86,6 +86,23 @@ simple_methods=( "NewJSMaximumConsumersLimitError|MaximumConsumersLimit" "NewJSMaximumStreamsLimitError|MaximumStreamsLimit" "NewJSMemoryResourcesExceededError|MemoryResourcesExceeded" + "NewJSMessageCounterBrokenError|MessageCounterBroken" + "NewJSMessageIncrDisabledError|MessageIncrDisabled" + "NewJSMessageIncrInvalidError|MessageIncrInvalid" + "NewJSMessageIncrMissingError|MessageIncrMissing" + "NewJSMessageIncrPayloadError|MessageIncrPayload" + "NewJSMessageSchedulesDisabledError|MessageSchedulesDisabled" + "NewJSMessageSchedulesPatternInvalidError|MessageSchedulesPatternInvalid" + "NewJSMessageSchedulesRollupInvalidError|MessageSchedulesRollupInvalid" + "NewJSMessageSchedulesSourceInvalidError|MessageSchedulesSourceInvalid" + "NewJSMessageSchedulesTTLInvalidError|MessageSchedulesTTLInvalid" + "NewJSMessageSchedulesTargetInvalidError|MessageSchedulesTargetInvalid" + "NewJSMessageTTLDisabledError|MessageTTLDisabled" + "NewJSMessageTTLInvalidError|MessageTTLInvalid" + "NewJSMirrorInvalidStreamNameError|MirrorInvalidStreamName" + "NewJSMirrorMaxMessageSizeTooBigError|MirrorMaxMessageSizeTooBig" + "NewJSMirrorMultipleFiltersNotAllowedError|MirrorMultipleFiltersNotAllowed" + "NewJSMirrorOverlappingSubjectFiltersError|MirrorOverlappingSubjectFilters" ) templated_methods=( @@ -105,6 +122,9 @@ templated_methods=( "NewJSConsumerOfflineReasonError|Exception|err|ConsumerOfflineReason|{err}" "NewJSConsumerStoreFailedError|Exception|err|ConsumerStoreFailed|{err}" "NewJSInvalidJSONError|Exception|err|InvalidJSON|{err}" + "NewJSMirrorConsumerSetupFailedError|Exception|err|MirrorConsumerSetupFailed|{err}" + "NewJSMirrorInvalidSubjectFilterError|Exception|err|MirrorInvalidSubjectFilter|{err}" + "NewJSMirrorInvalidTransformDestinationError|Exception|err|MirrorInvalidTransformDestination|{err}" ) {