From dc90025a37499040fe5e2cec34e65e70540118e5 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Sat, 28 Feb 2026 09:05:27 -0500 Subject: [PATCH] feat(batch5): implement jetstream error constructors group11 --- .../JetStreamErrors.GeneratedConstructors.cs | 48 ++++++++++++++++++ ...tStreamErrorsGeneratedConstructorsTests.cs | 19 +++++++ porting.db | Bin 6455296 -> 6459392 bytes tools/generate-jetstream-errors.sh | 6 +++ 4 files changed, 73 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 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 f27c5a43014dbf81e322e49f5d759d9b0c97a24c..0feca9ced4000ea3cd45871b9d4bdbde5edd7354 100644 GIT binary patch delta 2528 zcmcK4drVVT90%}wZy%@c-trQa!bL;`guXyZbrUBlWAi!12hP#LtyXBcE3L_N4`5l1 zm<&xc$LK?2}L4WtXt>SF@}}VTvcUcL${|F(Q%? z`Pwh+v}(hDE>7yNG4Av&6NoC((Kw=lbTo#@l#WK_Z+~MOOWBX8iszmvI#ex`w{S1Y(uuzWd} zD?GbetH|YgB2gciH0@)YiO~c`%M+tiP4ChH^u#4tT|{r!^F3n z8g6noIO7@l)=lnfgBq8X4^|#Kf13jZC_yEkzpW1T=b2`VVMDoYNL#A0sIRKlDSqZo zunOwvHT^2zIY4q*+JAynQ6WH9>)e8)#$$JRYTeWyAb+H1lr(mTRL`CM<`8*E!v~0q z?hO(Pebh;c=S<6mT|}FBaAMvwXNnF5$-QLep%BTYEk062Qbiwx$h0Q)uITI|Qc8J| zsOk6Jq%0@7INVy>9~~637WI`a`jX51(wa1?>;jZv-F=_ zOSxR}-27uU;e5<2XJX_6p08nb#_h&Nu7ERfAJeTC{xiiWIZYd;xq_u6k7(4-)DQ5M z5}&!JKXr|2%38~5T^3)dR1Yu()StzdQc~7xl+R}Ie<_sYG;@yfd6vyI^weBHpXBjh zC^gMY1wFffzo^7hX5`KJ{NKt%m!w;3j2=z~1Ik+$UXGjyuD)hZvo?>&B8 zkKH3$-ICi^F}4|w>8Er*XrF6K zG|j{>qve~(!oIe_mHPOa`fS#|RWBDcLa%)2Yx$(M&XH=su0W_$>=1%pNy1k|?1>1D zI=fp4bw`8`#E6hOd#eOV3=2EFJ)I7R&=V0Q!M#H06!D#Uk`N6=0$s^loKCxQWtH7o z<$T%DeLDwhlWQ_yQKhLxQC_vzN>6%xtLeEdKK+`YHx%`Dy{OynjRd+wf_OO4A%@yT zj}S>N;6Qv&u@HZEd$dRFu=%2at`1v#_4HJhZ=sO9;@0>)tRa4*o)t4cg=s*ntD`qWU4y);<7=N#|(*x`87x;!=UrnO~g+R02!JEzgBGvrLXBBv@t&iE^GR%FN-%aoJ)L-`jO CPbG%{ delta 1250 zcmY+@ZERCj7zglsPVc>^>)PJiZ7q9g%f>dG8#0`TictIFakrrJWDo4=LZlzj6uwfMq+R#BoadSVq&5!8#-bXL5&{(7xCXZ=KSzW{?9qj zdAYgwb|iaj9UVQkBL!N6qUdEG6s}+mXIg41*~#vqN;y=?{v6I;qbN*q*#dlbbZ1+v zE!wJ2%a6y|CMMK#%9tAG6iV`ia>)eS$K=^b=CHZNWyQU9$9Ahdx+^LMf5_~`bSzw6?_k~ zxo@}zok7PJ88I3WHWhL^U0GS9Q?Ah`2Rp;>1=_ zm7Z{PHT9NcDQtb`4m!PC8 z#mJnN`nbrXd-0jsge4M|Jz-@eEJwo1Ojyo@Kd8JsqL$S!czDu3~EMIYC% z=wtdP`f-nI~yoD)mo=zmoZRX1VIdm*KyE zDSI;o7d7VZZx5K@fh@>|9Pok<=0PsxL8`X^{1AX3%!fiKf(1|vB~S_r;Q=Uv2caA) zU=ch7i=h&hz{5}lkHAuR6qdnb@HjjH%i&3=hNs|ZSOGP#5>~-8Pz$S}4xWWIP!DV2 zIamkJ!waw;LhvHI1TVt|*a!{q3cL!N;5BH3CTNDuumxIVdm!95rk>VcS5mL7MSeID m9#v&w*a$HijGIpR&h>E50h@