test(batch53): port 75 JetStream cluster 4 integration tests
Adds JetStreamCluster4Tests.cs with 85 deferred test stubs mirroring golang/nats-server/server/jetstream_cluster_4_test.go. All tests skip with "deferred: requires running JetStream cluster".
This commit is contained in:
@@ -0,0 +1,280 @@
|
|||||||
|
// Copyright 2025 The NATS Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
//
|
||||||
|
// Mirrors server/jetstream_cluster_4_test.go in the NATS server Go source.
|
||||||
|
// ALL tests in this file are deferred: they require a running JetStream cluster.
|
||||||
|
|
||||||
|
namespace ZB.MOM.NatsNet.Server.IntegrationTests.JetStream;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Integration tests for JetStream cluster — batch 4 operations.
|
||||||
|
/// Mirrors server/jetstream_cluster_4_test.go.
|
||||||
|
/// All tests are deferred pending JetStream cluster server infrastructure.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class JetStreamCluster4Tests
|
||||||
|
{
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void WorkQueueStreamDiscardNewDesync_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void StreamPlacementDistribution_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SourceWorkingQueueWithLimit_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerPauseViaConfig_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerPauseViaEndpoint_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerPauseTimerFollowsLeader_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerPauseResumeViaEndpoint_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerPauseHeartbeats_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerPauseAdvisories_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerPauseSurvivesRestart_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerNRGCleanup_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ClusteredInterestConsumerFilterEdit_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DoubleAckRedelivery_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void BusyStreams_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SingleMaxConsumerUpdate_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void StreamLastSequenceResetAfterStorageWipe_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void AckFloorBetweenLeaderAndFollowers_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerLeak_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void AccountNRG_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void AccountNRGConfigNoPanic_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void WQRoundRobinSubjectRetention_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MetaSyncOrphanCleanup_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void KeyValueDesyncAfterHardKill_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void KeyValueLastSeqMismatch_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void PubAckSequenceDupe_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void PubAckSequenceDupeAsync_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void PubAckSequenceDupeResetAfterLeaderChange_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumeWithStartSequence_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void AckDeleted_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void APILimitDefault_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void APILimitAdvisory_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void PendingRequestsInJsz_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerReplicasAfterScale_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerReplicasAfterScaleMoveConsumer_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DesyncAfterQuitDuringCatchup_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DesyncAfterErrorDuringCatchup_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerDesyncAfterErrorDuringStreamCatchup_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DesyncAfterEofFromOldStreamLeader_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ReservedResourcesAccountingAfterClusterReset_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void HardKillAfterStreamAdd_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DesyncAfterPublishToLeaderWithoutQuorum_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void PreserveWALDuringCatchupWithMatchingTerm_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DesyncAfterRestartReplacesLeaderSnapshot_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void KeepRaftStateIfStreamCreationFailedDuringShutdown_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MetaSnapshotReCreateConsistency_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MetaSnapshotConsumerDeleteConsistency_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsumerDontSendSnapshotOnLeaderChange_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DontInstallSnapshotWhenStoppingStream_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void DontInstallSnapshotWhenStoppingConsumer_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void StreamConsumerStateResetAfterRecreate_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void StreamAckMsgR1SignalsRemovedMsg_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void StreamAckMsgR3SignalsRemovedMsg_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ExpectedPerSubjectConsistency_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MsgCounterRunningTotalConsistency_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ConsistencyAfterLeaderChange_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MetaStepdownPreferred_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void OnlyPublishAdvisoriesWhenInterest_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void RoutedAPIRecoverPerformance_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MessageTTLWhenSourcing_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MessageTTLWhenMirroring_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MessageTTLDisabled_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void CreateStreamPerf_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void TTLAndDedupe_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void InvalidTTLAndDedupe_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ServerPeerRemovePeersDrift_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void StreamTagPlacement_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ObserverNotElectedMetaLeader_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void ParallelCreateRaftGroup_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SubjectDeleteMarkersMinimumTTL_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SubjectDeleteMarkersMinimumTTLExceptionMaxMsgsPer_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SubjectDeleteMarkersNoMsgTTLSet_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMMaxAgeOnRecover_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMMaxAgeRemoveMsgProposal_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMMaxAgeRemoveMsgProposalLimitRetries_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMTTLRemoveMsgProposal_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMInflightTTL_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMTTLAndMaxMsgsPer_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMMsgTTLReverseExpiry_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMResetLast_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void SDMMaxAgeProposeExpiryShortRetry_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void InvalidR1Config_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MultiLeaderR3Config_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void AccountMaxConnectionsReconnect_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MetaCompactThreshold_ShouldSucceed() { }
|
||||||
|
|
||||||
|
[Fact(Skip = "deferred: requires running JetStream cluster")]
|
||||||
|
public void MetaCompactSizeThreshold_ShouldSucceed() { }
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# NATS .NET Porting Status Report
|
# NATS .NET Porting Status Report
|
||||||
|
|
||||||
Generated: 2026-03-01 17:27:28 UTC
|
Generated: 2026-03-01 17:33:05 UTC
|
||||||
|
|
||||||
## Modules (12 total)
|
## Modules (12 total)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user