From aab281420121a70ca8798b08ecafb65638699ff3 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Sat, 28 Feb 2026 08:43:42 -0500 Subject: [PATCH] feat(batch5): implement jetstream error constructors group06 --- .../JetStreamErrors.GeneratedConstructors.cs | 160 ++++++++++++++++++ ...tStreamErrorsGeneratedConstructorsTests.cs | 33 ++++ porting.db | Bin 6418432 -> 6426624 bytes tools/generate-jetstream-errors.sh | 20 +++ 4 files changed, 213 insertions(+) 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 cb49630b1fe84742b8d2c17f111e570fac1b732b..86b1fe521e817b86caa6c352c070a0a565a83e14 100644 GIT binary patch delta 4155 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 Wwp(or)u2dj-B_-Q;P17^J^umebad(f 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}" ) {