feat(batch5): implement jetstream error constructors group03

This commit is contained in:
Joseph Doherty
2026-02-28 08:32:48 -05:00
parent 35488a2b68
commit 802e3d6576
4 changed files with 213 additions and 0 deletions

View File

@@ -264,6 +264,134 @@ public static partial class JsApiErrors
return Clone(ConsumerDoesNotExist); return Clone(ConsumerDoesNotExist);
} }
public static JsApiError NewJSConsumerDuplicateFilterSubjectsError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDuplicateFilterSubjects);
}
public static JsApiError NewJSConsumerDurableNameNotInSubjectError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDurableNameNotInSubject);
}
public static JsApiError NewJSConsumerDurableNameNotMatchSubjectError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDurableNameNotMatchSubject);
}
public static JsApiError NewJSConsumerDurableNameNotSetError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerDurableNameNotSet);
}
public static JsApiError NewJSConsumerEmptyFilterError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerEmptyFilter);
}
public static JsApiError NewJSConsumerEmptyGroupNameError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerEmptyGroupName);
}
public static JsApiError NewJSConsumerEphemeralWithDurableInSubjectError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerEphemeralWithDurableInSubject);
}
public static JsApiError NewJSConsumerEphemeralWithDurableNameError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerEphemeralWithDurableName);
}
public static JsApiError NewJSConsumerExistingActiveError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerExistingActive);
}
public static JsApiError NewJSConsumerFCRequiresPushError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerFCRequiresPush);
}
public static JsApiError NewJSConsumerFilterNotSubsetError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerFilterNotSubset);
}
public static JsApiError NewJSConsumerHBRequiresPushError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerHBRequiresPush);
}
public static JsApiError NewJSConsumerInvalidDeliverSubjectError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerInvalidDeliverSubject);
}
public static JsApiError NewJSConsumerInvalidGroupNameError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerInvalidGroupName);
}
public static JsApiError NewJSConsumerInvalidPriorityGroupError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerInvalidPriorityGroup);
}
public static JsApiError NewJSConsumerMaxDeliverBackoffError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(ConsumerMaxDeliverBackoff);
}
public static JsApiError NewJSAtomicPublishTooLargeBatchError(object? size, params ErrorOption[] opts) public static JsApiError NewJSAtomicPublishTooLargeBatchError(object? size, params ErrorOption[] opts)
{ {
if (ParseOpts(opts) is JsApiError overridden) if (ParseOpts(opts) is JsApiError overridden)
@@ -304,4 +432,36 @@ public static partial class JsApiErrors
return NewWithTags(ConsumerDescriptionTooLong, "{max}", max); return NewWithTags(ConsumerDescriptionTooLong, "{max}", max);
} }
public static JsApiError NewJSConsumerInactiveThresholdExcessError(object? limit, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(ConsumerInactiveThresholdExcess, "{limit}", limit);
}
public static JsApiError NewJSConsumerInvalidPolicyError(Exception err, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(ConsumerInvalidPolicy, "{err}", err);
}
public static JsApiError NewJSConsumerInvalidResetError(Exception err, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(ConsumerInvalidReset, "{err}", err);
}
public static JsApiError NewJSConsumerInvalidSamplingError(Exception err, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(ConsumerInvalidSampling, "{err}", err);
}
} }

View File

@@ -69,4 +69,37 @@ public sealed class JetStreamErrorsGeneratedConstructorsTests
fromOverride.Description.ShouldBe(expected.Description); fromOverride.Description.ShouldBe(expected.Description);
ReferenceEquals(fromOverride, expected).ShouldBeFalse(); ReferenceEquals(fromOverride, expected).ShouldBeFalse();
} }
[Fact]
public void ConstructorSurface_Group03()
{
JsApiErrors.NewJSConsumerDuplicateFilterSubjectsError().ErrCode.ShouldBe(JsApiErrors.ConsumerDuplicateFilterSubjects.ErrCode);
JsApiErrors.NewJSConsumerDurableNameNotInSubjectError().ErrCode.ShouldBe(JsApiErrors.ConsumerDurableNameNotInSubject.ErrCode);
JsApiErrors.NewJSConsumerDurableNameNotMatchSubjectError().ErrCode.ShouldBe(JsApiErrors.ConsumerDurableNameNotMatchSubject.ErrCode);
JsApiErrors.NewJSConsumerDurableNameNotSetError().ErrCode.ShouldBe(JsApiErrors.ConsumerDurableNameNotSet.ErrCode);
JsApiErrors.NewJSConsumerEmptyFilterError().ErrCode.ShouldBe(JsApiErrors.ConsumerEmptyFilter.ErrCode);
JsApiErrors.NewJSConsumerEmptyGroupNameError().ErrCode.ShouldBe(JsApiErrors.ConsumerEmptyGroupName.ErrCode);
JsApiErrors.NewJSConsumerEphemeralWithDurableInSubjectError().ErrCode.ShouldBe(JsApiErrors.ConsumerEphemeralWithDurableInSubject.ErrCode);
JsApiErrors.NewJSConsumerEphemeralWithDurableNameError().ErrCode.ShouldBe(JsApiErrors.ConsumerEphemeralWithDurableName.ErrCode);
JsApiErrors.NewJSConsumerExistingActiveError().ErrCode.ShouldBe(JsApiErrors.ConsumerExistingActive.ErrCode);
JsApiErrors.NewJSConsumerFCRequiresPushError().ErrCode.ShouldBe(JsApiErrors.ConsumerFCRequiresPush.ErrCode);
JsApiErrors.NewJSConsumerFilterNotSubsetError().ErrCode.ShouldBe(JsApiErrors.ConsumerFilterNotSubset.ErrCode);
JsApiErrors.NewJSConsumerHBRequiresPushError().ErrCode.ShouldBe(JsApiErrors.ConsumerHBRequiresPush.ErrCode);
JsApiErrors.NewJSConsumerInvalidDeliverSubjectError().ErrCode.ShouldBe(JsApiErrors.ConsumerInvalidDeliverSubject.ErrCode);
JsApiErrors.NewJSConsumerInvalidGroupNameError().ErrCode.ShouldBe(JsApiErrors.ConsumerInvalidGroupName.ErrCode);
JsApiErrors.NewJSConsumerInvalidPriorityGroupError().ErrCode.ShouldBe(JsApiErrors.ConsumerInvalidPriorityGroup.ErrCode);
JsApiErrors.NewJSConsumerMaxDeliverBackoffError().ErrCode.ShouldBe(JsApiErrors.ConsumerMaxDeliverBackoff.ErrCode);
JsApiErrors.NewJSConsumerInactiveThresholdExcessError(777).Description.ShouldBe("consumer inactive threshold exceeds system limit of 777");
JsApiErrors.NewJSConsumerInvalidPolicyError(new InvalidOperationException("invalid policy")).Description.ShouldBe("invalid policy");
JsApiErrors.NewJSConsumerInvalidResetError(new InvalidOperationException("bad reset")).Description.ShouldBe("invalid reset: bad reset");
JsApiErrors.NewJSConsumerInvalidSamplingError(new InvalidOperationException("bad sampling")).Description.ShouldBe("failed to parse consumer sampling configuration: bad sampling");
var expected = new JsApiError { Code = 497, ErrCode = 9092, Description = "override-3" };
var fromOverride = JsApiErrors.NewJSConsumerDuplicateFilterSubjectsError(JsApiErrors.Unless(expected));
fromOverride.Code.ShouldBe(expected.Code);
fromOverride.ErrCode.ShouldBe(expected.ErrCode);
fromOverride.Description.ShouldBe(expected.Description);
ReferenceEquals(fromOverride, expected).ShouldBeFalse();
}
} }

Binary file not shown.

View File

@@ -37,6 +37,22 @@ simple_methods=(
"NewJSConsumerDirectRequiresEphemeralError|ConsumerDirectRequiresEphemeral" "NewJSConsumerDirectRequiresEphemeralError|ConsumerDirectRequiresEphemeral"
"NewJSConsumerDirectRequiresPushError|ConsumerDirectRequiresPush" "NewJSConsumerDirectRequiresPushError|ConsumerDirectRequiresPush"
"NewJSConsumerDoesNotExistError|ConsumerDoesNotExist" "NewJSConsumerDoesNotExistError|ConsumerDoesNotExist"
"NewJSConsumerDuplicateFilterSubjectsError|ConsumerDuplicateFilterSubjects"
"NewJSConsumerDurableNameNotInSubjectError|ConsumerDurableNameNotInSubject"
"NewJSConsumerDurableNameNotMatchSubjectError|ConsumerDurableNameNotMatchSubject"
"NewJSConsumerDurableNameNotSetError|ConsumerDurableNameNotSet"
"NewJSConsumerEmptyFilterError|ConsumerEmptyFilter"
"NewJSConsumerEmptyGroupNameError|ConsumerEmptyGroupName"
"NewJSConsumerEphemeralWithDurableInSubjectError|ConsumerEphemeralWithDurableInSubject"
"NewJSConsumerEphemeralWithDurableNameError|ConsumerEphemeralWithDurableName"
"NewJSConsumerExistingActiveError|ConsumerExistingActive"
"NewJSConsumerFCRequiresPushError|ConsumerFCRequiresPush"
"NewJSConsumerFilterNotSubsetError|ConsumerFilterNotSubset"
"NewJSConsumerHBRequiresPushError|ConsumerHBRequiresPush"
"NewJSConsumerInvalidDeliverSubjectError|ConsumerInvalidDeliverSubject"
"NewJSConsumerInvalidGroupNameError|ConsumerInvalidGroupName"
"NewJSConsumerInvalidPriorityGroupError|ConsumerInvalidPriorityGroup"
"NewJSConsumerMaxDeliverBackoffError|ConsumerMaxDeliverBackoff"
) )
templated_methods=( templated_methods=(
@@ -45,6 +61,10 @@ templated_methods=(
"NewJSClusterNoPeersError|Exception|err|ClusterNoPeers|{err}" "NewJSClusterNoPeersError|Exception|err|ClusterNoPeers|{err}"
"NewJSConsumerCreateError|Exception|err|ConsumerCreateErr|{err}" "NewJSConsumerCreateError|Exception|err|ConsumerCreateErr|{err}"
"NewJSConsumerDescriptionTooLongError|object?|max|ConsumerDescriptionTooLong|{max}" "NewJSConsumerDescriptionTooLongError|object?|max|ConsumerDescriptionTooLong|{max}"
"NewJSConsumerInactiveThresholdExcessError|object?|limit|ConsumerInactiveThresholdExcess|{limit}"
"NewJSConsumerInvalidPolicyError|Exception|err|ConsumerInvalidPolicy|{err}"
"NewJSConsumerInvalidResetError|Exception|err|ConsumerInvalidReset|{err}"
"NewJSConsumerInvalidSamplingError|Exception|err|ConsumerInvalidSampling|{err}"
) )
{ {