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
|
||||
|
||||
Generated: 2026-03-01 17:27:28 UTC
|
||||
Generated: 2026-03-01 17:33:05 UTC
|
||||
|
||||
## Modules (12 total)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user