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 c20c0cb..718f4cc 100644 --- a/dotnet/src/ZB.MOM.NatsNet.Server/JetStream/JetStreamErrors.GeneratedConstructors.cs +++ b/dotnet/src/ZB.MOM.NatsNet.Server/JetStream/JetStreamErrors.GeneratedConstructors.cs @@ -1200,6 +1200,30 @@ public static partial class JsApiErrors return Clone(StreamTooManyRequests); } + public static JsApiError NewJSStreamWrongLastSequenceConstantError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(StreamWrongLastSequenceConstant); + } + + public static JsApiError NewJSTempStorageFailedError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(TempStorageFailed); + } + + public static JsApiError NewJSTemplateNameNotMatchSubjectError(params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return Clone(TemplateNameNotMatchSubject); + } + public static JsApiError NewJSAtomicPublishTooLargeBatchError(object? size, params ErrorOption[] opts) { if (ParseOpts(opts) is JsApiError overridden) @@ -1544,6 +1568,30 @@ public static partial class JsApiErrors return NewWithTags(StreamTransformInvalidSource, "{err}", err); } + public static JsApiError NewJSStreamUpdateError(Exception err, params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return NewWithTags(StreamUpdate, "{err}", err); + } + + public static JsApiError NewJSStreamWrongLastMsgIDError(object? id, params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return NewWithTags(StreamWrongLastMsgID, "{id}", id); + } + + public static JsApiError NewJSStreamWrongLastSequenceError(ulong seq, params ErrorOption[] opts) + { + if (ParseOpts(opts) is JsApiError overridden) + return Clone(overridden); + + return NewWithTags(StreamWrongLastSequence, "{seq}", seq); + } + public static JsApiError NewJSStreamExternalApiOverlapError(object? prefix, object? subject, params ErrorOption[] opts) { if (ParseOpts(opts) is JsApiError overridden) 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 1065454..35d450a 100644 --- a/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/JetStreamErrorsGeneratedConstructorsTests.cs +++ b/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/JetStreamErrorsGeneratedConstructorsTests.cs @@ -333,4 +333,23 @@ public sealed class JetStreamErrorsGeneratedConstructorsTests fromOverride.Description.ShouldBe(expected.Description); ReferenceEquals(fromOverride, expected).ShouldBeFalse(); } + + [Fact] + public void ConstructorSurface_Group11() + { + JsApiErrors.NewJSStreamWrongLastSequenceConstantError().ErrCode.ShouldBe(JsApiErrors.StreamWrongLastSequenceConstant.ErrCode); + JsApiErrors.NewJSTempStorageFailedError().ErrCode.ShouldBe(JsApiErrors.TempStorageFailed.ErrCode); + JsApiErrors.NewJSTemplateNameNotMatchSubjectError().ErrCode.ShouldBe(JsApiErrors.TemplateNameNotMatchSubject.ErrCode); + + JsApiErrors.NewJSStreamUpdateError(new InvalidOperationException("update failed")).Description.ShouldBe("update failed"); + JsApiErrors.NewJSStreamWrongLastMsgIDError("msg-42").Description.ShouldBe("wrong last msg ID: msg-42"); + JsApiErrors.NewJSStreamWrongLastSequenceError(42UL).Description.ShouldBe("wrong last sequence: 42"); + + var expected = new JsApiError { Code = 489, ErrCode = 9100, Description = "override-11" }; + var fromOverride = JsApiErrors.NewJSTempStorageFailedError(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 f27c5a4..0feca9c 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 edff050..d8481cf 100755 --- a/tools/generate-jetstream-errors.sh +++ b/tools/generate-jetstream-errors.sh @@ -154,6 +154,9 @@ simple_methods=( "NewJSStreamSubjectOverlapError|StreamSubjectOverlap" "NewJSStreamTemplateNotFoundError|StreamTemplateNotFound" "NewJSStreamTooManyRequestsError|StreamTooManyRequests" + "NewJSStreamWrongLastSequenceConstantError|StreamWrongLastSequenceConstant" + "NewJSTempStorageFailedError|TempStorageFailed" + "NewJSTemplateNameNotMatchSubjectError|TemplateNameNotMatchSubject" ) templated_methods=( @@ -200,6 +203,9 @@ templated_methods=( "NewJSStreamTemplateDeleteError|Exception|err|StreamTemplateDelete|{err}" "NewJSStreamTransformInvalidDestinationError|Exception|err|StreamTransformInvalidDestination|{err}" "NewJSStreamTransformInvalidSourceError|Exception|err|StreamTransformInvalidSource|{err}" + "NewJSStreamUpdateError|Exception|err|StreamUpdate|{err}" + "NewJSStreamWrongLastMsgIDError|object?|id|StreamWrongLastMsgID|{id}" + "NewJSStreamWrongLastSequenceError|ulong|seq|StreamWrongLastSequence|{seq}" ) templated_methods_two_args=(