Move 43 Raft consensus test files (8 root-level + 35 in Raft/ subfolder) from NATS.Server.Tests into a dedicated NATS.Server.Raft.Tests project. Update namespaces, add InternalsVisibleTo, and fix timing/exception handling issues in moved test files.
20 lines
554 B
C#
20 lines
554 B
C#
using NATS.Server.Raft;
|
|
|
|
namespace NATS.Server.Raft.Tests;
|
|
|
|
public class RaftSafetyContractTests
|
|
{
|
|
[Fact]
|
|
public async Task Follower_rejects_stale_term_vote_and_append()
|
|
{
|
|
var node = new RaftNode("n1");
|
|
node.StartElection(clusterSize: 1);
|
|
|
|
var staleVote = node.GrantVote(term: node.Term - 1);
|
|
staleVote.Granted.ShouldBeFalse();
|
|
|
|
await Should.ThrowAsync<InvalidOperationException>(async () =>
|
|
await node.TryAppendFromLeaderAsync(new RaftLogEntry(1, node.Term - 1, "cmd"), default));
|
|
}
|
|
}
|