Files
natsnet/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/JetStreamErrorsGeneratedConstructorsTests.cs

73 lines
5.6 KiB
C#

// Copyright 2020-2026 The NATS Authors
// Licensed under the Apache License, Version 2.0 (the "License");
using Shouldly;
namespace ZB.MOM.NatsNet.Server.Tests.JetStream;
public sealed class JetStreamErrorsGeneratedConstructorsTests
{
[Fact]
public void ConstructorSurface_Group01()
{
JsApiErrors.NewJSAccountResourcesExceededError().ErrCode.ShouldBe(JsApiErrors.AccountResourcesExceeded.ErrCode);
JsApiErrors.NewJSAtomicPublishContainsDuplicateMessageError().ErrCode.ShouldBe(JsApiErrors.AtomicPublishContainsDuplicateMessage.ErrCode);
JsApiErrors.NewJSAtomicPublishDisabledError().ErrCode.ShouldBe(JsApiErrors.AtomicPublishDisabled.ErrCode);
JsApiErrors.NewJSAtomicPublishIncompleteBatchError().ErrCode.ShouldBe(JsApiErrors.AtomicPublishIncompleteBatch.ErrCode);
JsApiErrors.NewJSAtomicPublishInvalidBatchCommitError().ErrCode.ShouldBe(JsApiErrors.AtomicPublishInvalidBatchCommit.ErrCode);
JsApiErrors.NewJSAtomicPublishInvalidBatchIDError().ErrCode.ShouldBe(JsApiErrors.AtomicPublishInvalidBatchID.ErrCode);
JsApiErrors.NewJSAtomicPublishMissingSeqError().ErrCode.ShouldBe(JsApiErrors.AtomicPublishMissingSeq.ErrCode);
JsApiErrors.NewJSBadRequestError().ErrCode.ShouldBe(JsApiErrors.BadRequest.ErrCode);
JsApiErrors.NewJSClusterIncompleteError().ErrCode.ShouldBe(JsApiErrors.ClusterIncomplete.ErrCode);
JsApiErrors.NewJSClusterNotActiveError().ErrCode.ShouldBe(JsApiErrors.ClusterNotActive.ErrCode);
JsApiErrors.NewJSClusterNotAssignedError().ErrCode.ShouldBe(JsApiErrors.ClusterNotAssigned.ErrCode);
JsApiErrors.NewJSClusterNotAvailError().ErrCode.ShouldBe(JsApiErrors.ClusterNotAvail.ErrCode);
JsApiErrors.NewJSClusterNotLeaderError().ErrCode.ShouldBe(JsApiErrors.ClusterNotLeader.ErrCode);
JsApiErrors.NewJSClusterPeerNotMemberError().ErrCode.ShouldBe(JsApiErrors.ClusterPeerNotMember.ErrCode);
JsApiErrors.NewJSAtomicPublishTooLargeBatchError(512).Description.ShouldBe("atomic publish batch is too large: 512");
JsApiErrors.NewJSAtomicPublishUnsupportedHeaderBatchError("Nats-Msg-Id").Description.ShouldBe("atomic publish unsupported header used: Nats-Msg-Id");
JsApiErrors.NewJSClusterNoPeersError(new InvalidOperationException("no peers")).Description.ShouldBe("no peers");
var expected = new JsApiError { Code = 499, ErrCode = 9090, Description = "override" };
var fromOverride = JsApiErrors.NewJSAccountResourcesExceededError(JsApiErrors.Unless(expected));
fromOverride.Code.ShouldBe(expected.Code);
fromOverride.ErrCode.ShouldBe(expected.ErrCode);
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();
}
}