feat(batch5): implement jetstream error constructors group02

This commit is contained in:
Joseph Doherty
2026-02-28 08:29:20 -05:00
parent 9f30fe6033
commit 35488a2b68
4 changed files with 213 additions and 0 deletions

View File

@@ -120,6 +120,150 @@ public static partial class JsApiErrors
return Clone(ClusterPeerNotMember);
}
public static JsApiError NewJSClusterRequiredError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ClusterRequired);
}
public static JsApiError NewJSClusterServerMemberChangeInflightError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ClusterServerMemberChangeInflight);
}
public static JsApiError NewJSClusterServerNotMemberError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ClusterServerNotMember);
}
public static JsApiError NewJSClusterTagsError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ClusterTags);
}
public static JsApiError NewJSClusterUnSupportFeatureError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ClusterUnSupportFeature);
}
public static JsApiError NewJSConsumerAckPolicyInvalidError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerAckPolicyInvalid);
}
public static JsApiError NewJSConsumerAckWaitNegativeError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerAckWaitNegative);
}
public static JsApiError NewJSConsumerAlreadyExistsError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerAlreadyExists);
}
public static JsApiError NewJSConsumerBackOffNegativeError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerBackOffNegative);
}
public static JsApiError NewJSConsumerBadDurableNameError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerBadDurableName);
}
public static JsApiError NewJSConsumerConfigRequiredError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerConfigRequired);
}
public static JsApiError NewJSConsumerCreateDurableAndNameMismatchError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerCreateDurableAndNameMismatch);
}
public static JsApiError NewJSConsumerCreateFilterSubjectMismatchError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerCreateFilterSubjectMismatch);
}
public static JsApiError NewJSConsumerDeliverCycleError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDeliverCycle);
}
public static JsApiError NewJSConsumerDeliverToWildcardsError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDeliverToWildcards);
}
public static JsApiError NewJSConsumerDirectRequiresEphemeralError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDirectRequiresEphemeral);
}
public static JsApiError NewJSConsumerDirectRequiresPushError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDirectRequiresPush);
}
public static JsApiError NewJSConsumerDoesNotExistError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDoesNotExist);
}
public static JsApiError NewJSAtomicPublishTooLargeBatchError(object? size, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
@@ -144,4 +288,20 @@ public static partial class JsApiErrors
return NewWithTags(ClusterNoPeers, "{err}", err);
}
public static JsApiError NewJSConsumerCreateError(Exception err, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(ConsumerCreateErr, "{err}", err);
}
public static JsApiError NewJSConsumerDescriptionTooLongError(object? max, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(ConsumerDescriptionTooLong, "{max}", max);
}
}

View File

@@ -36,4 +36,37 @@ public sealed class JetStreamErrorsGeneratedConstructorsTests
fromOverride.Description.ShouldBe(expected.Description);
ReferenceEquals(fromOverride, expected).ShouldBeFalse();
}
[Fact]
public void ConstructorSurface_Group02()
{
JsApiErrors.NewJSClusterRequiredError().ErrCode.ShouldBe(JsApiErrors.ClusterRequired.ErrCode);
JsApiErrors.NewJSClusterServerMemberChangeInflightError().ErrCode.ShouldBe(JsApiErrors.ClusterServerMemberChangeInflight.ErrCode);
JsApiErrors.NewJSClusterServerNotMemberError().ErrCode.ShouldBe(JsApiErrors.ClusterServerNotMember.ErrCode);
JsApiErrors.NewJSClusterTagsError().ErrCode.ShouldBe(JsApiErrors.ClusterTags.ErrCode);
JsApiErrors.NewJSClusterUnSupportFeatureError().ErrCode.ShouldBe(JsApiErrors.ClusterUnSupportFeature.ErrCode);
JsApiErrors.NewJSConsumerAckPolicyInvalidError().ErrCode.ShouldBe(JsApiErrors.ConsumerAckPolicyInvalid.ErrCode);
JsApiErrors.NewJSConsumerAckWaitNegativeError().ErrCode.ShouldBe(JsApiErrors.ConsumerAckWaitNegative.ErrCode);
JsApiErrors.NewJSConsumerAlreadyExistsError().ErrCode.ShouldBe(JsApiErrors.ConsumerAlreadyExists.ErrCode);
JsApiErrors.NewJSConsumerBackOffNegativeError().ErrCode.ShouldBe(JsApiErrors.ConsumerBackOffNegative.ErrCode);
JsApiErrors.NewJSConsumerBadDurableNameError().ErrCode.ShouldBe(JsApiErrors.ConsumerBadDurableName.ErrCode);
JsApiErrors.NewJSConsumerConfigRequiredError().ErrCode.ShouldBe(JsApiErrors.ConsumerConfigRequired.ErrCode);
JsApiErrors.NewJSConsumerCreateDurableAndNameMismatchError().ErrCode.ShouldBe(JsApiErrors.ConsumerCreateDurableAndNameMismatch.ErrCode);
JsApiErrors.NewJSConsumerCreateFilterSubjectMismatchError().ErrCode.ShouldBe(JsApiErrors.ConsumerCreateFilterSubjectMismatch.ErrCode);
JsApiErrors.NewJSConsumerDeliverCycleError().ErrCode.ShouldBe(JsApiErrors.ConsumerDeliverCycle.ErrCode);
JsApiErrors.NewJSConsumerDeliverToWildcardsError().ErrCode.ShouldBe(JsApiErrors.ConsumerDeliverToWildcards.ErrCode);
JsApiErrors.NewJSConsumerDirectRequiresEphemeralError().ErrCode.ShouldBe(JsApiErrors.ConsumerDirectRequiresEphemeral.ErrCode);
JsApiErrors.NewJSConsumerDirectRequiresPushError().ErrCode.ShouldBe(JsApiErrors.ConsumerDirectRequiresPush.ErrCode);
JsApiErrors.NewJSConsumerDoesNotExistError().ErrCode.ShouldBe(JsApiErrors.ConsumerDoesNotExist.ErrCode);
JsApiErrors.NewJSConsumerCreateError(new InvalidOperationException("create failed")).Description.ShouldBe("create failed");
JsApiErrors.NewJSConsumerDescriptionTooLongError(1024).Description.ShouldBe("consumer description is too long, maximum allowed is 1024");
var expected = new JsApiError { Code = 498, ErrCode = 9091, Description = "override-2" };
var fromOverride = JsApiErrors.NewJSClusterRequiredError(JsApiErrors.Unless(expected));
fromOverride.Code.ShouldBe(expected.Code);
fromOverride.ErrCode.ShouldBe(expected.ErrCode);
fromOverride.Description.ShouldBe(expected.Description);
ReferenceEquals(fromOverride, expected).ShouldBeFalse();
}
}